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

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

他们如何不同以及何时使用哪些?

谢谢,

一个servlet容器只支持servlet API(包括JSP,JSTL)。

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

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

一般来说,一个servlet容器或多或less地限制了J2EE Servlet规范的实现。 另外,它的重点是运行时环境,而不是提供额外的工具。

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

对于初学者来说,最好还是留在一个简单的servlet容器中,因为学习曲线的陡峭程度要低得多。


编辑

@Apache Fan:这取决于你的情况的具体情况,如现有的系统和未来的计划等等。 我不认为一个通用的stream程图方法在这里是适用的。

平台的select通常是通过权衡特定的需求与所考虑系统的第一手知识来完成的。

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

如果不知道上面的情况,那么在黑暗中拍摄也是非常棒的。

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

Java EE定义了4个域,即调用容器(Applet容器,Application客户端容器,Web容器和EJB容器)。 两个容器是应用程序服务器(EJB和Web容器)的一部分,另外两个是客户端计算机的一部分。

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

Servlet容器不是合格的Tomcat和Jetty 的适当expression式 ,因为它更具限制性。 Tomcat也可以执行JSP和JSF,而不仅仅是Servlet。

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