您的位置:首页 > 其它

解决页面中文的乱码问题,使用过滤器为所有页面配置编码格式,解决大部分的中文乱码问题

2017-08-13 00:18 851 查看
配置拦截器:
 <!-- 为所有页面配置编码格式的过滤器 ,这里设置的编码格式需要与所有jsp页面的编码格式一致-->
  <filter>
   <filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>(包路径).SetCharacterEncodingFilter</filter-class>
   <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
   </init-param>  </filter>
  <filter-mapping>
   <filter-name>setCharacterEncodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
 
拦截器指向类:
/**
 * Servlet乱码过滤器
 * 只能过滤post请求的乱码问题.
 */
public class SetCharacterEncodingFilter implements Filter{
private String encoding = null;//编码集
private FilterConfig filterConfig = null;//配置信息
/**
 * 初始化参数
 */
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
//访问部署的描述文件(web.xml)中配置的过滤器初始化参数
this.encoding = filterConfig.getInitParameter("encoding");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//将请求转换为HttpServletRequest的请求
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
//System.out.println("serlvet编码过滤器");
if(encoding != null){
req.setCharacterEncoding(encoding);
resp.setCharacterEncoding(encoding);
}
//释放拦截器
chain.doFilter(req, resp);
}
/**
 * 销毁
 */
@Override
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