目录
一、说一说Tomcat的启动流程
二、Tomcat中有哪些类加载器?
三、为什么Tomcat可以把线程数设置为200,而不是N+1?
四、Tomcat处理请求的过程怎样的?
五、说一说Servlet的生命周期
六、过滤器和拦截器的区别?
七、介绍一下Tomcat的IO模型
八、说一说Tomcat的类加载机制?
一、说一说Tomcat的启动流程
主要入口就是Bootstrap这个类,里面主要有三个方法,init、load和start。
bootstrap.init
- 加载启动类:加载启动相关的类加载器及类,创建Catelina对象。
bootstrap.load
- 加载配置文件:主要包括server.xml和web.xml,其中server.xml用于配置Tomcat的基础服务,如端口号、线程池等;web.xml用于配置Web应用程序的参数、Servlet和过滤器等信息。
- 初始化组件:依次初始化Tomcat的各个组件,包括Server、Service、Connector、Engine、Host和Context,它们都是Tomcat运行的主要组成部分。
bootstrap.start
- 启动服务:当所有组件初始化完成后,Tomcat会依次启动Connector、Engine、Host和Context,最终启动整个Tomcat服务。
- 部署应用:启动完成后,会扫描指定的Web应用程序目录,自动部署已经打包好的Web应用程序。
以上步骤执行完之后,一个Web应用就启动了。后续有请求到达时,会根据请求的URL匹配相应的Context,然后将请求转发