`

用Servlet过滤器去除JSP页面中的乱码

    博客分类:
  • JSP
阅读更多
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;
}

// filter的主体操作
public void doFilter(ServletRequest request, ServletResponse response,
     FilterChain chain) throws IOException, ServletException {
    // 判断是否需要进行编码的设置
    if (!ignore || request.getCharacterEncoding() == null) {
     // 得到配置文件中的编码类型
     String encoding = setEncoding(request);
     if (encoding != null) {
      request.setCharacterEncoding(encoding);
     }
    }
    chain.doFilter(request, response);

}

protected String setEncoding(ServletRequest request) {
    return this.encoding;
}

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 = false;
    } else if (value.equalsIgnoreCase("false")) {
     this.ignore = true;
    } else if (value.equalsIgnoreCase("no")) {
     this.ignore = true;
    } else {
     this.ignore = false;
    }

}

}

web.xml
<filter>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <filter-class>myservlets.SetCharacterEncodingFilter</filter-class>
    <init-param>
     <param-name>encoding</param-name>
     <param-value>gbk</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

还可以设置ignore参数,当其值为no或者false时,这个filter将不工作!

分享到:
评论

相关推荐

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

    【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...

    servlet过滤器配置,解决JSP的所有乱码

    很烦人哦,那就试试这个吧,可以解决所有的乱码,里面有说明教你怎么配”中,主要涉及的知识点是通过配置Servlet过滤器来解决JSP页面与Servlet交互时的字符编码问题。 首先,我们需要理解为什么会出现乱码。乱码...

    servlet过滤器解决乱码问题

    ### Servlet过滤器解决乱码问题 在Web应用开发过程中,字符编码问题经常出现,尤其是在处理中文等多字节字符时。如果不正确地设置字符编码,可能会导致页面显示乱码。本文将详细介绍如何通过Servlet过滤器来解决这...

    servlet与jsp中文乱码处理

    在Java Web开发中,Servlet和JSP是两个重要的技术组件,它们经常被用来构建动态网页。然而,在处理中文字符时,由于编码不一致或者处理不当,可能会出现中文乱码问题。这个问题困扰了很多开发者,但通过了解编码原理...

    jsp 过滤器中文乱码的处理

    本篇文章将详细讲解如何处理JSP中的中文乱码以及如何通过过滤器(Filter)来解决这一问题。 首先,中文乱码的处理主要涉及到字符集(Charset)的概念。在JSP中,当请求参数包含中文字符时,如果不设定字符编码,...

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

    总之,解决JavaWeb中的乱码问题需要从多个层面进行考虑:设置过滤器统一请求和响应的编码,确保JSP页面的编码正确,以及在处理文件时注意文件内容的编码。通过这些方式,我们可以有效防止和解决乱码问题,提高应用...

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

    ### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...

    过滤器,Jsp开发中的避免中文乱码

    在JSP开发中,中文乱码问题是一个常见的挑战...通过理解过滤器的工作原理并正确地在开发中应用,我们可以有效地避免JSP开发中的中文乱码问题,提高用户体验。同时,这也是提升Java Web应用性能和安全性的常用手段之一。

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

    jsp 用过滤器解决中文乱码问题的方法 jsp(JavaServer Pages)是一种广泛应用于Web开发的技术,但是在实际开发中,我们经常会遇到中文乱码问题。为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要...

    JSP用过滤器解决request getParameter中文乱码问题.docx

    过滤器在Servlet容器中扮演着拦截请求和响应的角色,可以在请求到达目标资源(如JSP页面)之前对其进行预处理,包括设置合适的字符编码,以确保中文字符正确解析。下面将详细介绍如何使用过滤器来解决这个问题。 ...

    jsp中文乱码过滤器

    本文将深入探讨JSP中文乱码过滤器的工作原理、实现方法以及如何在项目中应用。 **一、乱码问题的来源** 在JSP页面中,如果服务器和客户端的字符编码不一致,就可能导致乱码。常见的编码格式有GBK、UTF-8等。例如,...

    JSP页面中文乱码几个解决办法

    在`web.xml`中配置这个过滤器,确保它应用于所有需要处理的请求路径,以避免在各个页面和Servlet中重复设置编码。 总结来说,解决JSP页面中文乱码问题的关键在于保持字符编码的一致性,从编辑器保存文件的编码、JSP...

    JSP利用过滤器解决request中文乱码问题.docx

    本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 什么是过滤器 在Servlet中,过滤器是一个可以在客户端请求到达Servlet之前或之后执行某些操作的对象。过滤器可以在客户端请求到达Servlet之前对请求...

    Servlet及jsp解决中文乱码问题

    本文将详细介绍如何在Servlet与JSP中彻底解决中文乱码问题,并给出具体的解决方案。 #### 二、中文乱码的原因分析 中文乱码主要由以下几个原因引起: 1. **服务器端编码设置不正确**:如果服务器端的字符集设置与...

    Java servlet过滤器配置详解

    本篇将深入讲解Java Servlet过滤器的配置,包括`EncodingFilter`类的使用、jsp页面配置以及`web.xml`文件的配置。 首先,`EncodingFilter`是一个常见的过滤器,主要用于解决HTTP请求和响应中的编码问题。在处理中文...

    jsp传参 servlet接收中文乱码问题的解决方法.docx

    jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码问题。这是因为在 HTTP 请求中,默认的编码方式是 ...

    jsp+servlet+mysql乱码解决的这天

    该方案通过设置每个页面的编码格式为utf-8,控制器servlet中的请求编码格式为utf-8,数据库连接url中添加useUnicode=true&characterEncoding=UTF-8参数,编写filter过滤器设置请求和响应的编码格式为gb2312,最后...

    javaweb servlet(jsp)的乱码问题原理及解决

    - 应用程序全局设置统一的字符编码,比如在Web.xml中添加过滤器来统一设置请求的编码方式,确保整个应用程序的数据编码一致性。 #### 总结 在Java Web开发中,理解和解决乱码问题是确保应用正常运行的重要一环。...

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

    在Java Web中,过滤器是Servlet API的一部分,它允许我们在请求到达目标Servlet或JSP之前以及响应离开应用程序之后对请求和响应进行拦截和处理。通过过滤器,我们可以实现诸如字符编码转换、权限验证、日志记录等...

    STRUTS ActionForm乱码,servlet全局过滤器转义编码。

    Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...

Global site tag (gtag.js) - Google Analytics