先创建一个Java类,继承自 javax.servlet.Filter :
package com.test.util;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
public class SetCharacterEncodingFilter implements Filter {
protected FilterConfig filterConfig;
protected String encodingName;
protected boolean enable;
public SetCharacterEncodingFilter() {
this.encodingName = "UTF-8";
this.enable = false;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
loadConfigParams();
}
private void loadConfigParams() {
this.encodingName = this.filterConfig.getInitParameter("encoding");
String strIgnoreFlag = this.filterConfig.getInitParameter("enable");
if (strIgnoreFlag.equalsIgnoreCase("true")) {
this.enable = true;
} else {
this.enable = false;
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (this.enable) {
request.setCharacterEncoding(this.encodingName);
response.setCharacterEncoding(this.encodingName);
}
chain.doFilter(request, response);
}
public void destroy() {
}
}
然后在web.xml中加入Filter的描述和参数配置:
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>com.test.util.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>enable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
分享到:
相关推荐
### Struts乱码解决方法详解 #### 一、引言 在使用Struts框架进行Web应用开发时,可能会遇到字符编码问题导致的数据显示乱码。本文将详细介绍如何解决Struts项目中的乱码问题,帮助开发者确保数据正确无误地显示。...
这行代码告诉Struts2框架在处理请求和响应时使用GBK编码,从而解决可能出现的中文乱码问题。不过,需要注意的是,如果你的项目使用的是UTF-8编码,你应该将`value`的值改为`UTF-8`。 方法二:编写自定义过滤器 ...
在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会对数据的准确性和完整性造成威胁。 **问题表现:** - 在页面显示中文时出现...
Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...
总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...
- 如果项目使用的是JSP+JavaBean+Servlet模式,建议整个项目统一使用GB2312编码,以避免编码不一致导致的乱码问题。 - 当需要将GBK编码转换为UTF-8时,可以使用特定的方法进行编码转换。 2. **配置Struts属性**...
在处理中文字符时,Struts可能会遇到乱码问题,这主要是由于字符编码不一致或未正确配置导致的。下面我们将深入探讨这个问题,并提供解决策略。 **乱码产生的原因** 1. **请求编码不一致**:当用户通过表单提交...
Struts2的核心拦截器Stack默认使用ISO-8859-1编码处理请求参数,这可能导致非英文字符乱码。可以通过自定义拦截器或者修改全局配置来改变这个行为。例如,在`struts-default.xml`或自定义的配置文件中添加以下代码...
在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...
3. **服务器响应头设置**:在服务器端的Servlet或Filter中,通过`response.setCharacterEncoding("UTF-8")`来设置响应头的字符编码。 通过上述详细的分析与解决方案,我们可以有效地解决Struts框架中由字符编码不...
- 创建一个自定义的过滤器类,实现`javax.servlet.Filter`接口,重写`doFilter()`方法,在该方法中设置请求和响应的编码格式为UTF-8。 - 在`web.xml`文件中注册这个过滤器,并确保其拦截所有的请求。 3. **数据库...
在使用Struts2框架进行Web应用开发时,经常会遇到中文乱码的问题。这不仅会影响用户体验,还可能导致数据处理错误。本文将深入分析Struts2中文乱码的原因,并提供一种通过自定义过滤器来解决该问题的方法。 #### 二...
在处理中文字符时,Struts2可能会遇到乱码问题,这主要是因为字符编码不一致导致的。本DEMO是为了解决Struts2在处理中文输入时可能出现的乱码问题,确保系统能够正确地接收和显示中文字符。 首先,我们要理解乱码...
在使用Struts框架进行Web开发时,经常会遇到一个让人头疼的问题——中文乱码。特别是在Tomcat服务器环境下,如何有效地解决这一问题,确保中文字符能够正常显示与传递,是许多开发者都需要面对的挑战。本文将通过...
在使用Struts 2框架进行Web开发时,中文乱码问题是非常常见的一个难题。这不仅影响用户体验,还可能导致数据处理错误。本篇文章将详细介绍如何在Struts 2.1.6版本中有效地解决中文乱码问题,并通过实际测试验证了...
在Java Web开发过程中,尤其是使用Struts框架时,经常会遇到中文乱码的问题。本文将详细介绍在J2EE环境下,利用Struts框架解决中文乱码问题的四种实用方法。 #### 方法一:通过添加过滤器解决乱码 **原理介绍**:...
3. **JSP和Struts乱码解决方案** - **JSP**:在JSP页面中,可以使用`;charset=UTF-8" %>`来设置页面编码,或者在Java代码中使用`request.setCharacterEncoding("UTF-8")`来设定请求的字符编码。 - **Struts**:在...
通过以上步骤,我们应该能够有效地避免在Struts框架下使用Ajax时出现的中文乱码问题。当然,实际情况可能更为复杂,例如涉及Tomcat服务器或其他中间件的配置,都需要一一排查并适配。对于开发和调试过程中遇到的具体...
总的来说,处理Struts框架中的乱码问题需要从多个层面进行协调,包括Filter、JSP页面、Action配置以及数据库连接。确保所有这些组件都采用统一的字符编码,通常是UTF-8,可以有效地防止乱码的发生。在实际开发中,...