一、缘由:

  新公司平台是纯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. ZH奶酪:Ubuntu启动/重启/停止apache服务

    Start Apache 2 Server /启动apache服务 # /etc/init.d/apache2 start or $ sudo /etc/init.d/apache2 start Re ...

  2. 在线sass编译器

    工作中,我们可能遇到突发情况(无法安装考拉,gulp以及webpack以及其它的自动化工具),我们这时就要用即时编译工具了,那么它就是你的首选: http://tool.oschina.net/

  3. Hibernate(八)多对多映射

    一.创建数据表 --学生证表 create table paper ( pid number primary key, pdesc ) , sid number references student( ...

  4. CentOS 下安装MySQL 默认源为5.1版本

    CentOS——默认为安装5.1版本,如果需要安装5.5版本,需要使用remi源 yum install mysql-server –enablerepo=remi   Ubuntu——默认为安装5. ...

  5. 解决ios微信内置浏览器触发事件有问题方案

    你的问题原因是事件冒泡导致找不到或者找到多个事件导致的, 你这样去写! $(“#div1").on("click",".k1",function(){ ...

  6. 在命令行上 使用 mutt, fetchmail, maildrop, msmtp 收发邮件

    基于shell 现在已经有了 Mail.app, Thunderbird, Outlook 这些图形化工具能很方便的处理邮件,为啥还需要 mutt 这种命令行文本方式的邮件工具呢?mutt 的一个优势 ...

  7. java stream collector

    Java Stream API进阶篇 本文github地址 上一节介绍了部分Stream常见接口方法,理解起来并不困难,但Stream的用法不止于此,本节我们将仍然以Stream为例,介绍流的规约操作 ...

  8. 为什么需要设置pythonpath环境变量?

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #为什么需要设置pythonpath环境变量? #只需设置pythonpath,从而可以从正在用的目录(也就是 ...

  9. CentOS 6.4安装配置LAMP服务器

    CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL) 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+ ...

  10. Linux 系统文件类型

    在Linux中只有一下7种文件类型 1.普通文件(-表示,可用ls -l查看) 2.目录(d)[在linux中,任何东西都被看成文件,外设备也看成文件,注意是任何东西] 3.字符设备文件(c) 4.块 ...