关于Tomcat工作原理详解 tomcat的配置文件什么含义?tomcat是如何加载我们的webapp
Server.xml
关于Server.xml我们一般需要配置的有Connector,将端口设为我们向外开放访问的端口,接下来就来对整个配置文件的详解
<Server port="8005" shutdown="SHUTDOWN">
Server:
启动一个server实例(一个JVM),不同server不能使用同一端口
这个port是接受shutdown指令的接口,默认仅允许本机访问;shutdown为实现关闭tomcat实例的命令字符串
<Service name="Catalina">
Service:
关联一个引擎或与引擎相关的连接器,连接器通过特定端口介入请求转发给关联的引擎处理,每个service需要包含一个引擎,一个或多个连接器
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Connector:连接器
<Engine name="Catalina" defaultHost="localhost">
Engine:引擎
tomcat总体架构
Server:负责整个Tomcat的声明周期
Service:向外提供服务
Connector
负责接收发来的tcp请求,创建一个 Request 和 Response对象分别用于和请求端交换数据,然后会产生一个线程来处理这个请求并把产生的 Request 和 Response 对象传给处理这个请求的线程
简单来说就是负责将请求的数据封装到request和response对象中,传给container
Container
责任链设计模式,分别有4个自容器:Engine,host,context,wrapper,4个之间是父子关系
<Context path="/" docBase="hrm" debug="0" privileged="true"/>
关于Host:
如果要运行war程序,则必须要Host,因为war中肯定有web.xml文件,需要Host进行解析
Connector将请求交给container后Engine - Host处理时序图:

// https://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/
