Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet容器。
Jetty与Tomcat比较的差异:
1. Jetty更轻量级。这是相对Tomcat而言的。
由于Tomcat除了遵循JavaServlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。
2.jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。用自己的理解,即增肥容易减肥难。
3.当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。
Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。
Jetty的安装及项目部署
1.Jetty的下载安装
http://www.eclipse.org/jetty/previousversions.html网址可以下载不同版本的jetty
目录 作用
bin/ 用于存放jetty的启动脚本,目前仅提供liunx/unix下的脚本
demo-base/ 存放一个用于演示的工程
etc/ jetty存放xml配置文件的目录
lib/ 存放jetty运行时依赖的jar包,包括jetty各个模块的jar包,可以说这里就是真正的jetty
logs/ 存放请求日志的目录
modules/ 模块定义目录,存放jetty模块定义文件(*.mod)
resources/ 存放类路径下的资源文件,比如log4j.xml,存放在这个目录下的文件在jetty启动时会被加入到classpath
start.ini 存放命令行启动jetty时需要的一些列参数
start.jar 用于启动jetty的jar文件
webapps 运行于Jetty默认配置下的Web应用部署目录(一般实际部署应用会重新创建一个另外一个目录作为Jetty_base路径)
2.Jetty启动
进入Jetty文件夹,按住Shift键右击,不要选中任何文件,在空白处右击,选择在此处打开命令窗口。输入 java -jar start.jar 启动服务即可。
3.更改端口
Jetty默认的端口是8080,如果先要更改端口号的话打开start.ini文件,如果所示进行修改即可。
4.项目部署
1、Jetty部署项目非常简单,之间将项目复制到webapps目录中等待Jetty编译即可。
2、jetty部署项目是不需要关掉服务,直接部署就可以。如果是war包jetty也是直接编译,和tomcat不同,jetty不会将war包解压出来。
注意:如果你的jetty输入命令后启动不了,那么就使用java -jar 路径/start.jar