`
Edward_Lee
  • 浏览: 46021 次
社区版块
存档分类
最新评论

使用struts时遇到中文乱码问题

阅读更多
最近在学习Struts开发时遇到了中文乱码问题,现在终于解决了,呼。。。花了好三天才搞定,真没效率。。。

用Struts做了一个增加数据功能,查看数据库后发现有中文乱码

首先我以为是数据库的编码格式问题,于是修改了表的编码格式(原来是GBK),改为utf8,经过测试发现还是有中文乱码问题,后来做了一个测试表进行测试,不通过Struts进行数据库的操作,没有中文乱码的问题,所以由此判断不是数据库的编码格式,而问题锁定在程序中

Web开发时,我将jsp文件的编码格式都设置为utf-8(在Eclipse工具栏的window->preferences下可以进行编码设置),所以也不是jsp的问题

接下来就是查看页面填写数据后,数据的传递流程(其实也就是struts的操作过程,不过这里不是详细的过程了),页面post数据到相关url后,首先是找到ActionServlet,再找到对应的FormBean进行赋值操作,最后在相关Action进行Excute
我修改了连接数据库的URL,在URL后面加入了"?useUnicode=true&characterEncoding=utf8"
在这之前又在Tomcat配置文件server.xml中的Connector元素加入URIEncoding="UTF-8"
在dao中进行数据insert之前先将数据打印了一下,发现打印出了乱码,于是也判断是数据操作前就有了中文乱码问题;接下来在FormBean的setter方法中写了println(),再次打印数据,发现有中文乱码,于是终于明白是在页面传入到FormBean之前就产生乱码

终于找到了解决的方法,就是创建一个继承HttpServlet并且实现Filter接口的类,实现Filter接口的doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)方法,在web.xml文件中配进行配置
中文乱码问题就解决了

最后我删除了之前在读取数据库操作的URL后的"?useUnicode=true&characterEncoding=utf8"这段代码,也没有中文乱码问题,所以加这段也没什么用

代码如下:
package struts.utils;

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.HttpServlet;

public class EncodingFilter extends HttpServlet implements Filter {

	private static final long serialVersionUID = 8303042696511641966L;
	
	@SuppressWarnings("unused")
	private FilterConfig filterConfig;

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterChain) throws IOException, ServletException {
		request.setCharacterEncoding("utf-8");     
        filterChain.doFilter(request, response);    
	}

	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}

}


web.xml的配置如下
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>struts.utils.EncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

分享到:
评论

相关推荐

    struts中文乱码问题解决详细步骤

    然而,在处理中文字符时,可能会遇到乱码问题,这主要体现在请求参数、响应内容或者静态资源显示上。解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置...

    Struts2.0解决中文乱码

    在IT领域,特别是Web开发中,处理中文等非英文字符集时经常遇到的一个问题是字符编码导致的乱码问题。在Struts2.0框架中,这一问题尤为突出,因为不当的编码设置会直接导致用户界面显示错误或者数据处理时出现乱码。...

    奇怪的struts2的中文乱码问题及解决.docx

    然而,开发过程中经常遇到的一个问题就是字符编码问题,尤其是中文乱码问题。本文将深入探讨一个关于Struts2在Internet Explorer(IE)浏览器中出现中文乱码的奇怪问题及其解决方案。 首先,中文乱码问题通常涉及到...

    struts1.2 解决中文乱码

    在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会对数据的准确性和完整性造成威胁。 **问题表现:** - 在页面显示中文时出现...

    struts 中文乱码问题解决

    在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...

    eclipse struts 中文乱码问题图解

    在开发Java Web应用程序时,Eclipse和Struts框架的组合可能会遇到中文乱码的问题,这主要涉及三个方面:页面乱码、参数乱码以及国际化乱码。以下是对这些乱码问题的详细解答: 1. 页面乱码: 当网页编码设置为非...

    struts 2. 5.2解决中文乱码

    在处理中文字符时,可能会遇到乱码问题,这通常与字符编码设置不当有关。解决这个问题需要深入理解HTTP协议、Java I/O流以及Struts 2框架的配置。 首先,我们需要了解乱码产生的原因。在Web应用中,数据在网络传输...

    struts2中文乱码问题

    在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的问题。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍几种解决Struts2中文乱码问题的方法。 #### 方法一:设置JSP页面编码 首先,...

    struts之中文乱码问题

    在处理中文字符时,Struts可能会遇到乱码问题,这主要是由于字符编码不一致或未正确配置导致的。下面我们将深入探讨这个问题,并提供解决策略。 **乱码产生的原因** 1. **请求编码不一致**:当用户通过表单提交...

    Struts框架下Ajax发送中文乱码问题的解决

    通过以上步骤,我们应该能够有效地避免在Struts框架下使用Ajax时出现的中文乱码问题。当然,实际情况可能更为复杂,例如涉及Tomcat服务器或其他中间件的配置,都需要一一排查并适配。对于开发和调试过程中遇到的具体...

    Struts中文乱码解决方案

    当在 Action 类中遇到中文乱码问题时,可以使用以下代码进行转换。创建一个静态工具类,如 `Chinese`,并定义一个 `convert` 方法来将乱码的字符串转换为正确的中文字符串: ```java final public class Chinese { ...

    struts处理中文乱码问题总结

    在使用Struts框架进行Web应用程序开发过程中,中文乱码问题是开发者经常会遇到的技术难题之一。这类问题虽然看似不起眼,但如果处理不当,则可能会影响到用户体验甚至导致数据丢失。本文旨在通过对网络资料与实践...

    Struts的乱码问题

    在Web开发过程中,尤其是使用Java Web框架如Struts进行项目开发时,经常遇到的一个问题是中文字符的乱码问题。这个问题主要体现在中文字符在Web页面上的显示不正确,或是通过表单提交的数据在服务器端无法正确识别...

    struts2中文乱码

    在Struts2应用中,当处理包含中文字符的数据时,可能会遇到乱码的问题。这种现象通常表现为中文字符被替换为不可识别的符号或者乱码。这主要是因为字符集设置不正确导致的。解决这个问题的关键在于确保在整个数据...

    Struts2乱码终极解决办法

    在开发基于Struts2框架的应用时,经常遇到的一个问题就是中文乱码。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何彻底解决Struts2中的乱码问题,并提供实际可行的解决方案。 #### 二、乱码产生...

    Struts上传,已经处理好乱码问题

    然而,文件上传过程中可能会遇到编码问题,导致中文等非ASCII字符出现乱码。本篇文章将详细探讨如何在Struts中处理文件上传并解决乱码问题。 首先,我们需要了解Struts文件上传的基本原理。在Struts中,文件上传是...

    中文乱码问题

    中文乱码问题是 web 开发中经常遇到的问题,特别是在使用 JSP、Servlet、Struts 2 等技术时。乱码问题的出现主要是由于字符编码不一致所致。以下是解决中文乱码问题的知识点: JSP 文件的中文乱码问题 在 JSP 文件...

    Struts2下载文件中文乱码处理

    在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够正确地看到文件名中的中文字符,需要...

    struts2配置文件传值中文乱码

    在IT领域,特别是Web开发中,遇到中文乱码问题是相当常见的,尤其是在使用Struts2框架进行项目开发时。本文将围绕“Struts2配置文件传值中文乱码”这一主题,深入探讨其成因、解决方案以及相关的配置细节,旨在帮助...

Global site tag (gtag.js) - Google Analytics