filter生命周期

王朝百科·作者佚名  2010-02-15
窄屏简体版  字體:   |    |    |  超大  

web应用发布完成之后,在request访问web资源之前,容器必须定位需要应用到该资源上的filter列表。容器需要确保实例化列表中的每个filter并调用它的init方法。如不能正确执行,filter可以抛出异常。

配置描述文件中每个filter的声明在每个虚拟机中仅仅只有一个实例。容器提供filter配置秘书中声明的config对象, 它包含了该web应用的ServletContext引用,和filter初始参数。

当容器接收到request,将取得列表中的第一个filter实例,并调用它的doFilter方法。将传入ServletRequest,ServletResponse和filterchain的引用。

doFilter方法遵循以下模式:

1.该方法检测request的头信息

2.可能会用一个定制的ServletRequest或HttpServletRequest包装request对象。

3.可能会用一个定制的ServletResponse或HttpServletResponse包装response对象。

4.filter可以调用filter链中的下一个入口,可能是一个filter,也可能是目的web资源。

5.调用链中的下一个filter之后,filter可以检测响应头信息。

6.处理过程中,filter可能抛出异常。如果在doFilter中抛出UnavailableException,容器不要继续filter链的处理,如飞永久性异 常,它可以选择在稍晚的时候重新执行整个filter链。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航