字符集问题的过滤器解决办法

EncodingFilter.java

package com.util;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;

/**
 * <p>Title: 字符编码集过滤</p>
 *
 * <p>Description:字符编码集过滤 </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: LEEMENZ</p>
 *
 * @version 1.0
 */
public abstract class EncodingFilter implements Filter{

   //构造
  public EncodingFilter()
  {
    config = null;
    targetEncoding = "ASCII";
  }
    /**
     *初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
     */
  public void init(FilterConfig config)
          throws ServletException
  {
    this.config = config;
    targetEncoding = config.getInitParameter("encoding");
  }
  //销毁过滤器
  public void destroy()
  {
    config = null;
    targetEncoding = null;
  }

    /**
      *进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
      */
  public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)
          throws IOException, ServletException
  {
    HttpServletRequest request = (HttpServletRequest) srequest;
    request.setCharacterEncoding(targetEncoding);
    sresponse.setContentType("text/html;charset=UTF-8");//这里就是你要设置的字符集要改变就改这里。
    chain.doFilter(srequest, sresponse);  ///派发请求
  }

  private FilterConfig config;
  private String targetEncoding;
}


下面添加到web.xml中:

     <filter>
     <filter-name>EncodingFilter</filter-name> 
     <filter-class>com.util.EncodingFilter</filter-class>     
    </filter>
     
    <filter-mapping> 
       <filter-name>filter</filter-name> 
       <url-pattern>/*</url-pattern>  //这里是过滤本域下的所有页面
     </filter-mapping>

这样处理的话基本上就可以解决问题了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值