最近在做一個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,一點小總結。