1、CharacterEncodingFilter.java
package com.keke.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import com.keke.util.StringUtil; /** * 字符编码过滤器 * 创建人:LiPiaoShui * 时间:2015年9月26日-下午2:18:39 * @version 1.0.0 */ public class CharacterEncodingFilter implements Filter { private FilterConfig config; @Override public void init(FilterConfig config) throws ServletException { this.config = config; } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //获取字符编码配置参数 String encoding = config.getInitParameter("encoding"); //设置字符编码 if(StringUtil.isNotEmpty(encoding)) { request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); } //把请求和响应传给过滤链中的下一个调用者或Servlet chain.doFilter(request, response); } @Override public void destroy() { } }
2、web.xml
<!-- 注册字符编码过滤器 --> <filter> <!-- 过滤器的标识名 --> <filter-name>characterEncodingFilter</filter-name> <!-- 过滤器对应的实现类 --> <filter-class>com.keke.filter.CharacterEncodingFilter</filter-class> <!-- 配置初始化参数 --> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <!-- 过滤器的标识名 --> <filter-name>characterEncodingFilter</filter-name> <!-- 过滤器的URL匹配模式 --> <url-pattern>/*</url-pattern> </filter-mapping>