Tomcat Jboss Apache WebLogic区别与比较(阿里面试) Tomcat Jboss Apache WebLogic区别与比较

1. Tomcat是Apache鼎力支持的Java Web应用服务器只能做JSP和Servlet的Container,不支持EJB,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。­实际上Tomcat 部分是Apache 服务 器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进 程单独运行的。

2.Apache全球应用最广泛的http服务器,免费,出自apache基金组织.apache仅有的不足是,它本身仅提供html静态页面的功能,不能支持jsp、java servlet、asp等功能,

但通过同其他应用服务器一起工作或添加插件来支持。(稳定高效,通常需要与其他服务器软件或插件协同工作)

3. Jboss作为Java EE应用服务器它不但是Servlet容器,而且是EJB容器(同时支持EJB的优化版tomcat),是完整的J2EE容器从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。­

4.BEA WebLogic Server是专门为企业电子商务应用系统开发的它不但是Servlet容器,而且是EJB容器(同时支持EJB的优化版tomcat),是完整的J2EE容器, 企业电子商务应用系统需要快速开发,并要求服务器端组件具有良好的灵活性和安全性,

同时还要支持关键任务所必需的扩展、性 能、和高可用性。BEA WebLogic Server简化了可移植及可扩展的应用系统的开发,并为其它应用 系统和系统提供了丰富的互操作性。

是weblogic不是一款开源的软件,虽然存在免费试用等,但它主要的应用目标为大型商业应用,而这种应用需要高额的license费用

5.resin:resin是Caucho公司的产品。resin最突出的是它的性能非常高效,连html页面的效率也直追apache;支持 servlet/jsp,EJB。虽然resin是开源的,不过有两种lisence:GPL和商用lisence,

可以在GPL下免费使用,但注意商用 的是要交钱的。(高效全功能的轻型服务器软件)

6.websphere:websphere是IBM旗下的一款应用服务器软件。与weblogic相似,同为商业软件,同具有稳定、高效,支持多种应 用……。也是需要高额的费用,适于大型商业应用;有Community Edition版本,是开源的。

(如果有IBM其他配套产品,大型商用考虑使用)

搭配: 
1. 如果仅需要展示html页面,而不要其他功能,apache; 
2. 如果是在开发时使用或者是一般小型应用,需要支持jsp/servlet,而又不需要EJB的,tomcat; 
3. 需要支持jsp/servlet,不需要EJB,有希望提高服务器的效率和稳定性的,apache+tomcat; 
4. 需要支持jsp/servlet/EJB,而又想免费的,apache+jboss(包含tomcat的版本); 
5. 需要支持jsp/servlet/EJB,又可以花点小钱的,resin(实在认为有必要,可以考虑resin+apache); 
6. 大型商用,可以支付较高费用,weblogic(websphere可选); 
7. 大型商用,可以支付较高费用,且有其他IBM相关功能服务的,websphere。

如果对J2EE 包含了 JSF 和EJB 就是标准的javaSE和企业版EJB

    EJB从我们一开始没怎么接触J2EE的时候就开始听说了,听说他是一个容器,听说他很高大上,但是对于我们这种java菜小鸟来说真的听不懂呀,这段时间经过我的广泛搜集资料,算是把他的基本定义和基本使用方式知道的差不多了。

      我们都知道我们这部分学习的是J2EE,之前学习过J2SE,那么构建知识网的原则我们知道我们需要映射,知道他们之间的相同点和不同点,我们前期在学习J2SE的时候使用到了CMD而我们学习J2EE的时候却没有说使用CMD,可以说J2SE是J2EE的一部分,J2EE适用范围更广,它可以看成在J2SE的平台上加上了无数的组件,才构成了他现在的功能!而我们这次的主角EJB就是这样的一个组件容器,我们以前接触过ITOO的框架我们将我们的工程分为三层表现层、业务逻辑层和数据层,而我们的EJB就是相当于业务逻辑层,土体的他的位置,请见下图:

 

      视图层或表现层:提供用户界面;接收用户输入;数据输出。WEB应用的情况,JSP以及SERVLET属于视图层组件。
      业务逻辑层:实际的业务逻辑处理。根据视图层传送过来的数据,进行实际的业务逻辑处理(包括数据库的查询,更新等),再把处理后的结果返回给视图层。EJB,以及不使用EJB的情况下担当业务逻辑处理部分的JavaBean等归属于业务逻辑层组件。
    数据库层或数据持久化层:多指用于保存业务数据的数据库,也可以是文件等等。
    EJB属于J2EE体系结构中的业务逻辑层部分。

     

    SessionBean
    主要负责业务逻辑的处理。根据处理时的状态保持与否,SessionBean又被分为:
    Stateful SessionBean(有状态SessionBean)

    Stateless Bean(无状态SessionBean)对象的“状态”是指对象的属性值,也就是对象所携带的数据。Stateful SessionBean能维持会话的状态,就是说能为同一客户端保持上一回被调用时的状态,类似于HttpSession;而Stateless SessionBean则不能维持会话状态,也就是说,对Stateless SessionBean来说,每个方法都是独立的,因为对特定客户端不保持会话状态,所以一般也不在Stateless SessionBean里定义成员变量。
EntityBean
       负责数据库的访问。通常由SessionBean调用。EntityBean的一个实例所表示的数据通常代表了关系数据库中特定表的特定的一行数据。EJB3开始,EntityBean部分的功能可以通过JPA来实现。
EntityBean的作用:
1,对数据库的操作:查询,数据的更新,删除等
2,数据库表数据的携带
根据对数据库操作(持久化)的不同,EntityBean分为以下2种类型:
1,BMP (Bean-managed persistence:bean管理持久化):持久化操作(数据库的访问,数据的创建,更新,删除等)由EntityBean的实现(javax.ejb.EntityBean的实现类)自身完成。
2,CMP (Container-managed persistence:容器管理持久化):持久化操作由容器根据deploy时的配置信息(ejb-jar.xml)自动完成。
MDB (message-driven bean:消息驱动bean)
      MDB主要用来处理异步消息。客户端调用SessionBean,EntityBean的方法时,会一直处于等待状态,直到被调用的方法处理完毕。但使用MDB,客户端向容器发送一个JMS消息之后,不必等待MDB处理完毕便可直接返回。JMS被发送给由容器管理的JMS消息队列,容器在适当的时候通知MDB的callback方法onMessage加以处理。一个MDB需要实现javax.jms.MessageListener接口与javax.ejb.MessageDrivenBean接口。

参考:J2EE总结之EJB总结

参考:Tomcat Jboss Apache WebLogic区别与比较

猜你喜欢

转载自www.cnblogs.com/aspirant/p/9088995.html
今日推荐