过滤器的一点认识

参考文章 :  http://blog.csdn.net/gunandrose/archive/2003/08/20/19841.aspx

1, 过虑器在web.xml中的注册:
    .......
   <filter>
        <filter-name>mySecondFilter</filter-name>
        <filter-class>Filter.mySecondFilter</filter-class>
 </filter>
 <filter>
        <filter-name>myFirstFilter</filter-name>
        <filter-class>Filter.myFirstFilter</filter-class>
        <init-param>
                  <param-name>grant</param-name>
                  <param-value>zqb</param-value>
        </init-param>
        <init-param>
                  <param-name>encoding</param-name>
                  <param-value>gbk</param-value>
        </init-param>
 </filter>

 <filter-mapping>
        <filter-name>myFirstFilter</filter-name>
        <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
        <filter-name>mySecondFilter</filter-name>
        <url-pattern>/moudleA/*</url-pattern>
 </filter-mapping>
   ......
2,过滤器类的制作:
   这个很简单,主要是实现Filter的接口就行了. 需要注意的是,在做完你想要做的事情后, 记得 chain.doFilter(arg0,arg1) , 将过滤器向下一个过滤器传递(像接力赛一样) ,当然如果有必要也可以不传递给下一个,比如. 登陆用户角色不符合时.
3,过滤器的执行顺序:
   如果有多个过滤器,它们的执行顺序应该是按照web.xml中<filter-mapping>的定义顺序来的; 当然,前提是<url-pattern>都匹配的时候.
4,接口Filter中的三个主要方法的执行时机:
   init() : 这是一个容器所调用的初始化方法。它保证了在第一次doFilter()调用前由容器调用。您能获取在 web.xml 文件中指定的初始化参数。
 doFilter(): 这是一个完成过滤行为的方法。这同样是上游过滤器调用的方法。引入的 FilterChain对象提供了后续过滤器所要调用的信息。
 destory(): 容器在破坏过滤器实例前,doFilter():中的所有活动都被该实例终止后,调用该方法。

posted on 2007-06-05 17:52 心砚 阅读(198) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(2)

随笔分类

文章分类

文章档案

Forum

搜索

最新评论

阅读排行榜

评论排行榜