收集 jetty、tomcat、jboss、weblogic 的比较

转载 2017年09月05日 21:54:58

jetty

 
Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

特性


易用性

易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面:
通过 XML 或者 API 来对Jetty进行配置;默认配置可以满足大部分的需求;将 Jetty 嵌入到应用程序当中只需要非常少的代码;

可扩展性

在使用了 Ajax 的 Web 2.0 的应用程序中,每个连接需要保持更长的时间,这样线程和内存的消耗量会急剧的增加。这就使得我们担心整个程序会因为单个组件陷入瓶颈而影响整个程序的性能。但是有了 Jetty:
即使在有大量服务请求的情况下,系统的性能也能保持在一个可以接受的状态。利用 Continuation 机制来处理大量的用户请求以及时间比较长的连接。 另外 Jetty 设计了非常良好的接口,因此在 Jetty 的某种实现无法满足用户的需要时,用户可以非常方便地对 Jetty 的某些实现进行修改,使得 Jetty 适用于特殊的应用程序的需求。

易嵌入性

Jetty 设计之初就是作为一个优秀的组件来设计的,这也就意味着 Jetty 可以非常容易的嵌入到应用程序当中而不需要程序为了使用 Jetty 做修改。从某种程度上,你也可以把 Jetty 理解为一个嵌入式的Web服务器。
Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。

和Tomcat的比较


原文地址:Jetty和Tomcat的选择:按场景而定[1] 
1)Jetty更轻量级。这是相对Tomcat而言的。
由于Tomcat除了遵循Java Servlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。
2)Jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。
相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。用自己的理解,即增肥容易减肥难。
3)然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。
总结:Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。

代码实例


作为嵌入式服务器使用代码实例
Java代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//代码:以嵌入模式启动Jetty
import org.mortbay.http.HttpContext;
import org.mortbay.http.HttpServer;
import org.mortbay.http.SocketListener;
import org.mortbay.http.handler.ResourceHandler;
 
public class JettySample{
public static void main(String[]args)throws Exception{
//创建JettyHttpServer对象 
HttpServer server=new HttpServer();
//在端口8080上给HttpServer对象绑上一个listener,使之能够接收HTTP请求
SocketListener listener=new SocketListener();
listener.setPort(8080);
server.addListener(listener);
//创建一个HttpContext,处理HTTP请求。
HttpContext context=new HttpContext();
//用setContextPath把Context映射到(/web)URL上。
context.setContextPath("/web");
//setResourceBase方法设置文档目录以提供资源
context.setResourceBase("C:\\j2sdk1.4.1_05");
//添加资源处理器到HttpContext,使之能够提供文件系统中的文件
context.addHandler(new ResourceHandler());
server.addContext(context);
//启动服务器
server.start();
}
}
需要的jar包:
commons-logging.jar
javax.servlet.jar
org.mortbay.jetty.jar
org.mortbay.jmx.jar
jetty还有对应maven插件
maven pom文件的设置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xmlversion="1.0"encoding="utf-8"?>
 
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
然后直接通过mvn jetty:run命令就能直接启动
-----------------------------------------------------------------------------------------
注:
在maven中,用plugin的方式使用jetty,需要改动maven的setting.xml文件,才可以使用命令mvn jetty:run.
setting.xml中找到标签<pluginGroups>,增加:
1
<pluginGroup>org.mortbay.jetty</pluginGroup>
即可。

下面这篇文章,详细地对tomcat、JBoss、webLogic进行了比较——

tomcat,Jboss,weblogic区别与比较


引用:https://baike.baidu.com/item/jetty/370234?fr=aladdin

相关文章推荐

几种常见web 容器比较 (tomcat、 jboss 、resin、 weblogic、 websphere、 glassfish)

web 容器比较 tomcat jboss resin weblogic websphere glassfish 1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定...

记一次文档验收

_ _经历一次ITOO文档验收,又对文档的了解更加深入了一些。_ _作为一个合格的为团队着想的,为程序负责的程序员来说,文档意味着什么?_ _文档又有哪些作用呢?1. 文档是指导方向,无论是后来人还是...

nginx使用image_filter生成缩略图 -- fasdfs海量图片缩略图整合

1 http_image_filter_module http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁...

关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较

Apache和Tomcat的区别:          Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的We...

Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解 http://shuaiding.blog.51cto.com/23354...

关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

术语说明: 反向代理: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给intern...
  • Dancen
  • Dancen
  • 2013年06月30日 23:54
  • 4464

关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一...

关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

今天是个很丰富的日子,早上一上班,第一个听到的惊爆消息就是楷子得了肠胃炎,一大早去医院挂水了…… 随后风胜和笑虎也没来,后来得知他们俩去去华星现代产业园参加培训,内容是关于Apache与Nginx的。...

Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解

先说Apache和Tomcat的区别:          Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的We...

常见的网络服务器软件综合比较介绍(apache、IIS、tomcat、jboss、resin、weblogic、websphere)

在互联网高速发展的今天,不同种类的网站大量涌现,每个人都在享受着网络服务所带来的便利。而创建自己个性化的网站的门槛不断降低,从事网站架设,这种当年的绝对“高科技”技术活,也从IT人的专利“沦落”到人人...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:收集 jetty、tomcat、jboss、weblogic 的比较
举报原因:
原因补充:

(最多只允许输入30个字)