`
ttitfly
  • 浏览: 616757 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多
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>

这样处理的话基本上就可以解决问题了。
分享到:
评论

相关推荐

    《你必须知道的495个C语言问题》

    这样看来,所有的问题都解决了,是吗? 2  1.4 新的64位机上的64位类型是什么样的? 3 指针声明 3 1.5 这样的声明有什么问题?char *p1, p2; 我在使用p2的时候报错了。 3 1.6 我想声明一个指针,并为它分配...

    你必须知道的495个C语言问题

    这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型是什么样的? 指针声明 1.5 这样的声明有什么问题?char*p1,p2;我在使用p2的时候报错了。 1.6 我想声明一个指针,并为它分配一些空间,但却...

    LINGO软件的学习

    注意如果派生集B的父集是另外的派生集A,那么上面所说的原始父集是集A向前回溯到最终的原始集,其顺序保持不变,并且派生集A的过滤器对派生集B仍然有效。因此,派生集的索引个数是最终原始父集的个数,索引的取值是...

    补丁模块(带源码)InlinePatch,Hook,内存DLL注入等等

    声明:大家使用过程中发现任何问题都不要来问我,请自己想办法解决。我现在已经完全放弃易语言了,改用VC++了。 以下是全部接口: 模块名称:sunflover.ec 作者:by sunflover 版本:2015.2 自己收集的一些常用函数...

    Reversing:逆向工程揭密

    7.2.3 字符串过滤程序 256 7.2.4 整数溢出 256 7.2.5 类型转换错误 260 7.3 案例研究:IIS索引服务漏洞 262 7.3.1 CVariableSet:: 7.3.1 AddExtensionControlBlock 263 7.3.2 DecodeURLEscapes 267 7.4 结论 271 第8...

    21春《计算机应用基础》在线作业3.docx

    ( ) A:以太网交换机 B:集线器 C:路由器 D:调制解调器 答案:C 在Word中,如果要打开"任务窗格",则应执行的菜单命令是( )。 A:"文件" B:"编辑" 21春《计算机应用基础》在线作业3全文共19页,当前为第1页。C:"视图" 21...

    C#编程经验技巧宝典

    76 &lt;br&gt;0111 计算字符串中子字符串出现的次数 76 &lt;br&gt;0112 获得字符串中大写字母的个数 77 &lt;br&gt;0113 获得某字符在字符串中最后出现的位置 78 &lt;br&gt;0114 如何找出字符串中某一字符的所有位置 78...

    计算机网络技术19春在线作业2-0001.docx

    A:总线形结构 B:环形结构 C:点一点全连接结构 D:采用集线器连接的星形结构 答案:A,B,D 配置管理系统应包括以下功能() A:视图管理 B:拓扑管理 C:软件管理 D:性能管理 答案:A,B,C 关于机算机网络,以下说法哪个...

    C#开发经验技巧宝典

    0966 SQL Server 2000无法安装的解决办法 565 20.3 其他 565 0967 如何判断记录是否为NULL 565 0968 建立Oracle数据库连接 566 0969 如何在数据表中设置主键 566 0970 DataSet读取XML文件中数据作为数据...

Global site tag (gtag.js) - Google Analytics