解决思路:
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 乱码问题解析与解决方案 在开发基于Java的Web应用时,经常会遇到JSP页面在Eclipse环境中出现乱码的情况。这不仅会影响程序的正常运行,还可能导致用户体验下降。本文将针对JSP在Eclipse中的乱码...
本篇文章将详细介绍如何解决JSP页面提交时出现的乱码问题,包括GET请求和POST请求两种常见的情况。 #### 一、问题背景与分析 1. **GET请求乱码**: - GET请求是通过URL来传递参数的,这些参数通常会以编码的形式...
### JSP中文乱码问题最优解决方法 在Web开发中,特别是使用Java Server Pages(JSP)进行网页设计时,中文乱码问题是一个常见的技术挑战。本文将详细探讨如何有效地解决JSP页面中的中文乱码问题,并提供具体的解决...
本文将根据“jsp页面乱码处理”的标题与描述,深入解析解决JSP乱码问题的策略,并结合具体代码实例,帮助开发者彻底摆脱这一难题。 #### JSP乱码的根本原因 JSP页面的乱码通常源自字符编码不一致,即不同环节使用...
### 如何解决JSP页面显示乱码问题 在JSP(Java Server Pages)开发中,中文乱码问题一直是开发者常见的挑战之一。这类问题通常源于不同的编码格式不一致导致的字符集冲突。本文将针对JSP页面显示乱码、表单提交中文...
### JSP中文乱码问题完全解决方案 #### 一、引言 在JSP开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于JSP页面、请求参数等涉及到多种编码方式,如Unicode、GB2312、GBK以及UTF-8等,如果不进行适当的...
本文将详细介绍如何解决JSP页面中的乱码问题,并给出一个简单而有效的解决方案。 #### 一、理解乱码产生的原因 1. **服务器与客户端编码不一致**:这是最常见的原因之一。当用户通过浏览器发送请求到服务器时,...
### 有关JSP页面乱码问题的解决 在开发基于Java的应用系统时,尤其是在处理中文字符的情况下,JSP页面中的乱码问题是常见的技术难题之一。本文将深入探讨JSP页面中可能出现的乱码问题及其解决方案,并针对不同场景...
JSP乱码问题解决方案 JSP乱码问题是指在JSP页面中遇到的字符编码问题,导致页面显示乱码的现象。下面是解决JSP乱码问题的一些常见方法: 首先,在JSP页面中,我们可以使用String的getBytes()方法将字符串转换为...
JSP中文乱码问题主要由字符集不匹配引起。解决方法主要包括在JSP页面、HTTP请求、数据库交互等环节中,确保正确指定和使用支持中文的字符集,如GBK或UTF-8。同时,理解不同环节的字符集设置对整个系统的影响,有助于...
JSP页面的编码设置是解决乱码问题的基础。在JSP文件的顶部,使用`<%@ page>`指令设置页面编码。例如: ```jsp ;charset=UTF-8" language="java" %> ``` 这里的`contentType`属性定义了页面的MIME类型(这里是`text...
在JSP开发过程中,中文乱码问题是一个常见的技术难题,尤其在处理客户端与服务器之间的数据交互时更为突出。本文将详细介绍几种有效的解决方案,帮助开发者应对各种场景下的乱码问题。 #### 一、解决服务器响应中文...
### 解决JSP+Servlet开发中的中文乱码问题 #### 概述 在基于JSP(Java Server Pages)和Servlet技术的Java Web应用开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于Java Web应用程序涉及多个组件之间的...
本篇将详细讨论如何解决`jspsmartupload`中的中文乱码问题,并结合`struts1.2`框架提供实例。 首先,理解乱码产生的原因至关重要。乱码通常是由字符编码的不匹配导致的。在HTTP请求中,数据默认是以ISO-8859-1编码...
本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要保持一致。如果服务器和客户端之间使用的字符编码不同,就可能出现乱码。例如,...
当Struts2应用在JSP页面中尝试加载并显示这些文本时,可能会遇到乱码问题,尤其是在处理中文等非英文字符时更为常见。 乱码问题的根源在于字符编码的不匹配。当资源文件的编码格式与JSP页面或服务器解析时所使用的...
今天,我们将讨论如何解决URL传值到Action乱码问题,特别是在Struts2框架中。 乱码问题的原因 乱码问题的原因是因为URL传值时,浏览器和服务器之间的编码方式不同所致。在大多数情况下,浏览器使用UTF-8编码,而...
`jspsmartupload.jar` 是一个专为Java Web开发设计的上传组件,它解决了在处理文件上传时可能出现的中文乱码问题。这个组件是许多Web应用程序中的重要工具,特别是那些需要用户上传包含中文字符的文件名或元数据的...
在开发Java Web应用程序时,JSP(JavaServer Pages)页面处理中文字符时可能出现乱码问题。这通常是由于编码设置不正确或不一致导致的。本文将深入探讨JSP中文乱码问题的原因,并提供一系列解决方案。 一、原因分析...