package com.yuan;
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 FilterConfig filterConfig;
protected String encodingName;
protected boolean enable;
public SetCharacterEncodingFilter(){
this.encodingName = "gb2312";
this.enable = false;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
loadConfigParams();
}
private void loadConfigParams(){
this.encodingName = this.filterConfig.getInitParameter("encoding");
String strIgnoreFlag = this.filterConfig.getInitParameter("enable");
if(strIgnoreFlag.equals("true")){
this.enable = true;
}else{
this.enable = false;
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(this.enable){
request.setCharacterEncoding(this.encodingName);
}
chain.doFilter(request, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
}
web.xml配置:
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>com.yuan.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>enable</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...
字符编码是将计算机内部二进制数据转换为人类可读的文字的过程。常见的字符编码方式包括ASCII、GBK、UTF-8等。其中,UTF-8由于其良好的兼容性和国际化的支持,在现代Web开发中被广泛采用。 #### 二、字符编码问题...
源码可能是指Java过滤器(Filter)的实现,这种设计模式常用于处理HTTP请求或响应,其中就包括了字符编码的转换。工具可能指的是用来检测、转换或处理编码的软件,如Notepad++等文本编辑器,它们支持多种字符编码并...
总的来说,解决JSP字符串乱码的过滤器是通过Java Servlet Filter机制,在请求到达Servlet之前和响应离开Servlet之后,对字符编码进行统一管理,从而保证数据传输的正确性。通过配置和编写Filter,我们可以确保整个...
在软件开发过程中,字符编码问题是一个常见的挑战,尤其是在涉及到多语言和跨平台交互时。`jQuery`是一个广泛使用的JavaScript库,它在与服务器进行异步通信(Ajax)时,可能会遇到编码不匹配的问题,特别是在GBK...
我们可以在Filter中设置HttpServletRequest的字符编码,这样在读取请求参数时,会自动使用指定的编码进行转换。 三、页面缓存控制 页面缓存可以提高Web应用的性能,减少服务器负载。通过Filter,我们可以控制哪些...
在Java开发过程中,字符编码问题是非常常见且容易引发一系列乱码问题的重要因素。本篇将详细梳理Java中的字符编码相关知识点,帮助开发者解决实际工作中遇到的各种乱码问题。 #### 二、基础知识 1. **编码与解码**...
基于tomcat8 编写字符编码Filter过滤器无效问题的解决方法 在基于tomcat8 的Web应用程序中,字符编码问题是常见的问题之一。特别是在处理POST请求时,中文字符可能会出现乱码的情况。为了解决这个问题,我们可以...
乱码问题主要源自计算机操作系统的字符编码方式以及Java内部使用的UNICODE编码之间的转换过程。在深入解析这一过程后,我们可以透视Java中文问题产生的根本原因,并给出最优化的解决方案。 首先,计算机最初的操作...
字符编码是将字符转换为二进制数的一种规则,它确保计算机系统能够正确识别和存储各种字符。常用的字符编码有ASCII、GBK、GB2312、ISO-8859-1、UTF-8等。其中UTF-8是一种可变长度的编码方式,可以支持世界上绝大多数...
通过实现javax.servlet.Filter接口并配置在web.xml中,我们可以定义过滤逻辑,例如字符编码转换,权限检查等。 中文乱码问题通常发生在数据的编码和解码过程中。当客户端(如浏览器)和服务器之间传递含有中文字符...
1. **方法一:转换字符编码** - **原理**:将一种编码方式转换为另一种编码方式。 - **示例代码**: ```java String str = "中文测试"; // 将字符串从ISO-8859-1编码转换为UTF-8编码 byte[] b = str.getBytes...
例如,当用户通过表单提交非ASCII字符时,如果服务器端的字符编码设置不正确,就可能导致乱码。 1. **HTTP请求参数编码**: Spring MVC默认使用ISO-8859-1作为HTTP请求参数的编码,这可能无法正确处理中文等非...
在处理JSON数据时,经常会出现中文乱码的问题,尤其是在不同编码格式间进行转换时更为常见。本文将详细介绍如何解决JSON中的中文乱码问题,并提供几种简单实用的方法来帮助开发者避免这类问题的发生。 #### 一、...
JSP乱码问题是指在JSP页面中遇到的字符编码问题,导致页面显示乱码的现象。下面是解决JSP乱码问题的一些常见方法: 首先,在JSP页面中,我们可以使用String的getBytes()方法将字符串转换为指定编码的字节数组,然后...
【乱码处理】在中国,程序员经常需要面对的一个挑战就是乱码问题,这主要源于中英文字符编码的不同。编码机制是导致乱码的核心原因,中文字符通常使用GBK或GB2312等编码,而英文字符则普遍采用ASCII或Unicode。如果...
字符编码问题常常会导致乱码,因此在读写文件或网络通信时,正确设置字符编码至关重要。Java中,`InputStreamReader`和`OutputStreamWriter`类用于将字节流与字符流之间进行转换,并指定字符编码。另外,HTTP请求和...
总的来说,处理中文乱码问题需要对字符编码有深入理解,明确每个环节的编码规则,并在必要时进行转换。结合过滤器技术,我们可以更有效地管理和预防乱码现象,确保数据的正确性和一致性。在实际开发中,应养成良好的...
强制转换字符集 在Java程序中,可以采用直接对字符串进行编码转换的方式来解决乱码问题。例如,当接收到的数据是以`ISO-8859-1`编码格式传入时,而系统内部使用的是`GBK`编码,则可以通过以下方式进行编码转换: ...
总的来说,解决Java项目中的中文乱码问题需要理解编码与解码的基本原理,合理地设置字符编码,并在必要时进行手动转换。在开发过程中,应尽量保持统一的编码标准,避免在不同环节出现不一致导致的乱码问题。此外,...