Tomcat系统架构分析

那么这些容器是如何协同工作的呢?先看一下它们之间的关系图:

1). 四个容器的关系图

Tomcat系统架构分析_第1张图片

当 Connector 接受到一个连接请求时,将请求交给 Container,Container 是如何处理这个请求的?这四个组件是怎么分工的,怎么把请求传给特定的子容器的呢?又是如何将最终的请求交给 Servlet 处理。下面是这个过程的时序图:

2).  Engine 和 Host 处理请求的时序图

Tomcat系统架构分析_第2张图片

这里看到了 Valve 是不是很熟悉,没错 Valve 的设计在其他框架中也有用的,同样 Pipeline 的原理也基本是相似的,它是一个管道,Engine 和 Host 都会执行这个 Pipeline,您可以在这个管道上增加任意的 Valve,Tomcat 会挨个执行这些 Valve,而且四个组件都会有自己的一套 Valve 集合。您怎么才能定义自己的 Valve 呢?在 server.xml 文件中可以添加,如给 Engine 和 Host 增加一个 Valve 如下:

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

你可能感兴趣的:(Java)