Java使用Jetty实现嵌入式Web服务器及Servlet容器

本文介绍如何在Java应用程序中嵌入Jetty作为Web服务器。通过简单的代码示例展示了如何配置静态资源路径及启动服务器,并进一步介绍了如何支持Servlet/JSP应用及WAR包部署。

下面介绍如何在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
 
 

转载于:https://www.cnblogs.com/langtianya/p/5218034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值