Tomcat源码分析(类加载器)文章分类:Java编程1.Tomcat共有五类ClassLoader:
Tomcat源码分析(过滤器)文章分类:Java编程Tomcat的过滤器主要由Filter、FilterChain组成,FilterChain包含一个Filter数组.当Wrapper执行FilterChain的doFilter(request,response)方法时,FilterChain首先调用第一个Filter的doFilter(request,response,filterchain)方法,当第一个filter做完过滤操作后,它又会调用filterchain的doFilter方法,此时filterchain的当前filter已变为第二个filter,第二个filter又执行dofilter方法,依此类推,直至所有过滤器都执行完毕
1.接口
2.实现例子
过滤器可以在web.xml中进行配置 Tomcat源码分析(阀门)关键字: tomcat源码分析1.Tomcat组件及关系
Server --Service --Connector --Engine --Host --Context --Wrapper(Servlet) Server代表Tomcat应用服务器,它可以包含多个Service服务;一个Service服务包含多个Connector和一个Engine;一个Engine可以包含多个虚拟主机Host;一个Host可以包含多个Web应用Context,而每个Web下有可以包含多个Wrapper(Servlet的包装器) 组件及其关系可以参考Tomcat的Server.xml及Web.xml文件 2.当一个请求到达时,Connector会把它包装成Request对象,同时生成Response对象;然后Connector会调用Engine的invoke方法,它又会调用Host的invoke 方法,Host的invoke方法又会调用Context的invoke方法,最后,Context的invoke方法调用Wrapper的invoke方法,至此,责任链调用结束。 接口及实现: a.Pipeline , 此接口的实现主要用于维护阀门及先后关系,实现见 org.apache.catalina.core.StandardPipleline
b.Valve , 阀门接口,主要用于做过滤工作
c.下面是与责任链有关的实现代码,以Engine的标准实现StandardEngine为例
d.StandardEngine简单阀门的实现
e.StandardEngine最后一个阀门(StandardEngineValve)的实现
c,d,e代码即为StandardEngine责任链调用的主要代码,Host、Context、Wrapper的责任链调用相关代码与其类似,阀门可以在Server.xml及Web.xml中配置 |
|