我是 Java Web 技术的新手。据说java web应用有两个容器:
- 网络容器
- EE 容器
这些容器是什么?他们如何合作?
有人说Tomcat是Web容器,有的地方说Tomcat是应用服务器。Tomcat到底是什么?
如果我说web container + EE container = Application server
是对的吗?
我是 Java Web 技术的新手。据说java web应用有两个容器:
这些容器是什么?他们如何合作?
有人说Tomcat是Web容器,有的地方说Tomcat是应用服务器。Tomcat到底是什么?
如果我说web container + EE container = Application server
是对的吗?
Tomcat 只是一个 Servlet 容器,同时也是一个 Web 服务器,这意味着它支持开箱即用的 Servlet API、JSF、Play 框架、Spring(一些特性)等等。另一方面,Application Server 通常是 Servlet 容器的超集,这意味着它包含容器具有的所有功能以及所有其他 Java EE 功能,例如消息传递、、、、EJB
远程处理等。JTA
JavaMail
所以选择主要取决于您的要求,但是在CDI
Servlet 容器的世界中,对于大多数应用程序来说应该足够了(Java EE 7 也提供事务支持)。
一些 Servlet 容器
一些应用服务器
Tomcat 是一个 Servlet 容器。它不是一个成熟的 Java EE 兼容应用程序服务器,因此它不支持例如EJBs
或JMS
开箱即用。
我想我自己通过维基百科找到了一个合理的答案,因为没有人给我一个明确的答案
Java Platform, Enterprise Edition 或 Java EE(以前是 J2EE)定义了 Java 应用服务器的 API 和特性的核心集。Web 模块包括 servlet 和 JavaServer Pages。Enterprise JavaBeans 用于管理事务。根据 J2EE 蓝图,应用程序的业务逻辑驻留在 Enterprise JavaBeans 中——一个提供许多特性的模块化服务器组件,包括声明性事务管理和提高应用程序的可伸缩性。一些 Java 应用服务器放弃了许多 Java EE 特性,例如 EJB 和 JMS,包括 Apache 的 Tomcat 和 Eclipse Foundation 的 Jetty。他们更关注 Java Servlet 和 JavaServer Pages。