过滤器Filter
1.filter的简介
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理
2.快速入门
步骤:
1)编写一个过滤器类实现Filter接口
2)实现接口中尚未实现的方法(着重实现doFilter方法)
3)在web.xml中配置(主要是配置要对那些资源进行过滤)
3.filter的执行顺序
看的是filter-mapping的前后顺序 而不是看filter的顺序
4.匹配方式
1)完全匹配
<filter-mapping>
<filter-name>QuickFilter1</filter-name>
<url-pattern>/servlet1</url-pattern>
<filter-mapping>
和上面等价的是
<filter-mapping>
<filter-name>QuickFilter1</filter-name>
<servlet-name>Servlet1</servlet-name>
<filter-mapping>
2)目录匹配
<filter-mapping>
<filter-name>QuickFilter1</filter-name>
<url-pattern>/aaa/*</url-pattern>
<filter-mapping>
3)扩展名匹配
<filter-mapping>
<filter-name>QuickFilter1</filter-name>
<url-pattern>*.jsp</url-pattern>
<filter-mapping>
5.dispatcher:访问的方式
request:默认值,代表直接访问某个资源执行filter
forward:转发时才执行filter
include:包含资源时执行filter
error:发生错误时 进行跳转是执行filter
上面的英文都大写
<filter-mapping>
<filter-name>QuickFilter1</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<filter-mapping>
6.总结Filter的作用
1)公共代码的提取
2)可以对request和response中的方法进行增强(装饰者模式)
增强有3中方式:继承/装饰者模式/动态代理
3)进行权限控制