

截止本文,Jetty已经出到9了。Jetty作为一个小型、快速、可嵌入的Web server和servlet容器,在开发和生产方面,Jetty被广泛应用于各种项目、产品中。Jetty可以很轻易地被嵌入到设备、工具、框架、应用服务器、集群中。Jetty提供了Web server和javax.servlet容器功能,支持HTTP/2、WebSocket、 OSGi、 JMX、 JNDI、 JAAS以及其他许多的集成。下面这张表是Jetty的特点及它的支持的一些领域:

| Jetty特点 | Jetty支持 |
| 功能齐全、标准化 | 大型集群,比如Yahoo Hadoop集群 |
| 开源和商用 | 云计算,比如Google AppEngine |
| 灵活可扩展 | SaaS,例如Yahoo!还有Zimbra |
| 软件小 | 应用服务器,如Apache Geronimo |
| 可嵌入 | 框架,如GWT |
| 异步的 | 工具,如EclipseIDE |
| 企业可扩展 | 设备,如电话 |
⊙异步的 HTTP Server
⊙基于标准的Servlet容器
⊙websocket server
⊙http/2 server
⊙异步的 Client (http/1.1, http/2, websocket)
⊙OSGI, JNDI, JMX, JASPI, AJP 等
1
以插件的形式使用Jetty
这种方式是以内嵌Jetty的形式来使用Jetty!

在pom.xml中加入Jetty插件:
<plugin><groupId>org.eclipse.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>9.4.27.v20200227</version></plugin>

mvn jetty:run
默认情况下,Jetty web容器的默认端口是8080。在浏览器输入以下URL即可访问:
http://localhost:8080/路径
下载:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.27.v20200227/jetty-distribution-9.4.27.v20200227.tar.gz
~/Desktop$ tar -zxvf jetty-distribution-9.4.27.v20200227.tar.gz
解压出来的目录就是Jetty的安装目录。
进入Jetty安装目录编辑bin/jetty.sh文件,打开JETTY_HOME和JAVA_OPTIONS的注释



在实践中,上述的配置似乎不起作用。反而是自定义上下文为/,更能实现关闭目录浏览。
请参考《Jetty9部署多个项目及虚拟主机配置的方法》
把打包出来的war包,复制到webapps目录下,如将FlowerShop.war包放到webapps目录下。
通过Jetty安装目录下的bin/jetty.sh脚本来启动/停止jetty,如:
bin$ ./jetty.sh startbin$ ./jetty.sh stopbin$ ./jetty.sh restart
也可以通过Jetty根目录下的start.jar来启动,如:
$ java -jar start.jar
如果希望通过start.jar停止,则在启动的时候需要指定STOP.PORT和STOP.KEY两个参数,且启动和停止时,两个参数的值必须匹配,如:
# 启动$ java -jar start.jar STOP.PORT=8181 STOP.KEY=ugcKey# 停止$ java -jar start.jar STOP.PORT=8181 STOP.KEY=ugcKey --stop
通过start.jar查看帮助和配置:
$ java -jar start.jar --help
主要的查看配置的参数有:
--list-config: 查看启动jetty使用的配置:java环境,jetty环境,JVM参数,属性,服务器classpath,服务器的xml配置等;--list-modules: 查看系统使用的模块--list-classpath: 查看系统使用的classpath--version:查看版本信息--module=<model-name>:临时启用一个模块

一般通过bin/jetty.sh控制jetty的运行,使用start.jar查看jetty的配置和状态。
启动完浏览器就可以在浏览器输入:http://localhost:8888/war包名(即上下文路径)/路径进行访问了,如:http://127.0.0.1:8888/FlowerShop/home1

《SpringBoot项目打包war发布到Jetty9》
《Jetty9部署多个项目及虚拟主机配置的方法》





