`
lym6520
  • 浏览: 704100 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

字符编码过滤器,,,帮您解决乱码问题

    博客分类:
  • JAVA
阅读更多

在开发过程中难免会遇到乱码问题,很早以前就写了这个处理乱码的过滤器,拿出来透透气下,也让路过的朋友们呼吸呼吸...

package com.web0248.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 SetCharacterEncodingFilter 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 = this.encoding;

                     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;


       }


}



web.xml配置:
<filter>

    <filter-name>SetCharacterEncodingFilter</filter-name>

    <filter-class>com.web0248.filter.SetCharacterEncodingFilter</filter-class>

    

    <init-param>

   <!-- 定义编码格式,我用的是utf-8 -->

      <param-name>encoding</param-name>

      <param-value>utf-8</param-value>

    </init-param>

    

    <init-param>

    <!-- ignore参数是在过滤器类定义的 -->

      <param-name>ignore</param-name>

      <param-value>true</param-value>

    </init-param>

</filter>

<filter-mapping>

    <filter-name>SetCharacterEncodingFilter</filter-name>

    <servlet-name>action</servlet-name>

</filter-mapping>

<filter-mapping>

    <filter-name>SetCharacterEncodingFilter</filter-name>

    <servlet-name>*.jsp</servlet-name>

</filter-mapping>

1
0
分享到:
评论

相关推荐

    【Struts】设置字符编码过滤器,解决乱码问题收藏

    本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...

    字符编码过滤器 字符编码转换 post字符转换

    "字符编码过滤器"是一种在J2EE应用程序中常见的解决乱码问题的机制。它通常是一个Servlet Filter,会在HTTP请求到达目标Servlet之前对请求进行预处理,将请求中的字符编码转换为应用程序期望的编码格式。例如,当...

    字符编码过滤器

    总的来说,字符编码过滤器是Java Web开发中的必备工具,它可以确保数据在传输过程中的正确性,避免由于编码不一致导致的乱码问题。通过封装工具类,我们可以轻松地在项目中引入和使用这个功能,提高代码的可维护性...

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

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

    过滤器实现get请求乱码问题

    在Java Web开发中,我们经常会遇到GET请求...总的来说,理解HTTP协议、Servlet Filter的工作原理以及字符编码的概念,是解决GET请求乱码问题的关键。同时,熟练运用这些知识能帮助我们构建更加健壮和国际化的Web应用。

    解决字符编码的过滤器

    在实际项目中,通过这种方式配置的过滤器可以有效避免由字符编码引起的乱码问题。比如,在一个涉及多语言用户的电子商务平台中,用户可能来自不同的国家和地区,他们提交的数据也可能包含多种语言文字。通过上述配置...

    java字符编码监听器

    在实际项目中,我们可能需要编写一些测试用例来验证字符编码过滤器的效果,比如包含特殊字符的表单提交,或者不同编码的URL请求等。 6. **最佳实践** - 为确保整个应用的一致性,建议在所有的HTTP响应中都明确指定...

    过滤器代码--解决jsp中的字符乱码问题

    过滤器代码--解决jsp中的字符乱码问题,可以让你不在为字符的乱码担心。

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

    ### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器...

    java字符过滤器,过滤器

    总之,Java字符过滤器是处理字符编码问题的关键工具,通过合理的配置和自定义过滤器,我们可以有效避免和解决乱码问题,保证数据的准确性和一致性。在实际开发中,理解并熟练运用这些机制是非常重要的。

    JavaWeb页面过滤器之编码过滤

    在JavaWeb开发中,页面编码过滤是一个至关重要的环节,它主要解决的是网页中字符编码不一致导致乱码的问题。在给定的标题“JavaWeb页面过滤器之编码过滤”和描述中,我们可以深入探讨JavaWeb中的编码过滤器,以及...

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

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

    servlet过滤器解决乱码问题

    通过配置过滤器来统一处理字符编码问题,可以有效避免乱码的发生。 #### 三、实现步骤 1. **创建过滤器类**: 首先需要创建一个实现了`javax.servlet.Filter`接口的类,并重写`init()`、`doFilter()`和`destroy()...

    编码过滤器

    由于不同的字符集编码可能导致数据乱码,编码过滤器的职责就是统一这些编码,防止因编码不一致产生的问题。 在Java Web环境中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP...

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

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

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

    为了从根本上解决中文乱码问题,我们可以创建一个简单的字符编码过滤器,该过滤器会在每次请求处理之前被调用,用于设置请求的字符编码。下面是一个具体的实现例子: 1. **编写过滤器类**: ```java package ...

    java配置过滤器,解决乱码

    在Java Web开发中,乱码问题常常困扰着开发者。标题提到的"java配置过滤器,解决乱码",实质上是通过使用Servlet过滤器...在实际开发中,理解字符编码的工作原理,结合过滤器进行正确配置,是解决乱码问题的关键。

    jsp 过滤器中文乱码的处理

    总结来说,JSP中的中文乱码问题可以通过设定请求的字符编码来解决,而过滤器提供了一种全局、高效的方式来处理这类问题。通过自定义过滤器并在`web.xml`中配置,我们可以确保所有请求都以正确的字符集处理,同时过滤...

    过滤器解决中文乱码(项目)

    通过过滤器,我们可以实现诸如字符编码转换、权限验证、日志记录等功能,而本项目中的过滤器就是用于处理中文乱码问题的。 中文乱码的产生通常与字符编码有关。在不同的系统、不同的编程语言中,字符编码可能会有所...

Global site tag (gtag.js) - Google Analytics