应用程序服务器和servlet容器之间的区别?

Pus*_*kar 111 java terminology application-server java-ee

我试图理解完整的应用程序服务器(例如Weblogic,JBoss等)和servlet容器(Tomcat,Jetty等)之间的区别.

它们如何不同以及何时使用哪种?

谢谢,

Boz*_*zho 168

servlet-container仅支持servlet API(包括JSP,JSTL).

应用程序服务器支持整个JavaEE - EJB,JMS,CDI,JTA,servlet API(包括JSP,JSTL)等.

可以在servlet容器上运行大多数JavaEE技术,但是必须安装特定技术的独立实现.


Sau*_*aul 14

从广义上讲,servlet容器或多或少地限制了J2EE Servlet规范的实现.此外,它的重点是运行时环境,而不是提供额外的工具.

相比之下,完整的应用程序服务器实现了整个J2EE堆栈; 此外,它还配备了所有企业工具和集成功能.应用程序服务器通常具有高级管理界面,它支持群集和主要用于高端系统开发的其他功能.

对于初学者来说,使用简单的servlet容器可能会更好,因为那里的学习曲线要​​小得多.


编辑

@Apache Fan:这取决于您的情况的具体情况,如现有系统和未来计划等.我认为这里不适用通用的流程图方法.

平台选择通常通过根据所考虑系统的第一手知识权衡特定要求来完成.

但是,该问题没有提供评估标准的线索.它应该是开源的吗?是否需要全天候的供应商支持?系统应该与哪种企业环境集成?许可费是一个问题吗?任何必备的技术或工具?等等.

不知道上面的内容,它几乎是在黑暗中拍摄.


nan*_*imi 9

基本上,Java EE上下文中的应用程序服务器是安装在服务器上并实现一个Java EE规范(例如Java EE 7)的软件.这意味着此类软件(应用程序服务器)必须能够运行Java EE应用程序.

Java EE定义了4个域,即所谓的容器:

  • 小程序容器,
  • 应用客户端容器,
  • Web容器,和
  • EJB容器.

两个容器是应用程序服务器(EJB和Web容器)的一部分,另外两个是客户端计算机的一部分.

JBoss和Weblogic是应用程序服务器,Tomcat和Jetty是Web容器.这就是为什么JBoss和Weblogic可以处理比Web容器更多的技术.应用服务器可以管理EJB.

Servlet容器不是合格的Tomcat和Jetty的合适表达式,因为它更具限制性.Tomcat还可以执行JSP和JSF,而不仅仅是Servlets.