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;
}
}
分享到:
相关推荐
JAVA 字符集过滤器实现 本文将详细介绍如何在JAVA中实现一个简单的字符集过滤器,包括过滤器的功能、实现原理、配置方法等。 一、什么是字符集过滤器? 字符集过滤器是一个用于过滤HTTP请求和响应中的字符集的 ...
该方法用于struts框架中,只需简单配置即可 使用。
在实例中,我们用Filter主要是来设置字符集,防止jsp出现中文乱码现象
本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...
1. **字符集过滤器**:这个过滤器用于确保所有请求和响应都使用统一的字符编码,如UTF-8。在doFilter()方法中,我们可以通过设置HttpServletRequest和HttpServletResponse的编码方式来实现。 2. **登录检查过滤器**...
### Java中的Unicode与字符集详解 #### 一、引言 在软件开发过程中,正确处理文本数据至关重要。尤其是在全球化日益加深的今天,软件不仅要能够处理英语等常见的西方语言,还要支持世界各地的语言,包括中文、日文...
不同的编码标准对应不同的字符集,可能导致乱码问题。在J2EE应用中,字符编码尤其重要,因为服务器需要正确识别和处理来自不同源(如浏览器请求)的字符数据。 "字符编码过滤器"是一种在J2EE应用程序中常见的解决...
本文将深入探讨Java中的输入输出流以及字符集的相关知识点。 一、Java IO流概述 Java的IO流模型是基于管道的概念,数据在不同设备之间流动就像水流在管道中传输一样。流可以分为四类:字节流(Byte Stream)和字符...
字符集过滤器在无明确编码设置的情况下仍能保证UTF-8编码的正确性,非法访问过滤器有效地阻止了未登录用户的非法访问,而敏感词过滤器成功地拦截并处理了包含敏感词汇的输入。 实验总结表明,通过这次实践,学生...
1. `Charset`类:这个类用于表示字符集,可以用来进行字符到字节的编码和字节到字符的解码。通过`Charset.forName()`方法,我们可以根据字符集名称获取对应的`Charset`对象。 2. `InputStreamReader`和`...
使用`WHERE`或`LIKE`条件可以过滤出特定的字符集信息。 5. **设置字符集和字符序**:在创建数据库、表或列时,应明确指定所需的字符集和字符序。例如,创建一个使用`utf8`字符集和`utf8_general_ci`字符序的表,...
1. **配置字符集过滤器(CharsetFilter)**:在`web.xml`中添加一个过滤器,该过滤器可以强制设置请求和响应的字符集。例如: ```xml <filter-name>charsetFilter <filter-class>...
字符集过滤器:com.light.framework.filter 项目字符集请用UTF-8 com.light.framework包中还有些小东西 自己看看吧 我是用MyEclipse6.0开发的(MyEclipse7.0M2导入也没问题) 希望大家用其他版本时不会出现...
4. 字符集过滤器(myfilter):在一些复杂的应用场景下,可能需要编写一个字符集过滤器,如`myfilter`,它在请求进入Servlet之前先进行编码转换。过滤器可以全局地处理所有请求和响应的编码问题,确保整个应用的一致...
基于tomcat8 编写字符编码Filter过滤器无效问题的解决方法 在基于tomcat8 的Web应用程序中,字符编码问题是常见的问题之一。特别是在处理POST请求时,中文字符可能会出现乱码的情况。为了解决这个问题,我们可以...
- 如果使用了Spring框架,可以通过配置文件来设置全局的字符集过滤器。 #### 三、代码示例详解 下面通过一个具体的示例来展示如何处理GET请求中的中文参数。 1. **创建Servlet**: 创建一个名为`...
Struts框架可以通过添加一个字符集过滤器(Filter)来处理请求和响应的编码。创建一个实现`javax.servlet.Filter`接口的类,例如`SetCharacterEncodingFilter`,并在`web.xml`中配置该过滤器,确保请求在到达Action...
### SSH+MySQL开发中的字符集问题详解 #### 一、问题背景 在使用MySQL与SSH框架进行开发过程中,中文字符的乱码问题是非常常见的。尤其是对于新手开发者来说,这一问题可能会耗费大量的时间与精力去解决。本文将...
1. **字符集过滤器**: 这种过滤器的主要任务是确保请求和响应中的字符集正确无误。通过设置`CharacterEncodingFilter`,可以统一处理所有请求和响应的编码,避免乱码问题。例如,我们可以在`web.xml`中配置如下: ...