I used to think that Catalina in Tomcat is a Servlet Container (which is the same as Web Container - a component meant to process Servlets + JSP).
But I saw in Tomcat startup logs that Tomcat has "Catalina service" and "Servlet Engine". So what is the difference between Tomcat's "Catalina service" and "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 engine is called Jasper. Tomcat startup info logs clearly state two entities both dealing with servlets, not jsp - "Catalina service" and "Servlet Engine".
Tomcat engine represents the entire Catalina servlet engine that shouldn't be used in parallel to Apache server:
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),
Catalina is the 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.