`
firewings
  • 浏览: 45851 次
  • 性别: 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与servlet乱码解决办法

    ### Tomcat与Servlet乱码问题解析及解决方案 #### 一、引言 在Web开发过程中,经常遇到的一个问题就是字符编码的问题,特别是在处理中文字符时,如果编码设置不当,很容易出现乱码的情况。本文主要围绕Tomcat服务器...

    解决tomcat中文乱码问题.doc

    ### 解决Tomcat中文乱码问题 在使用Tomcat服务器部署Web应用时,经常会遇到中文乱码的问题。本文将详细探讨几种常见的乱码场景及其解决方案。 #### 一、JSP页面上的中文显示为乱码 **问题描述**:在JSP页面中直接...

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

    通过以上步骤,我们应该能有效地解决表单提交时的乱码问题。记住,处理乱码的关键在于正确地设定和保持一致的字符编码,从客户端到服务器,再到数据库的每一个环节都要注意。如果问题依然存在,可能需要进一步排查...

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

    总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...

    Tomcat和weblogic中文乱码问题解决方案

    Tomcat和WebLogic中文乱码问题解决方案 在 Java Web 开发中,中文乱码问题一直是困扰开发者的主要问题之一。 Tomcat 和 WebLogic 是两个常用的 web 服务器,都是支持 Servlet 和 JSP 的。然而,在使用这些服务器时...

    TOMCAT乱码问题

    造成乱码的原因是tomcat对表单提交和GET请求的处理方式不同。Tomcat4和Tomcat5处理乱码的方法不同,在Tomcat5中,需要使用Filter设置字符集为GBK来解决乱码问题。 解决方法一:使用Filter设置字符集 1. 实现一个...

    关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论

    标题中的“关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论”涉及了两个关键的IT概念:Tomcat服务器的字符编码问题和Java虚拟机(JVM)内存管理的问题。让我们逐一深入探讨这两个主题。 首先,我们来...

    SpringMVC Tomcat控制台乱码问题解决方案

    解决方案主要分为两部分,一部分是解决Tomcat控制台乱码问题,另一部分是解决SpringMVC提交表单时网页出现乱码情况。 (1)解决Tomcat控制台乱码问题 要解决Tomcat控制台乱码问题,需要修改Tomcat的logging....

    彻底解决 Tomcat 5 下文字乱码问题 - JSP日志 - ※一路风尘※

    本文将深入探讨如何解决Tomcat 5中的文字乱码问题,尤其是针对JSP日志的处理。 首先,我们要理解乱码问题的根源。乱码通常发生在数据的编码、传输和解码过程中,当不同的环节使用不一致的字符集时,就可能出现乱码...

    页面乱码解决4种方案

    **解决方案**:为了避免这种乱码问题,可以在处理表单数据之前,先设置请求的字符编码方式。具体做法是在处理表单数据的JSP页面中加入以下代码: ```jsp request.setCharacterEncoding("gb2312"); %&gt; ``` 完整的...

    jsp页面乱码最简单的解决办法

    ### jsp页面乱码最简单的解决办法 在Web开发中,尤其是使用Java Server Pages (JSP)进行网页制作时,经常遇到的一个问题是字符编码问题,即所谓的“乱码”。这不仅影响用户体验,还可能导致数据处理错误。本文将...

    tomcat5中文问题完美解决

    **解决办法:** **方法一:实现过滤器(FILTER)设置GBK编码** 1. 参考Tomcat的Servlet-Examples目录下的示例,将 `%TOMCAT安装目录%/WEBAPPS/SERVLET-EXAMPLES/WEB-INF/CLASSES/FILTERS/...

    tomcat request.getParameter 乱码

    ### Tomcat中request.getParameter出现乱码的问题解析及解决方法 #### 一、问题背景与现象描述 在Java Web开发过程中,经常会遇到通过`HttpServletRequest`对象的`getParameter`方法获取前端表单提交的数据时出现...

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

    总结来说,解决Java表单提交中文乱码问题,关键在于确保从客户端到服务器端的整个数据传输过程中,字符编码的一致性。通过设置页面编码、请求编码,以及利用过滤器等手段,可以有效地防止和解决乱码问题。在实际开发...

    JSP页面中文乱码几个解决办法

    以下是一些常见的解决办法: 1. **JSP页面显示乱码**: 当JSP页面在浏览器中显示乱码时,首先需要确保JSP文件在本地存储时使用的编码是GBK。在JSP页面顶部添加`&lt;%@ pageEncoding="GBK" %&gt;`指令,指定页面的编码...

    jsp乱码解决方案 本方案解决了jsp常见的乱码问题

    1. **客户端编码与服务器端编码不一致**:当用户提交表单或发送请求时,如果客户端浏览器使用的编码方式与服务器端接收并处理请求时所采用的编码方式不一致,就可能产生乱码。 2. **数据库与应用程序编码不一致**:...

    工作流乱码解决方案

    "工作流乱码解决方案"这个主题就针对Activiti5在处理中文或其他非ASCII字符时可能出现的显示异常进行探讨。 Activiti5是一个开源的工作流和业务流程管理平台,它基于Java,支持BPMN 2.0标准,为企业提供了一套强大...

    JSP乱码 N种解决方案

    本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...

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

    在使用Apache Tomcat服务器运行Java Web应用程序时,有时会遇到中文乱码的问题,这通常发生在JSP页面显示和表单提交这两个场景。以下是如何解决这些问题的详细步骤和知识点: 1. **JSP页面显示中文乱码** 当JSP...

Global site tag (gtag.js) - Google Analytics