大家好这里是X,最近一直在学习Tomcat的架构解析,收获真的非常非常多,毕竟这玩儿真的太重要了🍅🍅🍅,下面为大家带来我自己总结的Tomcat总体架构的一步步形成的过程🧀,呕心沥血的总结,如果你感兴趣,那就接着往下看吧🍹
文章目录
- 发展历程
- Container的设计
- Tomcat定义的两个接口
发展历程
再解释一下:
Container的设计
Tomcat定义的两个接口
为什么需要?
因为我们想提高每个组件的灵活性,使其更容易扩展
Pipleline用于构造职责链
接口里的具体方法:
- addValue()
- getBasic()
- getContainer()
- getFirst()
- isAsyncSupported()
- removeValue()
- setBasic()
- setContainer()
作用机制
Pipleline中维护了一个基础的Value,它始终位于Pipleline的末端–>最后执行的意思,封装了具体的请求处理和输出相应的过程
通过addValue()方法可以添加其他的Value,removeValue()也可以删除Value
后添加的Value是位于基础的Value之前的,并且按照添加的顺序执行
Tomcat的灵活之处就在于:
每个层级的容器(Engine、Host、Context、Wrapper)均有对应的基础Value去实现和维护,这样就可以在任何层级的容器上针对请求处理进行扩展
流程图
好啦,这就是目前的内容,下一期出对于Connector的设计