转自:《精通Tomcat》第四章
对于一次访问过程 主要有以下几个步骤 假设来自客户的请求为 http://localhost:8080 /test/index.jsp。
1 请求被发送到本机端口8080 被在那里侦听的HTTP Connector获得
2 Connector把该请求交给它所在的Service的Engine来处理 并等待来自Engine的回应
3 Engine获得请求localhost/test/ index.jsp 匹配它所拥有的所有虚拟主机Host
4 Engine匹配到名为localhost的Host 即使匹配不到也把请求交给该Host处理 因为该Host被定义为当前Engine的默认主机
5 localhost Host获得请求/test/index.jsp 匹配它所拥有的所有Context
6 Host匹配到路径为/test的Context 如果匹配不到就把该请求交给路径名为""的Context去处理
7 path="/test"的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对象返回给客户浏览器。
这样 一次的请求响应过程结束。