注解配置Filter

注解配置Filter

Servlet3.0用@WebFilter将一个实现了javax.servlet.Filter接口的类定义为过滤器组件。使用@WebFilter注解配置简化了在web.xml中配置过滤器的复杂性。

[java]  view plain copy
  1. @WebFilter(filterName="myfilter",urlPatterns="/images/*")  
  2. public class MyFilter implements Filter {  
  3.     ......  


也可以指定多种过滤模式

[java]  view plain copy
  1. @WebFilter(filterName="myfilter",urlPatterns={"/imageServlet","/images/*.jpg"})  [javaview plai
* @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器组件
*属性filterName声明过滤器的名称,可选
* 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)

大家都知道,在web.xml中配置filter的时候,可以指定哪一个filter先执行,哪一个filter后执行,这是通过每个filter-mapping在web.xml中出现的先后顺序来确定的。通过注解配置filter时,没有专门的指令来配置filter执行的先后。确定filter执行的先后是根据filter类名的字母表顺序。


这里再说一下filter配置先后顺序的问题,假设有两个filter,filter1和filter2。filter1是集中处理异常的filter,filter2是处理编码的filter。如果filter2可能会抛出异常,而且抛出的异常需要让filter1来处理,那么配置的时候,是应该把filter1配置在前面,还是把filter2配置在前面呢?通过实验发现,应该把filter1配置在前面。对于这个问题,我们可以这么理解。我们只有先安装了filter1这个处理异常额filter,才能够对后面filter中产生的异常进行处理。

 

例子:




上图简单的一句: 

@WebFilter(filterName="log",urlPatterns={"/*"})

相当于在web.xml中的这些代码


可以看出,基于注解更加直观方便,不用配置复杂的web.xml文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值