Jetty入门(1-1)Jetty入门教程
一、Jetty是什么?
1、Jetty 是一个Java语言编写的,开源的Servlet容器和应用服务器。
Jetty 极度轻量级、高便携性、功能强大、灵活和扩展性好,而且支持各种技术如SPDY、WebSocket、OSGi、JMX、JNDI和JAAS,已经广泛地应用于生产环境。
Jetty的下载网页为:https://www.eclipse.org/jetty/download.html
最新的版本 9.3.15,支持较新的规范,建议使用!
2、Maven坐标
当Jetty基于SourceForge管理时Maven的groupId是org.mortbay.jetty,
当Jetty 7来到eclipse后groupId也改变了,最新的Jetty的POM坐标如下
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-project</artifactId>
<version>${project.version}</version>
</dependency>
3、在Maven中心的更新日志
Jetty不同版本的更新日志记录在一个叫做VERSIONS.txt的文件中,也可以在Maven中心找到,坐标如下
复制代码
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-project</artifactId>
<version>${project.version}</version>
<classifier>version</classifier>
<type>txt</type>
</dependency>
二、安装和验证jetty
1、安装jetty
安装比较简单,解压设置环境变量即可!
解压到 d:\tools\jetty9.3.15 目录,设置 JETTY_HOME=d:\tools\jetty9.3.15。如果是linux,需要 source /etc/profile 。
目录列表:

2、验证jetty
2.1、验证场景1 - 使用%JETTY_HOME%/webapps 发布目录验证

cd %JETTY_HOME%
java -jar start.jar
在浏览器中输入 http://192.168.55.229:8080/remote.html(默认端口是8080,要避免和tomcat冲突,可以先把tomcat给禁掉。或者在jetty.xml中将端口改成8081)
此时,使用webapps作为默认应用发布目录。
2.2、验证场景2 - 使用%JETTY_HOME%/demo_base/webapps 发布目录验证

cd %JETTY_HOME%/demo_base
java -jar %JETTY_HOME%/start.jar
在浏览器中输入 http://192.168.55.229:8080/remote.html(默认端口是8080,要避免和tomcat冲突,可以先把tomcat给禁掉。或者在jetty.xml中将端口改成8081)
此时,使用webapps作为默认应用发布目录。
2.3、验证场景3 - 使用外置的 webapps 发布目录验证
上述方式,应用和配置需要在%JETTY_HOME%和%JETTY_HOME%/demo_base中,侵入性强,升级jetty不方便, 一般用户不直接使用上述方式使用jetty
而是采用单独建立一个JETTY_BASE目录方式。
mkdir d:\mywebapps
set JETTY_BASE=D:\mywebapps
java -jar %JETTY_HOME%/start.jar --add-to-startd=http,deploy

部署应用,即可运行
copy EXAMPLE.WAR %JETTY_BASE%/webapps/EXAMPLE.WAR
cd %JETTY_BASE%
java -jar %JETTY_HOME%/start.jar (使用当前目录里面的配置和webapps)

http://localhost:8080/EXAMPLE
三、根应用和非根应用
1、外置式部署根应用 ROOT.WAR
如何创建外置目录及其配置参见2.3章节!
copy ROOT.WAR %JETTY_BASE%/webapps/ROOT.WAR
cd %JETTY_HOME%
java -jar start.jar
启动,上下文根是 / , 访问 http://localhost:8080/
2、部署一个普通应用 EXAMPLE.WAR
copy EXAMPLE.WAR %JETTY_HOME%/webapps/EXAMPLE.WAR
cd %JETTY_HOME%
java -jar start.jar
启动,上下文根是 /EXAMPLE , 访问 http://localhost:8080/EXAMPLE
四、附录
1、目录用途

