Servlet3.0用@WebFilter将一个实现了javax.servlet.Filter接口的类定义为过滤器组件。使用@WebFilter注解配置简化了在web.xml中配置过滤器的复杂性。
- @WebFilter(filterName="myfilter",urlPatterns="/images/*")
- public class MyFilter implements Filter {
- ......
也可以指定多种过滤模式
- @WebFilter(filterName="myfilter",urlPatterns={"/imageServlet","/images/*.jpg"}) [javaview plai
* @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器组件
*属性filterName声明过滤器的名称,可选
* 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)
这里再说一下filter配置先后顺序的问题,假设有两个filter,filter1和filter2。filter1是集中处理异常的filter,filter2是处理编码的filter。如果filter2可能会抛出异常,而且抛出的异常需要让filter1来处理,那么配置的时候,是应该把filter1配置在前面,还是把filter2配置在前面呢?通过实验发现,应该把filter1配置在前面。对于这个问题,我们可以这么理解。我们只有先安装了filter1这个处理异常额filter,才能够对后面filter中产生的异常进行处理。
例子:
上图简单的一句:
@WebFilter(filterName="log",urlPatterns={"/*"})
相当于在web.xml中的这些代码
可以看出,基于注解更加直观方便,不用配置复杂的web.xml文件