Tomcat 的 "Catalina service" 和 "Servlet Engine" 之间的区别

Difference between Tomcat's "Catalina service" and "Servlet Engine"

我以前认为Tomcat中的Catalina是一个Servlet Container(和Web Container一样——一个用来处理Servlets的组件+JSP)。

但我在 Tomcat 启动日志中看到 Tomcat 有 "Catalina service" 和 "Servlet Engine"。那么Tomcat的"Catalina service"和"Servlet Engine"有什么区别呢?

дек 01, 2018 8:29:10 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
дек 01, 2018 8:29:10 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47

Tomcat JSP 引擎叫做 Jasper。 Tomcat 启动信息日志清楚地指出两个实体都处理 servlet,而不是 jsp - "Catalina service" 和 "Servlet Engine".

Tomcat engine 表示不应与 Apache 服务器并行使用的整个 Catalina servlet 引擎:

An Engine is a Container that represents the entire Catalina servlet engine. It is useful in the following types of scenarios: You wish to use Interceptors that see every single request processed by the entire engine. You wish to run Catalina in with a standalone HTTP connector, but still want support for multiple virtual hosts. In general, you would not use an Engine when deploying Catalina connected to a web server (such as Apache),

卡特琳娜是 main service of Tomcat server

Tomcat is actually composed of a number of components, including a Tomcat JSP engine and a variety of different connectors, but its core component is called Catalina. Catalina provides Tomcat's actual implementation of the servlet specification; when you start up your Tomcat server, you're actually starting Catalina.