一、缘由:

  新公司平台是纯Java架构,有用到Java Web(JSP)、Java 业务(EJB)、Nginx、、Websphere MQ、Mysql这样。大家知道java是跑在容器里的,

这里的业务要用到EJB故选用了Glassfish容器。

  EJB是什么?EJB是一个服务器端的组件模型,可以部署分布式应用程序。J2EE规范这么说:Enterprise Java Bean (EJB )组件是运行在服务器端的业务组件;

另外Java Servlet和Java Server Pages(JSP)是运行在服务端的web组件。

  那么常见的web容器(应用服务器)又有什么区别呢?下面慢慢道来。

二、详解:

1、Web容器

  Web容器是一种服务调用的规范,J2EE运用了大量的容器和组件技术来构建分层的企业应用。在J2EE规范中,相应的有Web Container和EJB Container等。

  Web容器给处于其中的应用程序组件(JSP、Servlet)提供环境,JSP、Servlet直接与容器中的环境变量打交道,而不必关注其他系统问题。

  Web容器更多的是与HTTP的请求打交道,而EJB容器不是,它更多的是跟数据库其他服务打交道。

2、Web服务器

  Web服务器可以处理HTTP协议,当Web服务器收到一个HTTP请求,就会返回一个HTTP响应。

  Web服务器可以针对静态页面或者图片的请求进行跳转,或者把动态响应委托给其他一些程序,如CGI、JSP、Servlet、ASP、JavaScript或者其他服务端技术。

  Web服务器仅仅提供一个可执行服务器端环境和返回响应的环境,不涉及其他技术。

1)Apache

  是简单的HTTP服务器,速度快,在大型网站中,常与应用服务器配合部署,仅支持静态页面。

2)Nginx

  是著名的HTTP服务器,速度快,支持负载均衡。

3、应用程序服务器(Web容器)

  作为应用服务器,要求可以通过各种协议(包括HTTP协议)把商业逻辑暴露给客户端应用程序。应用程序使用商业逻辑就像你调用对象的一个方法或过程一样。

1)Tomcat

  Tomcat仅是个HTTP服务器,是Apache鼎力支持的Java Web服务器,是Servlet/JSP API的执行器,也就是所谓的Servlet容器,不支持EJB、JMS。

相对于JBOSS来说较为轻量级,实现的功能也较少,不能完整的支持最新的JavaEE标准,适用于较为简单的Web应用。

2)JBOSS

  JBOSS是开源Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,它提供了更多开箱即用的功能特性,也更重,它完整的实现了J2EE 6。

3)Glassfish

  Glassfish是Oracle 开发的官方Java EE容器,,也是同时支持Servlet和EJB,支持最新的特性,有自己的web容器,支持集群,支持热部署。

三、区别及选型:

1、区别:

  Tomcat只是一个HTTP服务器和Java servlet容器。 JBoss和GlassFish是完整的Java EE应用程序服务器,包括EJB容器和该堆栈的所有其他功能。

另一方面,Tomcat具有更轻的内存占用(约60-70 MB),而那些Java EE服务器的权重在几百兆。 Tomcat对于简单的Web应用程序或使用诸如Spring

之类的不需要完整Java EE服务器的框架的应用程序非常流行。管理Tomcat服务器可以说是更容易,因为有较少的移动部件。

但是,对于确实需要完整的Java EE堆栈(或至少更多的部分,可以轻松地固定到Tomcat)的应用程序... JBoss和GlassFish是两个最流行的开源产品

(第三个是Apache Geronimo ,在其上构建IBM WebSphere的免费版本)。 JBoss有一个更大和更深的用户社区,和一个更成熟的代码库。

但是,JBoss在实现当前Java EE规范方面远远落后于GlassFish。此外,对于那些喜欢基于GUI的管理系统... GlassFish的管理控制台是非常光滑,

而大多数管理在JBoss是通过命令行和文本编辑器。 GlassFish直接来自Sun / Oracle,具有所有的优点。 JBoss不受Sun / Oracle的控制,具有所有可以提供的优点。

原版英文:http://stackoverflow.com/questions/3821640/what-is-the-difference-between-tomcat-jboss-and-glassfish

Tomcat is merely an HTTP server and Java servlet container. JBoss and GlassFish are full-blown Java EE application servers, including an EJB container

and all the other features of that stack. On the other hand, Tomcat has a lighter memory footprint (~60-70 MB), while those Java EE servers weigh in at

hundreds of megs. Tomcat is very popular for simple web applications, or applications using frameworks such as Spring that do not require a full Java EE server.

Administration of a Tomcat server is arguably easier, as there are fewer moving parts.

