`

Filter造成的乱码

阅读更多

 

 

现象是:更新操作完成后,本应该是中文的字段都莫名其妙变成了乱码。

比较了两个版本的代码,经过排除后,发现问题出在一个filter中,下面是出问题的代码:

 

public class MyFilter extends StrutsPrepareAndExecuteFilter {

  public void doFilter (ServletRequest servletRequest......) {

    HttpServletRequest request  =(HttpServletRequest)servletrequest;

    // 就是这一行,如果没有这一行,就不会出现乱码的现象
    (String) name = request.getParameter("person.name");

    ...
    ...

    super.doFilter(.....);

  }
}





}

 

解决办法:

web.xml 增加编码过滤器
<filter>
  <filter-name>encoding</filter-name>
  <filter-class>
   com.skysz.framework.filter.encoding.EncodingFilter
  </filter-class>
 </filter>

EnCodingFilter 实现类
public class EncodingFilter implements Filter {
 private String encoding;
 public void init(FilterConfig config) throws ServletException {
  this.encoding = config.getInitParameter("encoding");
  if (StringUtils.isNullOrBlank(this.encoding)) {
   this.encoding = "UTF-8";
  }

}
 public void doFilter(ServletRequest srequest, ServletResponse sresponse,   FilterChain chain) throws IOException, ServletException {
  HttpServletRequest request = (HttpServletRequest) srequest;
  request.setCharacterEncoding(encoding);
  chain.doFilter(srequest, sresponse);
 }

public void destroy() {
 }
}


办法来自百度:

http://zhidao.baidu.com/link?url=M7FHDNuEy8gPo4Q-z3GLFcVpUr2VA7rJnhhfntqXnqKWGIsFSm18MghIr-XfXHgxCR6OYnRzJ1khUIj-harkO_

分享到:
评论

相关推荐

    使用过滤器解决中文乱码问题

    乱码问题通常是由于客户端发送请求时的字符编码与服务器端处理请求时使用的字符编码不一致造成的。例如,客户端以UTF-8编码发送数据,而服务器端则以GBK编码处理,这就会导致乱码问题。 #### 二、配置Tomcat解决...

    TOMCAT乱码问题

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

    javaweb乱码问题分析与解决.md

    ### JavaWeb乱码问题分析与解决 #### 一、引言 在JavaWeb开发中,乱码问题是开发者经常遇到的问题之一。它不仅会影响用户体验,还会对数据的正确性造成潜在威胁。本文将针对请求乱码及响应乱码两种情况进行深入剖析...

    有关乱码WEB乱码

    乱码现象不仅影响用户体验,也可能会造成数据处理上的错误。本文将深入探讨Web乱码的成因及解决方案,特别是针对Struts2框架下乱码问题的处理。 #### Struts2框架下的乱码问题 在Struts2框架中,乱码问题主要出现...

    web项目乱码问题 jsp乱码问题解决

    这里,JSP文件声明的pageEncoding是UTF-8,而contentType设置的charset却是iso8859-1,这就造成了冲突,导致中文字符无法正确显示。 解决JSP页面显示中文乱码的问题,关键在于确保所有环节使用相同的字符编码。可以...

    Struts2乱码终极解决办法

    在Struts2框架中,中文乱码主要由以下几个方面的原因造成: 1. **请求编码问题**:客户端发送请求时未指定正确的字符集。 2. **响应编码问题**:服务器端处理请求并返回结果时,字符集设置不正确。 3. **配置文件...

    javaweb项目中乱码的处理

    通常情况下,乱码是由于客户端提交的数据与服务端接收数据的编码格式不一致造成的。例如,客户端是以UTF-8编码提交数据,而服务端却是以GBK编码进行解码处理,这就导致了乱码现象的发生。 #### 二、乱码解决方案...

    struts1.2 解决中文乱码

    这不仅影响用户体验,还会对数据的准确性和完整性造成威胁。 **问题表现:** - 在页面显示中文时出现乱码。 - 提交表单或接收请求参数时中文字符不能正确识别。 **原因分析:** 1. **编码设置不一致:** - 不同的...

    jsp乱码解决方法.txt

    JSP页面乱码问题主要由以下几个方面的原因造成: 1. **文件本身的编码格式与页面声明的编码格式不一致**:例如,JSP文件本身的编码为UTF-8,但页面声明的编码为GB2312。 2. **客户端提交数据的编码格式与服务器端...

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

    首先,乱码问题通常是由于请求数据在传输过程中没有正确地被编码或解码造成的。在HTTP协议中,表单数据默认使用ISO-8859-1编码,而我们可能期望的是UTF-8或者其他支持多语言的编码方式。为了解决这个问题,我们可以...

    java下载时文件名乱码

    在Java编程中,遇到“java下载时文件名乱码”的问题通常是由于编码不一致或处理不当造成的。在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供...

    关于乱码问题简单分析

    3. **数据库连接编码配置**:如果从数据库读取的数据与应用处理的数据编码不匹配,同样会造成乱码现象。 4. **Tomcat服务器配置**:Tomcat默认采用ISO-8859-1编码处理HTTP请求参数,如果不做调整,在特定情况下会...

    java乱码的解决方案

    在给出具体的解决方案之前,我们首先需要了解造成Java乱码的原因。通常来说,乱码问题主要是因为字符编码设置不一致导致的,具体包括以下几个方面: 1. **服务器端与客户端编码不一致**:例如客户端发送的数据是UTF...

    用过滤器解决oracle中文乱码问题

    这种情况不仅会影响用户体验,还会对数据的正确性造成严重影响。本文将详细介绍如何通过设置一个自定义的过滤器来一劳永逸地解决这一问题。 #### 问题背景 在使用JSP页面从Oracle数据库读取中文数据时,由于编码不...

    web项目部署到服务器后中文乱码的解决.docx

    这是因为项目中的字符编码、Tomcat的字符编码、MyEclipse的字符编码以及建立数据库时的编码不一致造成的。解决办法就是逐一设置字符编码。 设置MyEclipse项目编码 在MyEclipse中点击Windows,Preference,点击左侧...

    中文乱码解决方案.pdf

    当Tomcat的URIEncoding为非UTF-8(如ISO-8859-1)时,如果URL中的中文参数被浏览器以UTF-8编码,Servlet容器将以ISO-8859-1解码,造成乱码。可以通过Java代码手动转换,如`new String(变量值.getBytes("UTF-8"),...

    知识共享-jsp乱码处理精解(雷惊风).

    在JSP页面中,如果直接输出中文字符,可能会遇到乱码问题,这主要是由于服务器和浏览器之间的编码不一致造成的。 **解决办法:** - 在JSP页面的顶部指定编码方式,例如使用GBK或UTF-8。这可以通过在页面的第一行...

    Ajax过滤器

    这通常是由于编码格式不一致造成的。在服务器端,我们通常使用UTF-8作为编码格式,但在客户端(浏览器),如果不正确设置,可能会使用其他编码,如GBK。当这些不同编码的数据在Ajax请求中交互时,如果没有进行正确的...

Global site tag (gtag.js) - Google Analytics