最近在做一个DRP 的项目,其中要给所有的request对象进行字符集设置,要是单个设置工作量太大,所以采用Filter(过滤器)进行统一设置。
Filter实现了面向切面(AOP)的编程思想,可以通过简单的修改配置文件给系统统一添加或去除一项功能。
下面是我对的Filter的简单总结:
Filter的功能
- filter实现了职责连模式
- filter对request和response进行处理
- filter 只对POST请求起作用
在配置文件中的配置
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>
Url-pattern的四种模式
1.精确匹配,一个唯一确定的路径
2.扩展匹配,由“*”和扩展名组成
3.路径前缀匹配,包含一个路径和一个/*
4.全部匹配,使用/*
如果不执行filterChain.doFilter(),那么请求将会终止
初始化参数
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
可在init方法中获取参数
public voidinit(FilterConfig filterConfig) throws ServletException {
//获取初始化参数
this.encoding=filterConfig.getInitParameter("encoding");
}
刚刚接触Filter,一点小总结。