However, for applications that do require a full Java EE stack (or at least more pieces that could easily be bolted-on to Tomcat)... JBoss and GlassFish are

two of the most popular open source offerings (the third one is Apache Geronimo, upon which the free version of IBM WebSphere is built). JBoss has a larger

and deeper user community, and a more mature codebase. However, JBoss lags significantly behind GlassFish in implementing the current Java EE specs.

Also, for those who prefer a GUI-based admin system... GlassFish's admin console is extremely slick, whereas most administration in JBoss is done with a

command-line and text editor. GlassFish comes straight from Sun/Oracle, with all the advantages that can offer. JBoss is NOT under the control of Sun/Oracle,

with all the advantages THAT can offer.

2、选型: 

  主要根据业务需求和应用规模来确定,如果仅仅是简单web应用,不需要支持EJB或者JMS等特性的,选择简单易用的Tomcat即可。

如果需要更多的J2EE个特性,比如EJB建议选择Glassfish这种全功能的服务器。

  关于JBOSS和Glassfish,建议选择Glassfish,因为官方出品,实现当前Java EE更及时。

  

Tomcat Jboss Glassfish 三种常见web容器比较的更多相关文章

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

    点击打开PDF下载链接 web 容器比较 tomcat jboss resin weblogic websphere glassfish 1. Tomcat是Apache鼎力支持的Java Web应用 ...

  2. 几种常见web 容器比较

     1:产品介绍 WebLogic是美国bea公司出品的一个application server确切的说是一个基于j2ee架构的中间件.BEA WebLogic是用于开发.集成.部署和管理大型分布式We ...

  3. 将Java web应用部署到Tomcat 及部署到Tomcat根目录 的三种方式

    Tomcat作为Servlet/JSP容器(服务器)挺不错的,开源免费,需要知道的是Tomcat是一个Web服务器,其符合Servlet/JSP规范,但是却没有实现所有JavaEE规范,所以我们还是应 ...

  4. 几种常见web攻击手段及其防御方式

    XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross ...

  5. 总结几种常见web攻击手段及其防御方式

    本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 ...

  6. Tomcat Connector的三种不同的运行模式

    Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. Tomc ...

  7. Tomcat,Jboss,Glassfish等web容器比较选型

    概述 Web容器是一种服务调用的规范,J2EE运用了大量的容器和组件技术来构建分层的企业应用.在J2EE规范中,相应的有WEB Container和EJB Container等. Web容器给处于其中 ...

  8. 将Web应用发布到tomcat中的三种方法

    坑啊,为什么网易的博客不能搬过来!!!我一个一个复制过来容易嘛!!!!原文地址:http://buffalo-l.blog.163.com/blog/static/244954022201539111 ...

  9. 常用几种Java Web容器

    Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问.开发Java Web应用所采用的服务器主要是与JSP/Servlet兼容的We ...

随机推荐

  1. Internal Server Error: /favicon.ico 的解决方法

    项目大致环境:Linux + Apache + Django + Python 因为项目的需求重写了Python Logger.error 方法,每当记录错误日志的时候就发送一封邮件到指定的邮箱.项目 ...

  2. UVA 624 CD(DP + 01背包)

    CD You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music i ...

  3. 学习中遇到的c++问题,持续更新

    原文请訪问我的博客:http://xiaoshig.sinaapp.com/ 向上取整 使用ceil函数.ceil(x)返回的是大于x的最小整数.如: ceil(2.5) = 3 ceil(-2.5) ...

  4. SSH框架学习

    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

  5. Spring Tool Suite 使用自带maven速度慢---修改settings.xml更新mirror方法

    (1)打开sts,windows --> preference,找到maven,并设置如下. (2)修改该文件,如下 <mirror> <id>nexus-aliyun& ...

  6. JavaScript debugger 语句

    实例 开启 debugger ,代码在执行到第三行前终止. var x = 15 * 5; debugger; document.getElementbyId("demo").in ...

  7. 解决sqlplus: command not found

    export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product//db_1 su - root ln -s $OR ...

  8. idea 免费激活(破解)

      1.将补丁(JetbrainsCrack-2.7-release-str.jar)拷贝到idea的安装目录/bin下 下载破解补丁 从IntelliJ IDEA 注册码网站:http://idea ...

  9. c#实现统计代码运行时间

    方法一: //实例化一个计时器 Stopwatch watch = new Stopwatch(); //開始计时 watch.Start(); //此处为要计算的执行代码 for (int i = ...

  10. Tomcat 配置加密的服务器连接器

    先查询API,找到Configuration里面的Connector的HTTP中的SSL(加密连接器) SSL abbr. Security Socket Layer 加密套接字协议层   利用已生成 ...