中文编码过滤器: 界面输出中文及中文请求参数(post方式有效)编码过滤器
-------------------------------------------------------------------------------------------------------
public class CharacterSetFilter implements Filter {
FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// filterConfig用来获取过滤器配置中的参数
String encodingValue = filterConfig.getInitParameter("encoding");
// 若没有配置该参数,给定默认值UTF-8
if(encodingValue==null)
encodingValue="UTF-8";
request.setCharacterEncoding(encodingValue); // 注: 该方法只对post请求方式起作用
response.setCharacterEncoding(encodingValue);
response.setContentType("text/html;charset="+encodingValue);
chain.doFilter(request, response);
}
public void destroy() { }
}
-------------------------------------------------------------------------------------------------------
配置如下
<filter>
<filter-name>CharacterSetFilter</filter-name>
<filter-class>cn.itcast.filter.example.CharacterSetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterSetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</filter>
-------------------------------------------------------------------------------------------------------