package sino.person.web.filter;
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 CharacterEncodingFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
//判断如果客户端使用get方式提交参数,则对参数硬编码
HttpServletRequest request = (HttpServletRequest)req;
String method = request.getMethod();
if(method.equalsIgnoreCase("get")){
//获取地址栏中传递的所有参数名
Enumeration names = request.getParameterNames();
while(names.hasMoreElements()){
//获取每个参数名
String name = (String)names.nextElement();
//根据参数名,获取每个参数值
String[] ss = req.getParameterValues(name);
//对每个值进行字符编码
for(int i = 0; i < ss.length ; i++){
ss[i] = new String(ss[i].getBytes("iso-8859-1"),"gbk");
}
}
}
//如果使用post方式提交,则设置req和resp即可
request.setCharacterEncoding("gbk");
resp.setCharacterEncoding("gbk");
chain.doFilter(request, resp);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
分享到:
相关推荐
总结来说,处理中文乱码问题主要涉及到字符编码的统一,Java Servlet中的Filter是一个强大的工具,可以用来设置请求和响应的编码,确保数据传输的正确性。理解并熟练应用这些知识,能够有效避免在实际开发中遇到的...
在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一个新的过滤器,给它一个唯一的名称,例如`EncodingFilter`,并指定过滤器的实现类,如`com.filters.SetCharacterEncodingFilter`...
总结来说,使用Filter解决中文乱码问题是一种有效的方法,通过在请求处理链的早期设定合适的字符编码,可以避免因为编码不一致而导致的乱码问题。`CharacterEncodingFilter`的实现及其在`web.xml`中的配置是实现这一...
在这个文档中,我们将深入探讨如何使用Filter解决中文乱码问题。 首先,我们需要创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其中的`init`和`doFilter`方法。`init`方法在Filter初始化时...
### 中文乱码处理问题总结 #### 一、引言 在进行中文字符处理时,经常会出现乱码问题。这主要是因为不同的系统、程序或组件可能采用不同的编码方式,而这些编码方式之间的转换不当就会导致乱码现象。本文将重点...
6. **XML配置**:在`web.xml`中配置过滤器(Filter)可以全局处理乱码问题。例如,可以创建一个`CharacterEncodingFilter`,设置过滤器的`doFilter`方法来改变请求和响应的编码。 7. **IDE设置**:开发工具的编码...
处理 Java+jsp+mysql 开发 web 项目中文乱码问题 在 Java+jsp+mysql 开发 web 项目中,中文乱码问题是一个常见的问题,影响着项目的正常运行。下面我们将从四个方面来解决中文乱码问题: 一、Jsp 输出中文的乱码...
在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...
总的来说,解决Java中的乱码问题需要关注整个数据流动的过程,包括输入、处理、输出以及中间的转换环节,确保每个环节的编码设置正确且协调一致。通过了解这些知识点,可以有效地避免和解决乱码问题。
使用过滤器(Filter)是另一种处理乱码的常见方法。`filters.CharsetFilter` 类实现了 `Filter` 接口,它的主要任务是在请求到达Servlet之前,对请求参数进行编码转换。在 `init` 方法中,我们可以获取到在web.xml中...
开发者可以根据项目的具体情况选择合适的方法来解决中文乱码问题。此外,还需要注意编码的一致性,即确保整个项目中所用到的所有地方(包括数据库、文件系统等)都采用相同的编码标准,以避免出现乱码的情况。
### JSP中文乱码问题分析及处理方法 #### 一、问题根源剖析 JSP(Java Server Pages)作为Web开发中的一种技术,广泛应用于动态网页的生成。然而,在处理中文字符时,JSP经常会遇到“乱码”问题,即中文字符无法...
在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...
解决 POST GET 请求乱码问题 在 Web 开发中,POST 和 GET 请求可能会出现乱码...解决 POST 和 GET 请求乱码问题需要对服务器和应用程序进行配置和编码处理。在实际开发中,我们需要根据具体情况选择合适的解决方法。
- **处理乱码**:在`doFilter`方法中,对请求和响应进行编码设置。 ```java chain.doFilter(request, new HttpServletResponseWrapper(response) { @Override public ServletOutputStream getOutputStream() ...
本文将详细讲解如何利用过滤器来解决JavaWeb中的乱码问题。 首先,我们需要理解JavaWeb中的乱码产生的原因。当用户通过浏览器提交数据时,如果服务器接收到的数据编码与服务器内部处理编码不匹配,或者JSP页面的...
然而,在处理中文字符时,可能会遇到乱码问题,这主要体现在请求参数、响应内容或者静态资源显示上。解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置...
在Java Web开发中,我们经常会遇到GET请求参数乱码的问题,尤其是在处理包含中文字符的URL时。这个问题可以通过使用Servlet Filter来解决。过滤器(Filter)是Java Servlet API的一部分,允许我们在请求到达目标...
在Web开发中,尤其是涉及到Java...总的来说,解决Web项目中的中文乱码问题,关键是确保编码的一致性,并利用适当的编程手段进行转换或设置。对于大型项目,推荐使用过滤器进行全局处理,以减少代码重复并提高可维护性。
针对上述问题,我们可以采取以下几种方法来解决Struts框架下的乱码问题: 1. **设置正确的字符集**: - **在Tomcat配置文件中设置**:修改`server.xml`文件中的Connector节点,添加`URIEncoding="UTF-8"`属性,...