package com.buy.util;
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 EncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
request.setCharacterEncoding(selectEncoding(request));
}
chain.doFilter(request, response);
}
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 = true;
else if (value.equalsIgnoreCase("true")
|| value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
在web.xml中配置:
<filter>
<filter-name>SetCharsetEncodingFilter</filter-name>
<filter-class>com.buy.util.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器...
jsp 用过滤器解决中文乱码问题的方法 jsp(JavaServer Pages)是一种广泛应用于Web开发的技术,但是在实际开发中,我们经常会遇到中文乱码问题。为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要...
本项目"过滤器解决中文乱码"旨在提供一种有效的方法来处理这个问题。下面将详细介绍这个项目的相关知识点。 首先,我们要了解什么是过滤器(Filter)。在Java Web中,过滤器是Servlet API的一部分,它允许我们在...
### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...
【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...
总的来说,使用过滤器解决中文乱码问题是一种标准化且可维护的解决方案。它不仅可以确保所有的请求和响应都使用相同的字符编码,还能减少代码重复,提高代码的可读性和可维护性。因此,了解并掌握过滤器的使用对于...
要使用过滤器解决中文乱码,我们需要创建一个实现了javax.servlet.Filter接口的类。以下是一个简单的过滤器示例: ```java import javax.servlet.*; import java.io.IOException; public class ...
总结来说,Java配置过滤器解决乱码问题的核心在于确保请求和响应的编码与预期一致。通过设置请求的字符编码和响应的Content-Type,可以有效地防止乱码的产生,提升用户体验。在实际开发中,理解字符编码的工作原理,...
在JSP中使用过滤器来解决中文乱码问题的步骤大致如下: 首先,要创建一个过滤器类,该类需要实现javax.servlet.Filter接口。在该过滤器类中,必须重写init()、destroy()和doFilter()这三个方法。其中,doFilter()...
通过这种方式,过滤器不仅可以解决中文乱码问题,还可以作为预防性措施,防止不安全的数据进入系统。 总结来说,JSP中的中文乱码问题可以通过设定请求的字符编码来解决,而过滤器提供了一种全局、高效的方式来处理...
除了上述基本的过滤器解决方案,还可以根据实际项目需求进行更复杂的编码管理,例如,针对不同的请求路径或HTTP方法设置不同的编码,或者在处理文件上传时考虑文件名的编码问题。 此外,对于"中文乱码问题.txt"这样...
JSP利用过滤器解决request中文乱码问题 ...使用过滤器解决request中文乱码问题是JSP中解决中文乱码问题的一种有效方法。通过设置过滤器,可以确保中文字符被正确地读取和处理。这对JSP开发者来说非常重要。
### Servlet过滤器解决乱码问题 在Web应用开发过程中,字符编码问题经常出现,尤其是在处理中文等多字节字符时。如果不正确地设置字符编码,可能会导致页面显示乱码。本文将详细介绍如何通过Servlet过滤器来解决这...
"拦截器解决中文乱码问题"这个主题,主要关注的是如何通过使用拦截器(Interceptor)这一技术手段来预防或解决乱码现象。拦截器是Spring MVC框架中的一个重要组件,它可以对HTTP请求进行预处理和后处理,从而在数据...
### 用过滤器解决Oracle中文乱码问题 在开发基于Web的应用程序时,尤其是在使用Java Servlet技术进行开发的过程中,我们经常会遇到从Oracle数据库读取中文数据时出现乱码的情况。这种情况不仅会影响用户体验,还会...
总的来说,通过在过滤器中设置合适的字符编码,我们可以有效地解决JSP应用中请求参数中文乱码的问题。需要注意的是,选择哪种字符编码取决于你的应用需求,不同的编码可能会适用于不同的环境和用户群体。此外,如果...
在解决中文乱码问题上,过滤器可以设置合适的字符编码,确保数据在传输过程中的正确性。 **三、JSP中文乱码过滤器的实现** 1. **创建Filter类**:首先,我们需要创建一个实现了`javax.servlet.Filter`接口的类,并...
为了有效解决这个问题,开发者通常会使用“中文过滤器”(或者叫做字符编码过滤器)。本篇将详细讲解如何利用这种过滤器来消除Java Web中的乱码问题。 首先,我们需要理解乱码产生的原因。在Java Web应用中,乱码...