tomcat作为web容器需要管理服务端的端口与链接,数据的读取和转发
standardService就是用于管理链接,请求的读取与分发,目前tomcat主要支持两种协议HTTP/1.1,AJP/1.3
standardServer就是管理各个standaradServce的类和资源
standardServer的生命周期各个事情如下
standardServer
init初始化
依据server.xml初始化各个参数,检查main里面解析的common and shared的classloader下面的jar文件是否存在MANIFEST,把它加入containerManifestResources
globalNamingResources初始化
standardServer的依次初始化各个standardService
start
通知生命周期启动配置
globalNamingResources启动
依次启动standardService
await
若port=-1将当前线程赋值给awaitThread,后续唤醒的时候会唤醒await
创建一个等待的server socket接受command,当接受到shutdown命令就跳出循环开始stop
stop
依次停止standardService
停止globalNamingResources
停止等待请求
standardService
init初始化
初始化standardEngine容器
初始化链接线程池(依据tomcat的配置默认不使用)
初始化mapperListener
依次初始化Connector(<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />)(<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />)
start
启动standardEngine容器
启动连接池执行器,赋予运行请求处理线程能力(依据tomcat的配置默认不使用)
启动MapperListener
依次启动Connector
stop
先暂停所有connector
停止引擎
停止所有connector
停止mapperLitener监听
停止各个Executor