servlet邊濾器
1 編寫實(shí)現(xiàn)javax.servlet.Filter接口的類
public class MyFilter implements Filter {
private FilterConfig config;
private String encoding="IS0-8859-1";
public void destroy() {//過濾器當(dāng)前類被消滅時(shí)調(diào)用的方法
}
public void doFilter(ServletRequest request, ServletResponse response,//過濾器主方法
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);//設(shè)置其可被下個(gè)過濾器繼續(xù)調(diào)用
}
public void init(FilterConfig config) throws ServletException {//過濾器當(dāng)前類初始化時(shí)調(diào)用此方法
this.config=config;
String s=config.getInitParameter("encoding");//得到相應(yīng)參數(shù)
if(s!=null){
encoding=s;
}
}
}
FilterConfig類用于獲得初始化的參數(shù)的包裝類
FilterChain類是過濾器的鏈,可以多重過濾
2 配置Servlet過濾器
<filter>
<filter-name>EncodingFilter</filter-name>過濾器名稱
<filter-class>com.webs.MyFilter</filter-class>對應(yīng)類
<init-param>參數(shù)
<param-name>encoding</param-name>參數(shù)名
<param-value>UTF-8</param-value>參數(shù)值
</init-param>
</filter>
<filter-mapping>映射特定資源
<filter-name>EncodingFilter</filter-name>過濾器名稱
<url-pattern>/*</url-pattern>
</filter-mapping>
3 頁面
4 注意:服務(wù)器端跳轉(zhuǎn)是不過濾的