Server
Server 元素在最顶层,代表整个 Tomcat 容器,因此它必须是 server.xml 中唯一一个最外层的元素。一个 Server 元素可以有一个或多个 Service 元素。
<Server port="8005" shutdown="SHUTDOWN"></Server>
可以看到,最外层有一个 <Server> 元素,shutdown 属性表示关闭 Server 的指令;port 属性表示 Server 接收 shutdown 指令的端口号,设置为 -1 可以禁用该端口。Server 的主要任务,就是提供一个接口让客户端能够访问到这个 Service 集合,同时维护它所包含的所有 Service 的生命周期,包含如何初始化,如何结束服务,如何找到客户端要访问的 Service。
Service
在 Connector 和 Engine 外面包一层,把它们组合在一起,对外提供服务。一个 Service 可以包含多个 Connector,但是只能包含一个 Engine;其中 Connector 的作用是从客户端接收请求,Engine 的作用是处理接收进来的请求。
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina"></Service>
</Server>
如上图,Server 中包含一个名称为'Catalina'的 Service。实际上,Tomcat 可以提供多个 Service,不同的 Service 监听不同的端口。
Connector
接收连接请求,创建 Request 和 Response 对象用于和请求端交换数据;然后分配线程让 Engine 来处理这个请求,并把产生的 Request 和 Response 对象传给 Engine。通过配置 Connector,可以控制请求 Service 的协议及端口号。
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">


