1、分析catalina.jar源码,在其中加入一些日志信息
2、启动tomcat,查看相关信息
3、根据日志,经过分析,我们可以看出,tomcat会先去读server.xml下配置的context标签的项目,之后会去加载conf/Catalina/localhost下面的.xml里面配置的项目,之后会去读取server.xml下<Host appBase="webapps"/>配置的appBase下的项目
4、好了,我们大概的了解了启动过旯皱镢涛程,我们再去分析源码吧,首先是server.xml下context标签项目的启动过程:读取docbase和path,如果path为/,/ROOT,那么bas髫潋啜缅eName就是ROOT,否则就为它本身
5、之后分析docBace对应的文件:docBase是war腻戴怯猡包,就解压到刚刚的baseName下面。如果docBase是文件夹,什么都不做。如果docBase文件夹不存在,再去蚕蝣鲢蹙目录下查找docBase(文件目录)对应的war包存在不存在,如果存在解压war包到baseName(url路径,ROOT就是域名根目录)
6、之后就会去加载该项目
7、context加载完成之后,会去加载conf/Catalina/localhost配置的项目,之后会去加载appBase下的war包项目,最后加载appBase目录下的文件夹项目
8、总结加载项目步骤:先是server.xml的context项目;之后是conf/Catalina/localhost的context项目,然后是appBase的war包项目,最后是appBase目录下的文件夹项目