web.xml
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>mypack.Charset</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
过滤的类
package mypack;
import java.io.*;
import javax.servlet.*;
public class Charset implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
这2个加进工程里,就可以直接运行了。不用在设置什么。
至于数据库最好设置为UTF-8.
从此以后远离中文出现乱码的烦恼。哈哈哈
分享到:
相关推荐
中文乱码问题很头疼,但一个好的过滤器就可以解决问题啦
解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...
在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免乱码问题。 5. **Struts2详解**: Struts2框架的核心包括Action、Interceptor(拦截器)、Result和Value Stack等组件。Action...
解决方法是更新Struts2到2.1.8.1或更高版本,并确保使用最新的`StrutsPrepareAndExecuteFilter`过滤器。 3. **GET乱码问题**: GET请求的乱码问题通常与服务器配置有关。在Struts2的各个版本和不同过滤器设置下,...
总结来说,解决Struts ActionForm乱码和Servlet全局过滤器转义编码问题,需要关注以下几个关键点: 1. **页面编码**:确保JSP文件以UTF-8编码,并在页面头部声明。 2. **服务器配置**:在Tomcat的`server.xml`中...
### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...
2. **修改`web.xml`**:在项目的`WEB-INF/web.xml`文件中,添加过滤器以确保请求和响应都使用UTF-8编码: ```xml <filter-name>characterEncodingFilter <filter-class>org.springframework.web.filter....
本文将深入探讨Struts框架中中文乱码的问题,并提供一系列有效的解决方案。 ### Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,主要用于简化Java Web应用程序的开发。它基于Servlet和JSP...
本文将详细介绍如何通过配置`struts.properties`文件与`web.xml`中的过滤器来解决中文乱码问题。 #### 一、Struts2 配置文件(struts.properties)中的关键设置 在Struts2项目中,可以通过修改`struts.properties`...
#### 二、解决中文乱码的方法 针对上述问题,下面将详细介绍几种有效的解决方案: ##### 1. 修改请求参数编码 **方案说明:** 通过自定义 RequestProcessor 实现对请求参数的编码转换,确保请求参数能够被正确...
综上所述,解决Struts2文件下载时的中文乱码问题需要从多个角度考虑,包括文件名编码、响应头设置、过滤器配置、JDK版本、Tomcat配置以及开发环境的一致性。具体到本例中的DownLoadFile,可能是一个示例代码或测试...
总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...
通过以上步骤,我们应该能够有效地避免在Struts框架下使用Ajax时出现的中文乱码问题。当然,实际情况可能更为复杂,例如涉及Tomcat服务器或其他中间件的配置,都需要一一排查并适配。对于开发和调试过程中遇到的具体...
本DEMO是为了解决Struts2在处理中文输入时可能出现的乱码问题,确保系统能够正确地接收和显示中文字符。 首先,我们要理解乱码产生的原因。在Web应用中,数据的传输通常涉及多种编码方式,如HTTP请求的默认编码通常...
总结来说,解决Struts2和Servlet的中文乱码问题,关键在于确保JSP页面、过滤器(如果使用)、Servlet方法以及HTTP请求方式的编码一致性。对于GET请求,GB2312编码可能需要手动转换,而POST请求通常推荐使用UTF-8编码...
#### 四、使用Servlet过滤器解决字符编码问题 为了确保Struts2应用能够正确处理各种字符编码,可以通过配置Servlet过滤器来统一设置字符编码规则。这种方式具有以下优势: 1. **统一性**:通过在Web应用启动时即...
- 为了确保请求的正确编码,可以在web应用的过滤器(Filter)中进行强制转换,比如添加一个字符编码过滤器(CharacterEncodingFilter),并配置为在请求进入Action之前先进行编码转换。 3. **Action类的参数注解**...
#### 方法一:通过添加过滤器解决乱码 **原理介绍**:通过自定义过滤器,在请求到达处理组件之前对请求进行编码设置,从而解决乱码问题。这种方式灵活性高,可全局应用于整个应用。 **具体实现**: 1. **创建过滤...
本项目中的过滤器可能解决了中文乱码问题,这通常是通过设置字符编码过滤器实现的,例如`CharacterEncodingFilter`,确保请求和响应都使用正确的字符编码,如UTF-8。 4. **中文乱码问题**:在处理中文字符时,如果...