tomcat源码分析 - wtdig/study GitHub Wiki
一、 导入源码到idea
二、 tomcat的运行流程
tomcat启动入口是startup.bat文件,该文件会设置CATALINA_HOME,CATALINA_BASE等常见变量,并且调用catalina.bat文件,传递start参数。
catalina.bat文件,所做的事情就是检查关键文件是否存在,设置关键变量,例如CATALINA_HOME,CATALINA_BASE,classpath等等,最后新开一个窗口
调用Bootstrap类的main方法,传递参数start,并且将一大堆配置传递过去。
源码中启动类:org.apache.catalina.startup.Bootstrap
三、 源码分析
初始化容器,tomcat的结构: server(服务端),一个服务端包含多个service,一个service包含engine(引擎),host(主机),context(上下文)
1、 standContext的类中的start方法,会创建一个WebappLoader;
2、 触发Context组件的configure_start事件,通知ContextConfig监听器
3、开始解析Web应用WEB-INF/web.xml文件配置到WebXml对象,最后把配置信息全部解析到StandardContext
1)、 启动所有的 web.xml 中配置的 listener;
2)、 启动所有的 web.xml 中配置的 filter;
3)、 加载自启动的 servlet ,同时会执行 init 方法
注释:调试tomcat一次完整的数据请求时,可以通过刷新tomcat自带的example页面,即可触发请求的dbug