Java使用Jetty实现嵌入式Web服务器及Servlet容器
下面介绍如何在Java应用程序中嵌入Jetty。
Jetty下载地址,本文写作时的最新版本是9.1.2,下载jetty-distribution-9.1.2.v20140210.zip:
https://www.eclipse.org/jetty/download.html
注意Jetty 9需要JDK 7,如果使用JDK 6的话会出现错误:java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0。
在lib文件夹中找到下面五个jar文件:
jetty-server-9.1.2.v20140210.jar
jetty-io-9.1.2.v20140210.jar
jetty-http-9.1.2.v20140210.jar
jetty-util-9.1.2.v20140210.jar
servlet-api-3.1.jar
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。
如果想要显示文件夹中的所有文件的列表,可以设置:
resourceHandler.setDirectoriesListed(true);
效果: 这里需要另外加入下面的jar包:
jetty-servlet-9.1.2.v20140210.jar
jetty-webapp-9.1.2.v20140210.jar
jetty-xml-9.1.2.v20140210.jar
jetty-security-9.1.2.v20140210.jar
lib/jsp文件夹中的jar包
public static void main(String[] args) throws Exception { Server server = new Server(8080); WebAppContext webapp = new WebAppContext(); webapp.setResourceBase("E:/apache-tomcat-7.0.47/webapps/TVPlay"); server.setHandler(webapp); server.start(); }
设置一个Java Web应用程序的目录,访问http://localhost:8080,此时已经支持Servlet/JSP。
另外还可以使用war文件:
public static void main(String[] args) throws Exception { Server server = new Server(8080); WebAppContext webapp = new WebAppContext(); webapp.setWar("C:/TVPlay.war"); server.setHandler(webapp); server.start(); }
相关:
下载jetty-distribution:https://www.eclipse.org/jetty/download.html