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

下面介绍如何在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();
}

  

 
相关:
 
 
 

Java使用Jetty实现嵌入式Web服务器及Servlet容器的更多相关文章

  1. Web服务器与Servlet容器

    今日要闻: Oracle启动了JRE7到JRE8的自动更新, JRE8发布于2014.3,于2014.10成为java.com默认版本, JRE7发布于2011.7, Oracle指定的Java生命政 ...

  2. Atitit.嵌入式web 服务器 java android最佳实践

    Atitit.嵌入式web 服务器 java android最佳实践 1. Android4.4.21 2. 自己的webserver1 3. CyberHTTP for Java  cybergar ...

  3. 学号20145332 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    实验目的 掌握在 ARM 开发板实现一个简单 WEB 服务器的过程. 学习在 ARM 开发板上的 SOCKET 网络编程. 学习 Linux 下的 signal()函数的使用. 实验内容 学习使用 s ...

  4. 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验

    20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...

  5. 20145208《信息安全系统设计基础》实验五 简单嵌入式WEB 服务器实验

    20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验 20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验

  6. 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...

  7. 20145221 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    20145221 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 实验报告 队友博客:20145326蔡馨熠 实验博客:<信息安全系统设计基础>实验五 简单嵌入式W ...

  8. 实验5 简单嵌入式WEB服务器实验 实验报告 20135303 20135326

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础                班级:  1353 姓名:20135303 魏昊卿 学号:2013532 ...

  9. 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验

    20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...

随机推荐

  1. CocoaPods安装与使用

    CocoaPods简介: CocoaPods 是什么? CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具.利用 CocoaPods,可以定义自己的依赖关系 (称作 ...

  2. threading示例

    多线程举例: import time import threading def worker(): print ("hello.Kamil") time.sleep(1)#等待一秒 ...

  3. python 学习笔记6(数据库 sqlite)

    26. SQLite 轻量级的关系型数据库 SQLite是python自带的数据库,可以搭配python存储数据,开发网站等. 标准库中的 sqlite3 提供该数据库的接口. 1. 基本语法如下 c ...

  4. 如何使用maven建一个web3.0的项目

    使用eclipse手动建一个maven的web project可能会有版本不合适的情况,例如使用spring的websocket需要web3.0什么的,不全面的修改可能会出现各种红叉,甚是苦恼.我从我 ...

  5. 树上倍增求LCA(最近公共祖先)

    前几天做faebdc学长出的模拟题,第三题最后要倍增来优化,在学长的讲解下,尝试的学习和编了一下倍增求LCA(我能说我其他方法也大会吗?..) 倍增求LCA: father[i][j]表示节点i往上跳 ...

  6. wpf listview 换行

    <ListView  Name="listView1" VerticalAlignment="Top" Height="600" Ma ...

  7. ng-if else的使用

    <!DOCTYPE html> <html> <head> <script src="http://code.angularjs.org/1.2.0 ...

  8. .net读写config appsetting

    读 this.txtOutPutPath.Text = ConfigurationManager.AppSettings["OutPutPath"]; this.txtFilter ...

  9. hdu5047 找规律+欧拉公式

    题意:在一个正方形内画n个M,求最多能分成多少个平面 sol:这种求划分成多少个平面的题第一反应肯定是欧拉公式: 二维平面上的欧拉公式:V+F-E=1 (V:Vertices,F:Faces,E:Ed ...

  10. PostgreSQL Reading Ad Writing Files、Execution System Instructions Vul

    catalog . postgresql简介 . 文件读取/写入 . 命令执行 . 影响范围 . 恶意代码分析 . 缓解方案 1. postgresql简介 PostgreSQL 是一个自由的对象-关 ...