2、改变Jetty的端口
通过在启动命令中设置jetty.http.port属性的值,可以让Jetty运行在修改后的端口上。
> cd $JETTY_BASE
> java -jar $JETTY_HOME/start.jar jetty.http.port=8081
...
另外,可以将要设置的端口属性添加到start.ini或者start.d/http.ini文件中。默认情况,在start.d/http.ini文件中定义的jetty.http.port属性可以被修改成另一个值。
提示
配置属性信息通过如下方式获得
首先去start.d/http.ini文件中找jetty.http.port=8080配置信息,若找到配置端口即为指定端口
根据模块modules/http.mod文件找到指定配置默认为etc/jetty-http.xml,在此配置文件中有jetty.http.port配置信息,若找到即为此端口配置
若上面两个都没有,则随机一个没有使用的端口
3、为HTTPS & HTTP2增加SSL
可通过如下命令,添加并激活HTTPS和HTTP2模块
复制代码
> java -jar $JETTY_HOME/start.jar --add-to-startd=https,http2
[...]
> java -jar $JETTY_HOME/start.jar
[...]
2015-06-04 13:52:01.933:INFO:oejs.ServerConnector:main: Started ServerConnector@6f1fba17{SSL,[ssl, alpn, h2, http/1.1]}{0.0.0.0:8443}
[...]
复制代码
--add-to-startd:此命令在ini文件中设置有效的配置信息,使HTTPS和HTTP2支持SSL连接
输入java -jar $JETTY_HOME/start.jar --add-to-startd=https,http2命令后会提示下载一些jar包,输入y按回车
4、修改Jetty的HTTPS端口
你可以通过增加jetty.ssl.port启动参数来修改HTTPS的端口信息
> cd $JETTY_BASE
> java -jar $JETTY_HOME/start.jar jetty.ssl.port=8444
除了在命令行增加参数的方法外,还可以在start.ini和start.d/*.ini文件中进行配置,所以如果用户使用--add-to-startd命令来使HTTPS生效,同样也可以在start.d/https.ini文件中进行修改。
5、更多的start.jar操作选项
start.jar的工作是用来翻译命令行内容的,start.ini和start.d目录(包含其中的*.ini文件)生成一个classpath环境,各种属性和配置可以使用Jetty相应的xml进行配置,更多的使用方法可以通过使用命令来获得帮助。
> java -jar $JETTY_HOME/start.jar --help
Jetty入门(1-1)Jetty入门教程的更多相关文章
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程
http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...
- PS入门到精通完全自学教程
ps视频教程,ps自学视频教程.ps免费视频教程下载,PS入门到精通完全自学教程视频内容较大,分为俩部分: PS入门到精通完全自学教程-第一部分(带swf播放器):百度网盘,https://pan.b ...
- 给深度学习入门者的Python快速教程
给深度学习入门者的Python快速教程 基础篇 numpy和Matplotlib篇 本篇部分代码的下载地址: https://github.com/frombeijingwithlove/dlcv_f ...
- 深度学习入门者的Python快速教程 - 基础篇
5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明 ...
- Sping Boot入门到实战之入门篇(一):Spring Boot简介
该篇为Spring Boot入门到实战系列入门篇的第一篇.对Spring Boot做一个大致的介绍. 传统的基于Spring的Java Web应用,需要配置web.xml, applicationCo ...
- 强烈推荐visual c++ 2012入门经典适合初学者入门
强烈推荐visual c++ 2012入门经典适合初学者入门 此书循序渐进,用其独特.易于理解的教程风格来介绍各个主题,无论是编程新手,还是经验丰富的编程人员,都很容易理解. 此书的目录基本覆盖了Wi ...
- Quartz入门例子简介 从入门到菜鸟(一)
转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039 刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...
- 史上最强Java NIO入门:担心从入门到放弃的,请读这篇!
本文原题“<NIO 入门>,作者为“Gregory M. Travis”,他是<JDK 1.4 Tutorial>等书籍的作者. 1.引言 Java NIO是Java 1.4版 ...
随机推荐
- 解决Win10下_findnext()异常
在win10中,使用文件遍历函数_findnext会报0xC0000005错误 ,发生访问冲突错误 错误定位到ntdll.dll 原因: _findnext()第一个参数"路径句柄" ...
- WP Super Cache+七牛云配置CDN加速,让你的网站秒开
CDN加速网站是几乎所有的站长都在考虑的问题,CDN,全称是Content Delivery Network,即内容分发网络.所谓CDN加速,通俗的来说就是把原服务器上数据复制到其他服务器上,用户访问 ...
- Loadrunner 11在win7录制中失败“the recording of the application was terminated by windows due to window data execution prevention feature"
在录制过程中遇到如下问题: 查了下如何Enable, Disable Data Execution Prevention (DEP) in Windows 10/8/7 (http://www.the ...
- 【前端单元测试入门04】Karma
Karma 官方介绍 A simple tool that allows you to execute JavaScript code in multiple real browsers. 即一个允许 ...
- 深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论 ...
- 详解小白利用eclipse+CDT+MinGW搭建C++开发环境
安装JDK.安装Eclipse 2.打开Eclipse 找到“help”下的“Eclipse marketplace” 如图: 3.选择相应的C插件: 因为安装过所以显示installe ...
- python列表操作符
list1=[123,456] list2=[234,234] list1>list2 >>>False#返回False 第一项比较之后直接返回false,第二项不看 #+实现 ...
- react-router简明学习
前面的话 路由用来分发请求.后端是提供服务的,所以它的路由是在找controller,前端是显示页面的,所以它的路由是在找component.本文将详细介绍react-router-dom的内容 Ro ...
- 从分布式一致性到共识机制(一)Paxos算法
从分布式系统的CAP理论出发,关注分布式一致性,以及区块链的共识问题及解决. 区块链首先是一个大规模分布式系统,共识问题本质就是分布式系统的一致性问题,但是又有很大的不同.工程开发中,认为系统中存在故 ...
- SpringBoot快速开发REST服务最佳实践
一.为什么选择SpringBoot Spring Boot是由Pivotal团队提供的全新框架,被很多业内资深人士认为是可能改变游戏规则的新项目.早期我们搭建一个SSH或者Spring Web应用,需 ...