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

时间:2011-02-18 09:02:33

标签: java java-ee terminology application-server

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

它们如何区别以及何时使用哪种?

谢谢,

5 个答案:

答案 0 :(得分:161)

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

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

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

答案 1 :(得分:14)

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

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

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


修改

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

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

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

在不知情的情况下,它几乎是在黑暗中拍摄。

答案 2 :(得分:9)

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

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

  • Applet容器,
  • 应用程序客户端容器,
  • Web容器,
  • EJB容器。

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

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

对于符合条件的Tomcat和Jetty,

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

答案 3 :(得分:2)

afaik,websphere和jboss是完全兼容的j2ee-server,它可以运行在servlet之外,比如EJB,而Tomcat只是一个servlet容器,你不能在它上面运行EJB。

答案 4 :(得分:1)

以Layman术语: Web服务器意味着:处理HTTP请求(通常来自浏览器)。

Servlet容器(例如Tomcat)意味着:它可以处理servlet& JSP。

Application Server(例如GlassFish)意味着: *它可以管理Java EE应用程序(通常是servlet / JSP和EJB)。

对于初学者来说,使用简单的servlet容器可能会更好。