`
xuehaipeng
  • 浏览: 52768 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

字符集过滤

    博客分类:
  • java
阅读更多
web.xml中的配置
<!-- 字符集过滤器 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>com.itmg.interseptor.PageEncodingFilter</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>

PageEncodingFilter类
package com.itmg.interseptor;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class PageEncodingFilter implements Filter {
	private FilterConfig filterConfig;
	private String encoding = null;

	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}

	@SuppressWarnings("unchecked")
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,
			ServletException {
		try {
			if (encoding == null) {
				encoding = filterConfig.getInitParameter("encoding");
			}
		} catch (Exception iox) {
			iox.printStackTrace();
		}
		request.setCharacterEncoding(encoding);
		response.setCharacterEncoding(encoding);
		HttpServletRequest req = (HttpServletRequest) request;

		// get请求时,重新编码
		if ("GET".equals(req.getMethod())) {
			Enumeration names = request.getParameterNames();
			while (names.hasMoreElements()) {
				String name = (String) names.nextElement();
				String[] values = request.getParameterValues(name);
				for (int i = 0; i < values.length; i++) {
					values[i] = new String(values[i].getBytes("ISO-8859-1"), encoding);
				}
			}
		}
		filterChain.doFilter(request, response);
	}

	public void destroy() {
		filterConfig = null;
		encoding = null;
	}
}


1
0
分享到:
评论

相关推荐

    一个简单的JAVA字符集过滤器实现

    JAVA 字符集过滤器实现 本文将详细介绍如何在JAVA中实现一个简单的字符集过滤器,包括过滤器的功能、实现原理、配置方法等。 一、什么是字符集过滤器? 字符集过滤器是一个用于过滤HTTP请求和响应中的字符集的 ...

    很好用的字符集过滤器

    该方法用于struts框架中,只需简单配置即可 使用。

    字符过滤器

    在实例中,我们用Filter主要是来设置字符集,防止jsp出现中文乱码现象

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

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

    servlet过滤器实例经典过滤器

    1. **字符集过滤器**:这个过滤器用于确保所有请求和响应都使用统一的字符编码,如UTF-8。在doFilter()方法中,我们可以通过设置HttpServletRequest和HttpServletResponse的编码方式来实现。 2. **登录检查过滤器**...

    Java Unicode 和字符集

    ### Java中的Unicode与字符集详解 #### 一、引言 在软件开发过程中,正确处理文本数据至关重要。尤其是在全球化日益加深的今天,软件不仅要能够处理英语等常见的西方语言,还要支持世界各地的语言,包括中文、日文...

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

    不同的编码标准对应不同的字符集,可能导致乱码问题。在J2EE应用中,字符编码尤其重要,因为服务器需要正确识别和处理来自不同源(如浏览器请求)的字符数据。 "字符编码过滤器"是一种在J2EE应用程序中常见的解决...

    Java io输入输出流及字符集

    本文将深入探讨Java中的输入输出流以及字符集的相关知识点。 一、Java IO流概述 Java的IO流模型是基于管道的概念,数据在不同设备之间流动就像水流在管道中传输一样。流可以分为四类:字节流(Byte Stream)和字符...

    Web应用开发技术实验报告-过滤器和监听器.docx

    字符集过滤器在无明确编码设置的情况下仍能保证UTF-8编码的正确性,非法访问过滤器有效地阻止了未登录用户的非法访问,而敏感词过滤器成功地拦截并处理了包含敏感词汇的输入。 实验总结表明,通过这次实践,学生...

    java字符过滤器,过滤器

    1. `Charset`类:这个类用于表示字符集,可以用来进行字符到字节的编码和字节到字符的解码。通过`Charset.forName()`方法,我们可以根据字符集名称获取对应的`Charset`对象。 2. `InputStreamReader`和`...

    带你5分钟读懂MySQL字符集设置

    使用`WHERE`或`LIKE`条件可以过滤出特定的字符集信息。 5. **设置字符集和字符序**:在创建数据库、表或列时,应明确指定所需的字符集和字符序。例如,创建一个使用`utf8`字符集和`utf8_general_ci`字符序的表,...

    jsp乱码解决超酷,通过web.xml配置

    1. **配置字符集过滤器(CharsetFilter)**:在`web.xml`中添加一个过滤器,该过滤器可以强制设置请求和响应的字符集。例如: ```xml &lt;filter-name&gt;charsetFilter &lt;filter-class&gt;...

    spring2.5 struts2.0 hibernate3.2.5 搭建的企业级开发基础模块

    字符集过滤器:com.light.framework.filter 项目字符集请用UTF-8 com.light.framework包中还有些小东西 自己看看吧 我是用MyEclipse6.0开发的(MyEclipse7.0M2导入也没问题) 希望大家用其他版本时不会出现...

    Servlet、Jsp乱码问题(三)

    4. 字符集过滤器(myfilter):在一些复杂的应用场景下,可能需要编写一个字符集过滤器,如`myfilter`,它在请求进入Servlet之前先进行编码转换。过滤器可以全局地处理所有请求和响应的编码问题,确保整个应用的一致...

    基于tomcat8 编写字符编码Filter过滤器无效问题的解决方法

    基于tomcat8 编写字符编码Filter过滤器无效问题的解决方法 在基于tomcat8 的Web应用程序中,字符编码问题是常见的问题之一。特别是在处理POST请求时,中文字符可能会出现乱码的情况。为了解决这个问题,我们可以...

    java解决解决get中文乱码问题

    - 如果使用了Spring框架,可以通过配置文件来设置全局的字符集过滤器。 #### 三、代码示例详解 下面通过一个具体的示例来展示如何处理GET请求中的中文参数。 1. **创建Servlet**: 创建一个名为`...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决

    Struts框架可以通过添加一个字符集过滤器(Filter)来处理请求和响应的编码。创建一个实现`javax.servlet.Filter`接口的类,例如`SetCharacterEncodingFilter`,并在`web.xml`中配置该过滤器,确保请求在到达Action...

    SSH+mysql开发字符集问题

    ### SSH+MySQL开发中的字符集问题详解 #### 一、问题背景 在使用MySQL与SSH框架进行开发过程中,中文字符的乱码问题是非常常见的。尤其是对于新手开发者来说,这一问题可能会耗费大量的时间与精力去解决。本文将...

    servlet filter大全

    1. **字符集过滤器**: 这种过滤器的主要任务是确保请求和响应中的字符集正确无误。通过设置`CharacterEncodingFilter`,可以统一处理所有请求和响应的编码,避免乱码问题。例如,我们可以在`web.xml`中配置如下: ...

Global site tag (gtag.js) - Google Analytics