`
56858752
  • 浏览: 61210 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

字符编码过滤器

阅读更多
将编码设置成GBK

package com.student.comm;

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;
    protected FilterConfig filterConfig;
    protected boolean ignore;

    public SetCharacterEncodingFilter() {
        encoding = null;
        filterConfig = null;
        ignore = true;
    }

    public void destroy() {
        encoding = null;
        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);
            } else {
               request.setCharacterEncoding("gbk");
            }
        }
        chain.doFilter(request, response);
    }
    
    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
        encoding = filterConfig.getInitParameter("encoding");
        String value = filterConfig.getInitParameter("ignore");
        if (value == null) {
            ignore = true;
        } else
        if (value.equalsIgnoreCase("true")) {
            ignore = true;
        } else
        if (value.equalsIgnoreCase("yes")) {
            ignore = true;
        } else {
            ignore = false;
        }
    }

    protected String selectEncoding(ServletRequest request) {
        return encoding;
    }
}


web.xml配置
  <!-- =========================================== -->
	<!-- ============ 过滤器映射 ============== -->
	<!-- =========================================== -->
	<!-- 字符编码过滤器映射 -->
  <filter>
		<filter-name>SetCharacterEncodingFilter</filter-name>
		<filter-class>
			com.student.comm.SetCharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>GBK</param-value>
		</init-param>
		<init-param>
			<param-name>ignore</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	
	<filter-mapping>
		<filter-name>SetCharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

分享到:
评论
1 楼 e437032193 2012-03-06  
这位仁兄可否解释一下你的每一行代码,小弟初学有些看不懂。谢谢

相关推荐

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

    本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...

    java字符编码监听器

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

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

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

    JavaWeb页面过滤器之编码过滤

    因此,编码过滤器的目的是确保所有的输入和输出都使用一致的字符编码。 JavaWeb中的Filter接口是实现编码过滤的关键。Filter是Servlet API的一部分,可以拦截HTTP请求和响应,进行预处理和后处理。在创建编码过滤器...

    字符过滤器

    jsp 中的字符过滤器,屏蔽网页中或JFreeChart中的乱码问题

    解决字符编码的过滤器

    ### 解决字符编码的过滤器知识点详解 #### 一、字符编码基础概念 在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制...

    编码过滤器

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

    ssh框架乱码过滤器Filter

    总结,SSH框架下的中文乱码问题主要通过自定义过滤器解决,设置合适的请求和响应的字符编码。同时,对于不同的数据提交方式,如表单和JS,需要采取相应的解决方案。在实际开发中,确保整个数据传输过程中的字符编码...

    Java过滤器,字符过滤,标签过滤

    Java过滤器是Java Web开发中的一个重要概念,它主要用于在HTTP...通过研究这个项目,开发者可以学习到如何在实际项目中应用过滤器,以及处理字符编码问题,这对于任何涉及用户输入和输出的Java Web应用都是至关重要的。

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

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

    四个有用的缓存,登陆字符编码,资源保护_过虑器

    本篇将详细讲解标题和描述中提到的四个有用的过滤器:防止浏览器缓存的过滤器、用户登录检测过滤器、字符编码过滤器以及资源保护过滤器。 1. **防止浏览器缓存的过滤器** 浏览器默认会缓存静态资源以提高加载速度...

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

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

    struts2.0字符编码使用过滤器

    在这个例子中,过滤器被用来设置请求和响应的字符编码。 4. **解决字符乱码** 要解决字符乱码,我们可以在过滤器中设置HttpServletRequest的`setCharacterEncoding()`方法,指定请求的编码方式,例如设置为UTF-8。...

    java字符过滤器,过滤器

    Java字符过滤器,也称为字符编码转换器,是Java编程中处理字符编码问题的重要工具。在处理文本数据时,尤其是在网络传输或者读取不同编码格式的文件时,可能会遇到字符乱码的问题。Java过滤器就是为了解决这些问题,...

    过滤器的使用,内有源码的说明

    为了解决这个问题,我们可以创建一个字符编码过滤器,将请求和响应的编码统一设置为UTF-8。 ```java public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ...

    cxf3.2.0编码GBK的不可映射字符问题

    4. **使用过滤器**:在Web应用的过滤器链中添加一个字符编码过滤器,例如`CharacterEncodingFilter`,在请求进入CXF之前将其转换为UTF-8。这样,即使客户端未指定正确的编码,也可以确保数据在进入CXF之前被正确转换...

    过滤器简单使用代码!!

    以下是一个简单的字符编码过滤器的实现: ```java public class CharacterEncodingFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, ...

    java过滤器

    下面是一个简单的字符编码过滤器实现: ```java public class EncodingFilter implements Filter { private String encoding = null; @Override public void init(FilterConfig filterConfig) throws ...

Global site tag (gtag.js) - Google Analytics