tomcatwebserver
configuraableserveletwebserverfactoty getwebserver
configuraableserveltwebserverfactory
server service executor connector acceptor engine context host vhost context wrapper(servlet)
pipeline 阀门 volve
protocoalhandler
idea加载源码open 设置为rootdirectory
根据server.xml 画uml图(processon)
通过.sh追溯到启动类为bootstrap java -jar
server
container engine host context wrapper
context中的servletcontainerinitialzer非常重要,连接springboot中和tomcat
facade模式门面 session
tomcat分层架构server下有多个service service 下有conector连接器和有engine执行引擎 engine下有host虚拟主机 context上下文 wrapper
抽象出pipeline做拦截器链,pipeline中有一堆valve链表结构,invoke,
抽象出store存session 抽象出manager管理session ,三个接口管理资源(一组资源、一个和一整块资源)
tomcat热部署机制
新建classloader
要卸载一个类的条件是,1.这个类的classloader被回收 2.没有该类的引用 3.不存在该类中的对象
containerbase
tomcat类加载器
common类加载器catalinaloader sharedloader
打破双亲委派 jdk的类如drivermanager需要调用用户自定义的类,父亲加载器调用子类的加载器 因此创造了线程上下文加载器
京东书 设计模式 headfirst
jmx - management extension jvm ti的接口 tool interface
abstractprotocal类里的settcpnodelay 设置tcp legal算法?协议