过滤器
* filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行
* 可以对目标资源访问前后进行逻辑处理
步骤
* 编写一个过滤器的类实现Filter接口
* 实现接口中尚未实现的方法(着重实现doFilter方法)
* 在web.xml中进行配置(主要是配置要对哪些资源进行过滤)
Filter对象的生命周期
* Filter何时创建:服务器启动时就创建该filter对象
* Filter何时销毁:服务器关闭时filter销毁
Filter接口的方法
* init(Filterconfig)
* 代表filter对象初始化方法
* filter对象创建时执行
* doFilter(ServletRequest,ServletResponse,FilterChain)
* 代表filter执行过滤的核心方法
* 如果某资源被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法
* destory()
* 代表是filter销毁方法当filter对象销毁时执行该方法
web.xml中进行配置
<filter>
<filter-name>myfilter</filter-name>
<filter-class>cn.com.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
url-pattern说明
* 完全匹配
* /myServlet
* 目录匹配(常用)
* /aaa/bbb/*
* 扩展名匹配
* *.java
dispatcher说明
* REQUEST:默认值,代表直接访问某个资源时执行filter
* FORWARD:转发时才执行filter
* INCLUDE:包含资源时执行filter
* ERROR:发生错误时进行跳转时执行filter
filter的使用场景
* 提取公共代码
* 可以对request和response中的方法进行增强(装饰者模式/动态代理)
* 进行权限控制