我试图理解成熟的应用程序服务器(例如 Weblogic、JBoss 等)和 servlet 容器(Tomcat、Jetty 等)之间的区别。
它们有何不同以及何时使用哪个?
servlet-container 仅支持 servlet API(包括 JSP、JSTL)。
应用服务器支持整个JavaEE - EJB、JMS、CDI、JTA、servlet API(包括JSP、JSTL)等。
可以在 servlet 容器上运行大多数 JavaEE 技术,但您必须安装特定技术的独立实现。
从广义上讲,Servlet 容器或多或少地将自身限制为 J2EE Servlet 规范的实现。此外,它的重点是运行时环境,而不是提供额外的工具。
相比之下,成熟的应用服务器实现了整个 J2EE 堆栈;此外,它还配备了所有企业工具和集成可能性。应用服务器通常具有高级管理界面,它支持集群和其他主要用于高端系统开发的功能。
对于初学者来说,最好还是使用简单的 servlet 容器,因为学习曲线要简单得多。
编辑
@Apache Fan:这取决于您的具体情况,例如现有系统和未来计划等。我认为通用流程图方法不适用于此处。
平台选择通常是通过权衡具体要求与所考虑系统的第一手知识来完成的。
然而,这个问题没有给出评估标准是什么的线索。它应该是开源的吗?是否需要全天候供应商支持?系统应该与什么样的企业环境集成?许可费是一个问题吗?有什么必备的技术或工具?等等
如果不了解上述内容,那几乎就是在黑暗中拍摄。
Java EE 定义了 4 个域,即所谓的 容器
:小程序容器,
Servlet 容器对于合格的 Tomcat 和 Jetty 来说并不是合适的表达
,因为它的限制性更强。 Tomcat 不仅可以执行 Servlet,还可以执行 JSP 和 JSF。
通俗地说:Servlet 容器(例如 Tomcat)意味着:
它可以处理 servlet 和 JSP。应用服务器(例如 GlassFish)意味着:
*它可以管理 Java EE 应用程序(通常是 servlet/JSP 和 EJB)。对于初学者来说,最好还是使用简单的 servlet 容器。
afaik,websphere 和 jboss 是完全兼容的 j2ee 服务器,可以在 servlet 之外运行,例如 EJB,而 Tomcat 只是一个 servlet 容器,您无法在其上运行 EJB。