应用服务器和servlet容器有什么区别?

问题描述 投票:0回答:5

我试图理解成熟的应用程序服务器(例如 Weblogic、JBoss 等)和 servlet 容器(Tomcat、Jetty 等)之间的区别。

它们有何不同以及何时使用哪个?

java jakarta-ee terminology application-server
5个回答
189
投票

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

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

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


16
投票

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

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

对于初学者来说,最好还是使用简单的 servlet 容器,因为学习曲线要简单得多。


编辑

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

平台选择通常是通过权衡具体要求与所考虑系统的第一手知识来完成的。

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

如果不了解上述内容,那几乎就是在黑暗中拍摄。


12
投票
基本上,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 不仅可以执行 Servlet,还可以执行 JSP 和 JSF。

通俗地说:

2
投票
处理 HTTP 请求(通常来自浏览器)。

Servlet 容器(例如 Tomcat)意味着:

它可以处理 servlet 和 JSP。

应用服务器(例如 GlassFish)意味着:

*它可以管理 Java EE 应用程序(通常是 servlet/JSP 和 EJB)。

对于初学者来说,最好还是使用简单的 servlet 容器。

afaik,websphere 和 jboss 是完全兼容的 j2ee 服务器,可以在 servlet 之外运行,例如 EJB,而 Tomcat 只是一个 servlet 容器,您无法在其上运行 EJB。

1
投票

© www.soinside.com 2019 - 2024. All rights reserved.