Filter支持注解式开发,通过@WebFilter注解替代web.xml中Filter的配置。
属性名 类型 作用
filterName String 指定过滤器的 name 属性
urlPatterns String[] 拦截请求的URL,支持多个
value String[] 拦截请求的URL,支持多个
description String 过滤器的描述
displayName String 过滤器的显示名称
initParams WebInitParam[] 指定一组过滤器初始化参数,等价于 标签。
使用注解式开发Filter时,执行顺序会根据Filter的名称进行排序(字典顺序)的结果决定调用的顺序。
**Web.xml中的filter执行顺序高于注解fiter
Filter的生命周期**
Filter的生命周期是由容器管理的。当容器启动时会实例化Filter并调用init方法完成初始化动作。当客户端浏览器发送请求时,容器会启动一个新的线程来处理请求,如果请求的URL能够被过滤器所匹配,那么则先调用过滤器中 的doFilter方法,再根据是否有chain.doFilter的指令,决定是否继续请求目标资源。当容器关闭时会销毁Filter对象,在销毁之前会调用destroy方法。