`
chinrui
  • 浏览: 97350 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

使用Filter解决编码问题

阅读更多

使用Filter解决编码问题

在我们做项目的过程中,经常会遇到编码的问题,当ssh三大框架整合的时候,可以在struts.xml里面配置如下解决编码问题:

 

<constant name="struts.i18n.encoding" value="gbk"/>

 struts2.1.6版本对于这个配置有bug,现在已经改正,可以使用,对于这个配置起作用的要求是所有编码要一致。表单提交的时候要使用post进行提交。和request.setCharacterEncoding("gbk");有些类似。

除此之外,还有一种方法,被经常使用来解决编码问题,那就是自己写一个Servlet的Filter转换请求的编码。

方法很简单:

package com.hpu.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;

public class EncodingFilter implements Filter {

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// 设定请求编码
		request.setCharacterEncoding("gbk");
		// 继续让请求骑过其它Filter
		chain.doFilter(request, response);
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}
}

 然后,就是对Filter的配置了,方法与配置struts过滤器的方法一样,在web.xml进行配置如下:

<!-- 解决乱码问题的Filter -->
	<filter>
		<filter-name>EncodingFilter</filter-name>
		<filter-class>com.hpu.filter.EncodingFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>EncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 3、使用Spring解决乱码问题

<filter>
	<filter-name>encodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>utf-8</param-value>
	</init-param>
</filter>

<filter-mapping>
	<filter-name>encodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

 

 

分享到:
评论

相关推荐

    Filter解决中文乱码

    总结来说,使用Filter解决中文乱码问题是一种有效的方法,通过在请求处理链的早期设定合适的字符编码,可以避免因为编码不一致而导致的乱码问题。`CharacterEncodingFilter`的实现及其在`web.xml`中的配置是实现这一...

    解决乱码问题

    #### 三、解决方案:使用Filter解决乱码问题 为了解决上述提到的问题,我们可以采用过滤器(Filter)的方式,在服务器端统一处理字符编码。具体步骤如下: 1. **创建过滤器类**:首先需要编写一个实现`javax....

    filter配置解决乱码问题

    web.xml配置filter和filtermapping,编写类 读取或写死filter的init-params中的字符编码传入 reqeust中 调用dofilter方法,乱码解决

    使用过滤器解决中文乱码问题

    ### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题...此外,对于不同类型的Web容器或框架,解决乱码问题的具体方法可能会有所不同,但核心思路是相似的:确保客户端与服务器端使用的字符编码一致。

    Filter中文乱码问题.doc

    在这个文档中,我们将深入探讨如何使用Filter解决中文乱码问题。 首先,我们需要创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其中的`init`和`doFilter`方法。`init`方法在Filter初始化时...

    java乱码问题解决方法

    Tomcat 5.5 中文乱码问题可以通过修改配置文件和使用 Filter 来解决。例如,可以在 web.xml 文件中添加以下代码: ```xml &lt;filter&gt; &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt; &lt;filter-class&gt;filters....

    如何配置Filter过滤器处理JSP中文乱码

    解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP中文乱码的详细步骤: 1. **配置web.xml文件** 在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一...

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

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    jsp 过滤器——解决中文乱码问题

    为了解决这一问题,可以通过在项目中添加过滤器来统一处理字符编码,从而避免乱码的出现。 #### 实现步骤 ##### 步骤一:创建过滤器 1. **新建一个包**:首先,在Eclipse集成开发环境中新建一个包,用于存放过滤器...

    解决web项目中出现的乱码问题,很方便

    在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...

    springMVC解决中文乱码

    解决 SpringMVC 中的中文乱码问题可以通过多种方法来实现,包括在 web.xml 文件中配置字符编码、使用注解配置字符编码、使用 CharacterEncodingFilter 或者自定义 Filter 等。这些方法都可以有效地解决中文乱码问题...

    java解决中文乱码问题

    有些情况下,使用 ISO-8859-1 编码可以解决中文乱码问题。例如: `String s2 = new String(s1.getBytes("ISO-8859-1"), "GBK");` 3. 使用 Tomcat 的 CharacterEncodingFilter Tomcat 5.5 中文乱码的问题可以使用 ...

    关于处理中文乱码问题 Filter 代码

    虽然这个文件本身并不直接解决中文乱码问题,但其中的内容可以作为解决乱码问题的参考,因为它提供了Servlet API的详细指南,包括Filter的使用、HTTP请求和响应的处理等。 总结来说,处理中文乱码问题主要涉及到...

    解决post get 请求乱码问题

    这个配置将使得所有的 POST 请求都使用 utf-8 编码,从而解决乱码问题。 解决 GET 请求乱码问题 对于 GET 请求,我们可以使用两种方法来解决乱码问题: 方法一:修改 Tomcat 配置文件 我们可以修改 Tomcat 的...

    JSP_利用Filter解决Servlet输出中文乱码的问题.docx

    JSP_利用Filter解决Servlet输出中文乱码的问题主要涉及以下几个核心知识点: 1. **Filter接口**:`javax.servlet.Filter`是Java Servlet API中的一部分,它提供了一种在请求到达目标Servlet或JSP之前对其进行拦截并...

    jsp用过滤器解决中文乱码问题的方法.docx

    在我们的例子中,我们使用jsp过滤器来实现编码设置,以解决中文乱码问题。 如何使用jsp过滤器解决中文乱码问题? 要使用jsp过滤器解决中文乱码问题,我们需要定义一个过滤器类,实现Filter接口。下面是一个简单的...

    利用过滤器解决JavaWeb(JSP)的乱码问题

    这个问题的出现通常是由于字符编码不一致导致的,而过滤器(Filter)作为一种强大的工具,可以有效地帮助我们解决这个问题。本文将详细讲解如何利用过滤器来解决JavaWeb中的乱码问题。 首先,我们需要理解JavaWeb中...

    struts 中文乱码问题解决

    本文将深入探讨Struts框架中中文乱码的问题,并提供一系列有效的解决方案。 ### Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,主要用于简化Java Web应用程序的开发。它基于Servlet和JSP...

    解决tomcat下中文乱码问题

    解决 Tomcat 下中文乱码问题 在本文中,我们将讨论如何解决 Tomcat 下中文乱码问题。该问题是由于 Tomcat 默认的字符编码设置不正确引起的。我们将通过设置 Connector 元素的 URIEncoding 属性和在过滤器中设置字符...

Global site tag (gtag.js) - Google Analytics