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


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

(2)、hostpipeline如下


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

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


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

4)、(3)的getNext


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

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


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

(6)、(5)的getNext


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

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


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

(8)、(7)的pipeline


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

(9)、(8)的getFirst


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

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


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

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


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

12)、(11)的getPipeline


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

(13)、(12)的getFirst


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

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

   1)、wrapper的设置



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

     2)、context的设置



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

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

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

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


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

   5)、filterChain.doFilter

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

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

   7)、Deallocatethe allocated servlet instance


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


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

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