how tomcat works

本文中只是提取了每个模块的关键部分,具体技术细节只能通过看代码来掌握。

1、socket 、serversocket

tcp通信

2、servlet

init

destory

process(req,resp)

3、connector processor

单请求单响应模型、阻塞

4、connector processor container

单请求多响应模型、非阻塞

5、主要讲container

wrapper - 1*servlet

context - n*wrapper

connector

processor 

6、生命周期管理

Lifecycle 管理器

LifecycleEvent 监听事件

LifecycleListener 监听器

7、日志记录器

 8、类加载器

为什么tomcat需要自己的类加载器

定制加载规则
缓存加载过的类
预加载类

 9、session管理

 10、安全管理

 11、StandardWrapper

代码调用序列如下:

 12、StandardContext

13、Engine和Host

 14、server 和 service

Catalina主要包括connector和container两个模块,connector负责接收请求,传递给container,而container负责处理请求。
service的作用是统一管理connector和container,一个service可以包括多个connector和一个container。而server的作用是,管理所有的service,一个server可以包括多个service。server负责管理所有service的生命周期,这样就管理了所有的connector和container,以及connector和container的所有内部组件。这样就不需要单独对connector和container单独进行开启或关闭了。

15、Digester

 Tomcat是利用Digester解析server.xml。Digester是Apache下的开源项目

16、关闭钩子

非正常退出时,执行特定逻辑

 17、启动tomcat

catalina 和 bootstrap

18、部署

参考文档:

github地址 :https://github.com/Aresyi/HowTomcatWorks

http://blog.csdn.net/u013159433/article/details/47415407

https://yuedu.baidu.com/ebook/ac92f0d35122aaea998fcc22bcd126fff7055d60

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

http://blog.csdn.net/qq_24451605/article/details/51289519

四张图带你了解Tomcat系统架构 https://www.dengxiangxing.com/post/57507

 一头扎进tomcat https://www.dengxiangxing.com/post/57720

原文地址:https://www.cnblogs.com/huilei/p/8085082.html