正文

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

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

分享到:

         最近还是有很多的人问我一些字符集的问题,今天我就写个最简单的例子来实现字符集的转化,我们用到了filter。 EncodingFilter.javapackage 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> 这样处理的话基本上就可以解决问题了。

阅读(3773) | 评论(3)


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

评论

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