Tomcat源码解读--代码走读之(四十八中的2-4)connector.getService().getContainer().getPipeline().g

1、获取serviceStandardService[Catalina]

2、获取containerStandardEngine[Catalina]

3、获取pipelinePipeline[StandardEngine[Catalina]]

4、GetFirst()org.apache.catalina.core.StandardEngineValve[Catalina],步骤如下

 (1)、内容如下,获取hosthostpipelinegetFirst



 

(2)、hostpipeline如下



 

(3)、pipelinegetFirstorg.apache.catalina.valves.AccessLogValve[localhost]进行



 

4)、(3)的getNext



 

5)、org.apache.catalina.valves.ErrorReportValve[localhost]invoke



 

(6)、(5)的getNext



 

(7)、org.apache.catalina.core.StandardHostValve[localhost]invoke主要进行



 

(8)、(7)的pipeline



 

(9)、(8)的getFirst



 

(10)、org.apache.catalina.core.StandardContextValve[]invoke为主要进行



 

11)、(10)的wrapperWrapper wrapper = request.getWrapper();



 

12)、(11)的getPipeline



 

(13)、(12)的getFirst



 

(14)、(13org.apache.catalina.core.StandardWrapperValve[jsp]invoke主要进行

   1)、wrapper的设置




 
 

     2)、context的设置




 
 

     3)、servlet的设置,进行初始化servletinit方法。

 

 

     4)、Create the filter chain forthis request  factory的设置



 

   5)、filterChain.doFilter

 (request.getRequest(),response.getResponse());执行doFilter

   6)、5)执行过后执行servlet.service(request,response);就是执行具体的serlvetservicedoGetdoPost之类的。

   7)、Deallocatethe allocated servlet instance



 



 

15)、(14-10-7-5-3-1)之后的收尾工作。

 

猜你喜欢

转载自83519144.iteye.com/blog/1887022