Tomcat工作原理
Tomcat是Servlet运行环境(容器),每一个Servlet执行init(),service(),destory().
下面我们来分析一下Tomcat Server处理一个http请求过程来解释Tomcat原理
假设 :
来自客户的请求为:http://localhost:8080/student/index.jsp
1.请求被发送到本机端口8080,被在哪里侦听的Coyote Http/1.1 Connerctor获得
2.Connector 把请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3.Engine获得请求locahost/student/index.jsp,匹配他所拥有的所有虚拟主机Host
4.Engine匹配到名为locahost的Host(即使匹配不到也会将请求交给Host处理,因为该Host被定义为该Engine的默认主机)
5.locahost Host获得请求/student/index.jsp匹配他所拥有的所有Context
6.Host匹配到路径为/student的Context(如果匹配不到就把请求交给路径为“”的Context去处理)
7.path=“/student”的Context获得请求/index.jsp,在他的mapping table 中寻找对应的servlet
8.Context匹配到URL PATTERN 为*.jsp的servlet,对应JspServlet类
9.构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或者doPost方法
10.Context把执行完了之后的HttpServletResponse对象返回给Host
11.Host把HttpServletResponse对象返回给Engine
12.Engine把HttpServletResponse对象返回给Connector
13.Connector把HttpServletResponse对象返回客户browser