Tomcat5启动流程与配置详解 - 编程入门网
ine
Pipleline是Valve的集合,当invoke方法被调用时,它会按指定的顺序调用Valve,它总是要求有一个Valve必须处理传递的request(一般是最后一个)并产生response,否则就把request传递到下一个Valve。 一般一个容器仅绑定一个Pipleline实例,一般说来容器会把处理request的功能封装到一个容器绑定的Valve里(这个Valve应该在Pipleline最后被执行)。为了完成这个功能,Pipleline提供了setBasic()方法以保证Valve被最后执行,而其他Valve按顺序被调用。 4.6 org.apache.catalina.Valve Valve是被绑定在一个Container上的请求处理组件,一组Valve被按顺序绑定在一个Pipleline上。 一个Valve可能按照一定的顺序执行下面的动作: *1.检查并且(或者)修改指定的Request和Response属性。 *2.检查Request属性,生成相应的Response并返回控制权到调用者。 *3.检查Request和Reponse属性,包装这些对象并增强它们的功能,然后把它们传到下一个组件。 *4.如果相应的Response没有被产生(并且控制权也没有被返回)调用Pipleline上的下一个Valve(如果有)通过方法context.invokeNext()。 *5.检查(但不修改)Response属性(调用后面的Valve或Container产生的)。 Valve一定不能作下面的事情: *1.改变Request的一些属性(Change request properties that have already been used to direct the flow of processing control for this request)。 *2.创建一个已经被创建并且已经被传递的Response。 *3.在调用invokeNext()方法并返回后修改包含Response的HTTP Header信息。 *4.在invokeNext()调用返回后在绑定Response上的输出流上作任何调用。 *@param request 将被处理的Request *@param response 将被创建的Response *@param context 被用来调用下一个Valve的Valve Context 4.7 org.apache.catalina.ValveContext 一个ValveContext是这样一种机制:一个Valve可以触发下一个Valve的调用,而不必知道机制的内在实现。 4.8 org.apache.catalina.Engine Engine是一个容器,是Cataline的Servlet的入口点。当发布一个连接到Web Server的Cataline时可能不使用Engine,因为Connectior将使用Web Server的资源决定使用哪个Context处理Request。附属于Engine的子容器根据Engine实现的不同可能是Host或Context(单个Servlet Context)。如果使用了Engine,在Cataline的层次中它就是顶层容器,因此setParent()应改抛出IllegalArgumentException异常。 4.9 org.apache.catalina. Host Host是一个容器,它代表一个虚拟主机。当发布一个连接到Web Server的Cataline时可能不使用Host,因为Connectior将使用Web Server的资源决定使用哪个Context处理Request。Host所附属的父容器通常是Engine,附属于Host的子容器通常是Context(单个Servlet Context)。Host接口里面的方法多数都是关于修改Host属性及设定默认的Context。这里我们不再一一列举。 Tomcat5启动流程与配置详解(7)时间:2011-03-11 51cto博客 zhangjunhd4.10 org.apache.catalin. Context Context是一个容器,它代表一个ServletContext,一个Cataline Engline中的单个的Web Application。Context所附属的父容器是Host,附属于Context的子容器是Wrapper(代表单个Servlet)。Context接口里面多数是关于Web Application的设置的方法,我们可以参考Web.xml文件研究里面的方法,里面多数方法都是如何读取Web.xml文件里的资源。 4.11 org.apache.catalina.Wrapper Wrapper是一个容器,它代表单个Servlet。Wrapper管理Servlet的生命周期,包括调用init()和destory()方法。Wrapper所附属的父容器是Context,没有附属于Wrapper的子容器,方法addChild()应该抛出IllegalArgumentEx |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |