前言
前面写了两篇关于tomcat,小伙伴有时间可以看一下。
下面我们来了解Tomcat的请求流程:
Tomcat请求流程
(1)请求被发送到本机端口8080,被在侦听的Coyote HTTP/1.1 Connector获得
(2)Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
(3)Engine获得请求localhost/项目/页面.jsp,匹配它所拥有的所有虚拟机Host
(4)Engine匹配到名为localhost的host(即使匹配不到也把请求交给Host处理,因为该Host被定义为该Engine的默认主机)
(5)localhost Host获得请求/项目/页面.jsp,匹配它所拥有的所有Context
(6)Host匹配到路径为/项目的Context(如果匹配不到就该把请求交给路径名为“ ”的Context去处理)
(7)path="/项目" 的Context获得请求/页面.jsp,在它的mapping table中寻找对应的servlet
(8)Context匹配到URL PATTERN为*.jsp,对应于JspServlet类
(9)构造HttpServletRequest对象HttpServletResponse对象,作为参数调用JspServleet的doGet或doPost方法
(10)Context把执行完了之后的HttpServletResponse对象返回给Host
(11)Host把HttpServletResponse对象返回给Engine
(12)Engine把HttpServletResponse对象返回Connector
(13)Connector把HttpServletResponse对象返回给客户browser
流程图如下: