`

jsp,action乱码问题

 
阅读更多

解决思路:

1,手写过滤器,在web.xml中配置,并且注意filter-mapping的顺序设置在基础过滤器前面

代码如下:

package filter;

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;
/**
 * 乱码过滤器
 * @author Administrator
 *
 */
public class SetCodeFilter  implements Filter{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		// TODO Auto-generated method stub
		arg0.setCharacterEncoding("UTF-8");//将请求编码设为UTF-8
		arg1.setCharacterEncoding("UTF-8");//将请求编码设为UTF-8
		arg2.doFilter(arg0, arg1);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	 

	 
 
 

 

	
}

  web.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<!-- struts基本过滤器 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    	<!--编码过滤器 -->
	<filter>
	<filter-name>encoding</filter-name>
	<filter-class>filter.SetCodeFilter</filter-class>
	</filter>
		<filter-mapping>
	<filter-name>encoding</filter-name>
	<url-pattern>/*</url-pattern>
	</filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

 

2,如果使用的是tomcat服务器的话,有必要在config文件夹下面的servel.xml中配置如下:

 <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

3,在sturts.xml中新增contant标签:

    <constant name="struts.i18n.encoding" value="UTF-8" />

通过上述3个步骤,一般就能解决

 

4,写一下我刚发现的解决方案,适应于struts2.1.6版本

如果你用的是这个版本,<constant name="struts.i18n.encoding" value="UTF-8" />配置这个常量不能解决 问题,因为官网上说这是struts2.1.6的bug,在2.1.7已经解决这BUG,如果我们还想用2.1.6版本,那么修改一下web.xml的默认filter即可。

即:将org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 改成

org.apache.struts2.dispatcher.FilterDispatcher。

分享到:
评论

相关推荐

    jsp eclipse乱码问题

    ### JSP Eclipse 乱码问题解析与解决方案 在开发基于Java的Web应用时,经常会遇到JSP页面在Eclipse环境中出现乱码的情况。这不仅会影响程序的正常运行,还可能导致用户体验下降。本文将针对JSP在Eclipse中的乱码...

    解决jsp提交乱码的问题

    本篇文章将详细介绍如何解决JSP页面提交时出现的乱码问题,包括GET请求和POST请求两种常见的情况。 #### 一、问题背景与分析 1. **GET请求乱码**: - GET请求是通过URL来传递参数的,这些参数通常会以编码的形式...

    JSP中文乱码问题最优解决方法

    ### JSP中文乱码问题最优解决方法 在Web开发中,特别是使用Java Server Pages(JSP)进行网页设计时,中文乱码问题是一个常见的技术挑战。本文将详细探讨如何有效地解决JSP页面中的中文乱码问题,并提供具体的解决...

    jsp页面乱码处理

    本文将根据“jsp页面乱码处理”的标题与描述,深入解析解决JSP乱码问题的策略,并结合具体代码实例,帮助开发者彻底摆脱这一难题。 #### JSP乱码的根本原因 JSP页面的乱码通常源自字符编码不一致,即不同环节使用...

    如何解决JSP页面显示乱码问题

    ### 如何解决JSP页面显示乱码问题 在JSP(Java Server Pages)开发中,中文乱码问题一直是开发者常见的挑战之一。这类问题通常源于不同的编码格式不一致导致的字符集冲突。本文将针对JSP页面显示乱码、表单提交中文...

    JSP中文乱码问题完全解决方案(罗列了在JSP学习中出现的各种乱码问题)

    ### JSP中文乱码问题完全解决方案 #### 一、引言 在JSP开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于JSP页面、请求参数等涉及到多种编码方式,如Unicode、GB2312、GBK以及UTF-8等,如果不进行适当的...

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

    本文将详细介绍如何解决JSP页面中的乱码问题,并给出一个简单而有效的解决方案。 #### 一、理解乱码产生的原因 1. **服务器与客户端编码不一致**:这是最常见的原因之一。当用户通过浏览器发送请求到服务器时,...

    有关JSP页面乱码问题的解决

    ### 有关JSP页面乱码问题的解决 在开发基于Java的应用系统时,尤其是在处理中文字符的情况下,JSP页面中的乱码问题是常见的技术难题之一。本文将深入探讨JSP页面中可能出现的乱码问题及其解决方案,并针对不同场景...

    JSP乱码问题

    JSP乱码问题解决方案 JSP乱码问题是指在JSP页面中遇到的字符编码问题,导致页面显示乱码的现象。下面是解决JSP乱码问题的一些常见方法: 首先,在JSP页面中,我们可以使用String的getBytes()方法将字符串转换为...

    JSP中文乱码常见3个例子及其解决方法.docx

    JSP中文乱码问题主要由字符集不匹配引起。解决方法主要包括在JSP页面、HTTP请求、数据库交互等环节中,确保正确指定和使用支持中文的字符集,如GBK或UTF-8。同时,理解不同环节的字符集设置对整个系统的影响,有助于...

    jsp乱码的3种解决方法

    JSP页面的编码设置是解决乱码问题的基础。在JSP文件的顶部,使用`&lt;%@ page&gt;`指令设置页面编码。例如: ```jsp ;charset=UTF-8" language="java" %&gt; ``` 这里的`contentType`属性定义了页面的MIME类型(这里是`text...

    JSP中解决中文乱码的万能方法

    在JSP开发过程中,中文乱码问题是一个常见的技术难题,尤其在处理客户端与服务器之间的数据交互时更为突出。本文将详细介绍几种有效的解决方案,帮助开发者应对各种场景下的乱码问题。 #### 一、解决服务器响应中文...

    解决jsp+servlet开发中的中文乱码问题

    ### 解决JSP+Servlet开发中的中文乱码问题 #### 概述 在基于JSP(Java Server Pages)和Servlet技术的Java Web应用开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于Java Web应用程序涉及多个组件之间的...

    jspsmartupload中文乱码解决版

    本篇将详细讨论如何解决`jspsmartupload`中的中文乱码问题,并结合`struts1.2`框架提供实例。 首先,理解乱码产生的原因至关重要。乱码通常是由字符编码的不匹配导致的。在HTTP请求中,数据默认是以ISO-8859-1编码...

    jsp传值中文乱码问题解决方法示例介绍.docx

    本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要保持一致。如果服务器和客户端之间使用的字符编码不同,就可能出现乱码。例如,...

    Struts2资源文件在jsp页面中显示乱码解决

    当Struts2应用在JSP页面中尝试加载并显示这些文本时,可能会遇到乱码问题,尤其是在处理中文等非英文字符时更为常见。 乱码问题的根源在于字符编码的不匹配。当资源文件的编码格式与JSP页面或服务器解析时所使用的...

    url传值到Action乱码解决方案

    今天,我们将讨论如何解决URL传值到Action乱码问题,特别是在Struts2框架中。 乱码问题的原因 乱码问题的原因是因为URL传值时,浏览器和服务器之间的编码方式不同所致。在大多数情况下,浏览器使用UTF-8编码,而...

    jspsmartupload.jar 可以处理下载时中文乱码问题

    `jspsmartupload.jar` 是一个专为Java Web开发设计的上传组件,它解决了在处理文件上传时可能出现的中文乱码问题。这个组件是许多Web应用程序中的重要工具,特别是那些需要用户上传包含中文字符的文件名或元数据的...

    Jsp中文乱码解决方案.rar

    在开发Java Web应用程序时,JSP(JavaServer Pages)页面处理中文字符时可能出现乱码问题。这通常是由于编码设置不正确或不一致导致的。本文将深入探讨JSP中文乱码问题的原因,并提供一系列解决方案。 一、原因分析...

Global site tag (gtag.js) - Google Analytics