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 = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
// 设置申请对象的值为空,有利于内存资源的快速释放
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
// filter的主体操作
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 判断是否需要进行编码的设置
if (!ignore || request.getCharacterEncoding() == null) {
// 得到配置文件中的编码类型
String encoding = setEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
}
}
chain.doFilter(request, response);
}
protected String setEncoding(ServletRequest request) {
return this.encoding;
}
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 = false;
} else if (value.equalsIgnoreCase("false")) {
this.ignore = true;
} else if (value.equalsIgnoreCase("no")) {
this.ignore = true;
} else {
this.ignore = false;
}
}
}
web.xml
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>myservlets.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
还可以设置ignore参数,当其值为no或者false时,这个filter将不工作!
分享到:
相关推荐
【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...
很烦人哦,那就试试这个吧,可以解决所有的乱码,里面有说明教你怎么配”中,主要涉及的知识点是通过配置Servlet过滤器来解决JSP页面与Servlet交互时的字符编码问题。 首先,我们需要理解为什么会出现乱码。乱码...
### Servlet过滤器解决乱码问题 在Web应用开发过程中,字符编码问题经常出现,尤其是在处理中文等多字节字符时。如果不正确地设置字符编码,可能会导致页面显示乱码。本文将详细介绍如何通过Servlet过滤器来解决这...
在Java Web开发中,Servlet和JSP是两个重要的技术组件,它们经常被用来构建动态网页。然而,在处理中文字符时,由于编码不一致或者处理不当,可能会出现中文乱码问题。这个问题困扰了很多开发者,但通过了解编码原理...
本篇文章将详细讲解如何处理JSP中的中文乱码以及如何通过过滤器(Filter)来解决这一问题。 首先,中文乱码的处理主要涉及到字符集(Charset)的概念。在JSP中,当请求参数包含中文字符时,如果不设定字符编码,...
总之,解决JavaWeb中的乱码问题需要从多个层面进行考虑:设置过滤器统一请求和响应的编码,确保JSP页面的编码正确,以及在处理文件时注意文件内容的编码。通过这些方式,我们可以有效防止和解决乱码问题,提高应用...
### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...
在JSP开发中,中文乱码问题是一个常见的挑战...通过理解过滤器的工作原理并正确地在开发中应用,我们可以有效地避免JSP开发中的中文乱码问题,提高用户体验。同时,这也是提升Java Web应用性能和安全性的常用手段之一。
jsp 用过滤器解决中文乱码问题的方法 jsp(JavaServer Pages)是一种广泛应用于Web开发的技术,但是在实际开发中,我们经常会遇到中文乱码问题。为了解决这个问题,我们可以使用jsp过滤器来实现编码设置。我今天要...
过滤器在Servlet容器中扮演着拦截请求和响应的角色,可以在请求到达目标资源(如JSP页面)之前对其进行预处理,包括设置合适的字符编码,以确保中文字符正确解析。下面将详细介绍如何使用过滤器来解决这个问题。 ...
本文将深入探讨JSP中文乱码过滤器的工作原理、实现方法以及如何在项目中应用。 **一、乱码问题的来源** 在JSP页面中,如果服务器和客户端的字符编码不一致,就可能导致乱码。常见的编码格式有GBK、UTF-8等。例如,...
在`web.xml`中配置这个过滤器,确保它应用于所有需要处理的请求路径,以避免在各个页面和Servlet中重复设置编码。 总结来说,解决JSP页面中文乱码问题的关键在于保持字符编码的一致性,从编辑器保存文件的编码、JSP...
本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 什么是过滤器 在Servlet中,过滤器是一个可以在客户端请求到达Servlet之前或之后执行某些操作的对象。过滤器可以在客户端请求到达Servlet之前对请求...
本文将详细介绍如何在Servlet与JSP中彻底解决中文乱码问题,并给出具体的解决方案。 #### 二、中文乱码的原因分析 中文乱码主要由以下几个原因引起: 1. **服务器端编码设置不正确**:如果服务器端的字符集设置与...
本篇将深入讲解Java Servlet过滤器的配置,包括`EncodingFilter`类的使用、jsp页面配置以及`web.xml`文件的配置。 首先,`EncodingFilter`是一个常见的过滤器,主要用于解决HTTP请求和响应中的编码问题。在处理中文...
jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码问题。这是因为在 HTTP 请求中,默认的编码方式是 ...
该方案通过设置每个页面的编码格式为utf-8,控制器servlet中的请求编码格式为utf-8,数据库连接url中添加useUnicode=true&characterEncoding=UTF-8参数,编写filter过滤器设置请求和响应的编码格式为gb2312,最后...
- 应用程序全局设置统一的字符编码,比如在Web.xml中添加过滤器来统一设置请求的编码方式,确保整个应用程序的数据编码一致性。 #### 总结 在Java Web开发中,理解和解决乱码问题是确保应用正常运行的重要一环。...
在Java Web中,过滤器是Servlet API的一部分,它允许我们在请求到达目标Servlet或JSP之前以及响应离开应用程序之后对请求和响应进行拦截和处理。通过过滤器,我们可以实现诸如字符编码转换、权限验证、日志记录等...
Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...