将编码设置成GBK
package com.student.comm;
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;
protected FilterConfig filterConfig;
protected boolean ignore;
public SetCharacterEncodingFilter() {
encoding = null;
filterConfig = null;
ignore = true;
}
public void destroy() {
encoding = null;
filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (ignore || request.getCharacterEncoding() == null) {
String encoding = selectEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
} else {
request.setCharacterEncoding("gbk");
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null) {
ignore = true;
} else
if (value.equalsIgnoreCase("true")) {
ignore = true;
} else
if (value.equalsIgnoreCase("yes")) {
ignore = true;
} else {
ignore = false;
}
}
protected String selectEncoding(ServletRequest request) {
return encoding;
}
}
web.xml配置
<!-- =========================================== -->
<!-- ============ 过滤器映射 ============== -->
<!-- =========================================== -->
<!-- 字符编码过滤器映射 -->
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>
com.student.comm.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...
在实际项目中,我们可能需要编写一些测试用例来验证字符编码过滤器的效果,比如包含特殊字符的表单提交,或者不同编码的URL请求等。 6. **最佳实践** - 为确保整个应用的一致性,建议在所有的HTTP响应中都明确指定...
本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...
因此,编码过滤器的目的是确保所有的输入和输出都使用一致的字符编码。 JavaWeb中的Filter接口是实现编码过滤的关键。Filter是Servlet API的一部分,可以拦截HTTP请求和响应,进行预处理和后处理。在创建编码过滤器...
jsp 中的字符过滤器,屏蔽网页中或JFreeChart中的乱码问题
### 解决字符编码的过滤器知识点详解 #### 一、字符编码基础概念 在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制...
由于不同的字符集编码可能导致数据乱码,编码过滤器的职责就是统一这些编码,防止因编码不一致产生的问题。 在Java Web环境中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP...
总结,SSH框架下的中文乱码问题主要通过自定义过滤器解决,设置合适的请求和响应的字符编码。同时,对于不同的数据提交方式,如表单和JS,需要采取相应的解决方案。在实际开发中,确保整个数据传输过程中的字符编码...
Java过滤器是Java Web开发中的一个重要概念,它主要用于在HTTP...通过研究这个项目,开发者可以学习到如何在实际项目中应用过滤器,以及处理字符编码问题,这对于任何涉及用户输入和输出的Java Web应用都是至关重要的。
过滤器代码--解决jsp中的字符乱码问题,可以让你不在为字符的乱码担心。
本篇将详细讲解标题和描述中提到的四个有用的过滤器:防止浏览器缓存的过滤器、用户登录检测过滤器、字符编码过滤器以及资源保护过滤器。 1. **防止浏览器缓存的过滤器** 浏览器默认会缓存静态资源以提高加载速度...
在Java Web开发中,我们经常会遇到GET请求...总的来说,理解HTTP协议、Servlet Filter的工作原理以及字符编码的概念,是解决GET请求乱码问题的关键。同时,熟练运用这些知识能帮助我们构建更加健壮和国际化的Web应用。
在这个例子中,过滤器被用来设置请求和响应的字符编码。 4. **解决字符乱码** 要解决字符乱码,我们可以在过滤器中设置HttpServletRequest的`setCharacterEncoding()`方法,指定请求的编码方式,例如设置为UTF-8。...
Java字符过滤器,也称为字符编码转换器,是Java编程中处理字符编码问题的重要工具。在处理文本数据时,尤其是在网络传输或者读取不同编码格式的文件时,可能会遇到字符乱码的问题。Java过滤器就是为了解决这些问题,...
为了解决这个问题,我们可以创建一个字符编码过滤器,将请求和响应的编码统一设置为UTF-8。 ```java public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ...
4. **使用过滤器**:在Web应用的过滤器链中添加一个字符编码过滤器,例如`CharacterEncodingFilter`,在请求进入CXF之前将其转换为UTF-8。这样,即使客户端未指定正确的编码,也可以确保数据在进入CXF之前被正确转换...
以下是一个简单的字符编码过滤器的实现: ```java public class CharacterEncodingFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, ...
下面是一个简单的字符编码过滤器实现: ```java public class EncodingFilter implements Filter { private String encoding = null; @Override public void init(FilterConfig filterConfig) throws ...