`
firewings
  • 浏览: 44838 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat 表单乱码解决办法

阅读更多

Filter web.xml 的配置

 

<filter>
   <filter-name>TomcatFormFilter</filter-name>
   <filter-class>filters.TomcatFormFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>TomcatFormFilter</filter-name>
   <url-pattern>*.do</url-pattern>
</filter-mapping>
 

文件源码

 

package filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class TomcatFormFilter implements Filter {
/**
   * Request.java
   * 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所有的 HttpServletRequest
   * 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只需要用新的 Request 对象替换页面中的
   * request 对象即可.
   */
class Request extends HttpServletRequestWrapper
{
     public Request(HttpServletRequest request) {
     super(request);
     }
   /**
   * 转换由表单读取的数据的内码.
   * 从 ISO 字符转到 UTF-8 或 GBK.
   */
   public String toChi(String input) {
      try {
        byte[] bytes = input.getBytes("ISO8859-1");
        return new String(bytes, "UTF-8");
      }
      catch (Exception ex) {
      }
      return null;
   }
     /**
      * Return the HttpServletRequest holded by this object.
      */
     private HttpServletRequest getHttpServletRequest()
     {
         return (HttpServletRequest)super.getRequest();
     }
   /**
   * 读取参数 -- 修正了中文问题.
   */
     public String getParameter(String name)
     {
     return toChi(getHttpServletRequest().getParameter(name));
     }
   /**
   * 读取参数列表 - 修正了中文问题.
   */
     public String[] getParameterValues(String name)
     {
        String values[] = getHttpServletRequest().getParameterValues(name);
        if (values != null) {
          for (int i = 0; i < values.length; i++) {
            values[i] = toChi(values[i]);
          }
        }
        return values;
     }
}
public void destroy() {
  
}
public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
   HttpServletRequest httpreq = (HttpServletRequest)request;
   if(httpreq.getMethod().equals("POST")) {
    request.setCharacterEncoding("GBK");
   } else {
    request = new Request(httpreq);
   }
   chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
}
}
 

 

分享到:
评论

相关推荐

    tomcat过滤器,处理表单提交出现乱码

    处理表单提交页面出现乱码现象,第三方开发。

    如何解决Tomcat下中文乱码问题?

    现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱码两类。 1)JSP页面中显示中文乱码 在JSP文件中使用page命令指定响应结果的MIME类型,如;charset=gb2312" %&gt;

    java表单提交中文乱码的解决方法

    主要介绍了java表单提交中文乱码的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    彻底解决fckeditor(jsp版)上传中文图片乱码问题

    告诉FileUpload组件处理时的编码为项目编码,在FileItem中,用getString(encoding),这项设置可以解决获取的表单字段为乱码的问题,所以在每个FileItem实例后面都执行一次getString(encoding),就告诉FileItem在取值...

    解决中文乱码的几种解决方法(推荐)

    2. 后台中,我使用的是commons-fileUpload组件,ServletFileUpload 解析form表单和文件, 3. 设置 request.setCharacterEncoding(“UTF-8”); 4. 设置了ServletFileUpload .setHeaderEncoding(“UTF-8”); 5.Tomcat ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    全书一共被压缩为5个rar,这是第五个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    全书一共被压缩为5个rar,这是第三个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    java web 视频、电子书、源码(李兴华老师出版)

    6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1...

    hibernate+struts实现jsp增删改以及分页功能

    hibernate+struts实现jsp增删改以及分页功能! hibernate做数据操作,struts处理表单。 实现了分布功能。附数据库!...(注:如果出现乱码,大家配置一下tomcat的编码方式与数据库的编码方式就行了!)

    J2EE实验指导书*******

    实验十三 过滤器解决中文乱码及登录验证 32 一、实验目的 32 二、实验环境 32 三、实验步骤 32 1、创建web过滤器实现form表单post提交的中文乱码 32 2、配置中文乱码过滤器 32 3、创建登录验证的过滤器并配置 32 四...

    简单的JSP+JAVABEAN+ACCESS留言簿

    定义了一些常用的方法,比如中文字体处理(解决乱码问题),数据库数据转换为HTML格式显示的方法等。 7. javascript脚本 用来检查表单数据是否为空。 //用于管理员登陆的验证 function check() {  var adminName=...

    JSP网站开发典型模块与实例精讲

     2.2.6 指点迷津——如何处理中文乱码问题  2.2.7 使用JavaMail发送注册验证邮件  2.2.8 独家见解——在前台还是后台验证  2.2.8 数据有效性  2.3 实现用户登录  2.3.1 创建登录输入表单  2.3.2 验证...

    fckeditor for jsp 的jar包

    告诉FileUpload组件处理时的编码为项目编码,在FileItem中,用getString(encoding),这项设置可以解决获取的表单字段为乱码的问题,所以在每个FileItem实例后面都执行一次getString(encoding),就告诉FileItem在取值...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得...

Global site tag (gtag.js) - Google Analytics