tomcat Http请求处理流程

具体过程如下:

1.连接器创建request和response对象;

2.连接器调用 StandarContext实例的invoke()方法;

3.接着,StandarContext实例的invoke()方法调用其他管道对象的invoke()方法。StandardContext中管道对象的基础阀是StandardContextValve实例,因此,StandardContext的管道对象会调用StandardContextValve实例的invoke()方法;

4.StandardContextValve实例的invoke()方法获取相应的Wrapper实例处理Http请求,调用Wrapper实例的invoke()方法;

5.StandardWraper是Wrapper接口的标准实现,StandardWraper实例的invoke()方法会调用其管道对象的invoke()方法;

6.StandardWraper的管道对象中的基础阀是StandardWraperValve实例,因此,会调用StandardWraperValve的invoke()方法,StandardWraperValve的invoke()方法调用warpper实例的allocate()方法获取Servlet实例;

7.allocate()方法调用load()方法载入相应的Servlet类,若已经载入,则无需重复载入;

8.load()方法调用Servlet实例的init()方法;

9.获取过滤器链,并遍历处理;

10.StandardWrapperValve调用Servlet实例的Servlet的service()方法。


猜你喜欢

转载自blog.csdn.net/qq_34886599/article/details/80501876