创建Filter步骤:
创建Filter处理类
必须实现javax.servlet.Filter,该接口有init()完成filter初始化,destroy()完成资源回收,doFilter()过滤
web.xml文件中配置Filter
通过Annotation进行配置
@WebFilter修饰Filter支持如下属性:
asyncSupported:是否支持异步操作模式
dispatcherTypes:仅对dispatcher模式的请求进行过滤,支持ASYNC、ERROR、FORWARD、INCLUDE、REQUEST任意组合,默认为过滤所有
displayName:指定Filter显示名
filterName:指定该Filter的名称
initParams:为该Filter配置参数
servletNames:指定对这几个servlet进行过滤
urlPatterns/value:这两个属性的作用完全相同,都指定该Filter所拦截的URL
通过web.xml
<filter> <!-- Filter的名字,相当于指定@WebFilter的filterName属性 --> <filter-name>log</filter-name> <!-- Filter的实现类 --> <filter-class>lee.LogFilter</filter-class> </filter> <!-- 定义Filter拦截的URL地址 --> <filter-mapping> <!-- Filter的名字 --> <filter-name>log</filter-name> <!-- Filter负责拦截的URL,相当于指定@WebFilter的urlPatterns属性 --> <url-pattern>/*</url-pattern> </filter-mapping>