首先来介绍下 Jetty,根据 wiki 的介绍:
Jetty 是一个纯粹的基于 Java 的网页服务器和 Java Servlet 容器。尽管网页服务器通常用来为人们呈现文档,但是 Jetty 通常在较大的软件框架中用于计算机与计算机之间的通信。
Jetty 作为 Eclipse 基金会的一部分,是一个自由和开源项目。该网页服务器被用在 Apache ActiveMQ、Alfresco、Apache Geronimo、Apache Maven、Google App Engine、Eclipse、FUSE
等产品上。
Jetty 也是 Lift、Eucalyptus、Red5、Hadoop、I2P
等开源项目的服务器。Jetty 支持最新的Java Servlet API
(带 JSP 的支持),支持 SPDY 和 WebSocket
协议。
2016年,Jetty
的代码主仓库已经迁移到了 Github ,但是其仍然处于 Eclipse IP Process 政策下开发。
Jetty 在嵌入式的 Java
应用程序中提供 Web 服务,其已经是 Eclipse IDE 中的一个组成部分。它支持AJP、JASPI、JMX、JNDI、OSGi、WebSocket
和其他的 Java 技术。
Apache Hadoop 是 Jetty 应用在框架中的典型范例。 Hadoop 在几个模块中使用Jetty作为 Web 服务器
总结一下:
Jetty 是一个 Java 实现的开源的 servlet 容器,它既可以像 Tomcat 一样作为一个完整的 Web 服务器和 Servlet 容器,同时也可以嵌入在 Java 应用程序中,在 Java 程序中调用 Jetty
因为它的“轻量级”,在不是很复杂的小项目中是个不错的选择,启动(加载)也非常的快速
下面主要看下 Jetty 在嵌入式的 Java 应用程序中的应用
加载静态页面
导入依赖就不说了,Jetty 本身就是通过 jar 包的方式分发,或者可以使用 Maven 来构建:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.2.1.v20140609</version>
</dependency>
当然 Servlet 相关的那些依赖不要忘了加入,然后是 Java 代码入口:
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setResourceBase("D:/test");
// 可显示目录结构,类似 FTP
resourceHandler.setDirectoriesListed(true);
//加入Java开发交流君样:756584822一起吹水聊天
server