正文

字符集问题的过滤器解决办法2006-08-05 11:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ggbm/17272.html

分享到:

         最近还是有很多的人问我一些字符集的问题,今天我就写个最简单的例子来实现字符集的转化,我们用到了filter。

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>
 *
 * @author 李国庆
 * @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>

这样处理的话基本上就可以解决问题了。

阅读(3743) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册