tomcat源码阅读之StandardWrapper解析

一、UML图:

1、Tomcat中Wrapper代表一个独立的servlet实例,StandardWrapper类是Wrapper接口的标准实现类,StandardWrapper类还实现了SelvletConfig接口,同时其从ContainerBase类继承过来,表示他是一个容器,只是他是最底层的容器,不能再含有任何的子容器了,且其父容器只能是context;

2、Valve接口代表阀门实现,StandardWrapperValve作为StandardWrapper的Basic Valve阀门的标准实现类,从ValveBase类继承过来;

3、StandardWrapper有一个管道Pipeline实例,pipeline中有一个Basic Valve阀门,就是StandardWrapperValve类的实例;

二、调用流程:

1、从上图的流程可以看到Wrapper.invoke方法会调用pipeline.invoke方法,pipeline.invoke循环调用管道里面所有的valve阀门,最后再调用Basic Valve阀门,而Wrapper的Basic Valve阀门是StandardWrapperValve类的实现;

2、StandardWrapper类中最重要的两个方法是allocate和loadServlet,实现流程如下:

3、StandardWrapperValve的invoke方法实现流程如下:

 

posted on 2017-12-07 16:17  小夏coding  阅读(390)  评论(0编辑  收藏  举报

导航