Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中,在Java程序中调用Jetty。

下面介绍如何在Java应用程序中嵌入Jetty。

Jetty下载地址:

http://download.eclipse.org/jetty/stable-9/dist/

注意Jetty 9需要JDK 7,如果使用JDK 6的话会出现错误:java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0。

实现Web服务器

在lib文件夹中找到jar文件:

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setResourceBase("D:/test");
server.setHandler(resourceHandler);
server.start();
}

运行Java程序,Jetty服务器启动。此时在浏览器中访问http://localhost:8080 就可以浏览D:/test文件夹中的html页面或者其他文件。但是只能访问静态页面,上面的程序无法支持Servlet/JSP。

实现Servlet容器

这里需要另外加入lib/jsp文件夹中的jar包:

1
2
3
jetty-webapp-9.1.2.v20140210.jar
jetty-xml-9.1.2.v20140210.jar
jetty-security-9.1.2.v20140210.jar
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
WebAppContext webapp = new WebAppContext();
webapp.setResourceBase("E:/webapps/test");
server.setHandler(webapp);
server.start();
}

设置一个Java Web应用程序的目录,访问http://localhost:8080 此时已经支持Servlet/JSP,另外还可以使用war文件