乱码问题的解决方案(通过设置过滤器来实现)
来源:互联网 发布:国内数据库 编辑:程序博客网 时间:2024/05/03 21:00
乱码问题,究其原因,都是所使用的字符集不一样所导致的。解决方法也有很多种。以下介绍的的事通过设置过滤器
来实现的方法
1、EncodingFilter
package com.njupt.filter;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;import javax.servlet.http.HttpServletRequest;public class EncodingFilter implements Filter {@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {System.out.println("filter起作用啦啦啦啦");HttpServletRequest req = (HttpServletRequest)request;String method = req.getMethod();if("GET".equals(method)){EncodingHttpServletRequestWrapper wrapper = new EncodingHttpServletRequestWrapper(req);chain.doFilter(wrapper, response);}else{chain.doFilter(request,response);}}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}
2、EncodingHttpServletRequestWrapper
package com.njupt.filter;import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class EncodingHttpServletRequestWrapper extendsHttpServletRequestWrapper {private HttpServletRequest request;public EncodingHttpServletRequestWrapper(HttpServletRequest request){super(request);this.request = request;}@Overridepublic String getParameter(String name) {String value = request.getParameter(name);if(value != null){String data = null;try {data = new String(value.getBytes("iso-8859-1"),"utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return data;}return super.getParameter(name);}}
需要注意的是,写完了Filter,记得要在web.xml中配置上,配置代码如下:
<filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.njupt.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
而且,这时候,JSP页面的编码要显式指明是UTF-8,否则,也很可能开始乱码。代码如下:
<%@ page contentType="text/html; charset=utf-8" %>
- 乱码问题的解决方案(通过设置过滤器来实现)
- 使用过滤器来处理get提交的中文乱码问题
- Jsp乱码问题的基本解决方案,转码 + 过滤器 Filter
- Java web 乱码问题过滤器的正确设置
- java通过jxl来读取excel的乱码问题
- 客户端通过http访问服务器端乱码问题的解决方案
- 过滤器实现get请求乱码问题
- 过滤器实现get请求乱码问题
- 过滤器实现get请求乱码问题
- 过滤器实现get请求乱码问题
- ajax实现省级联动以及网站项目中通过写一个过滤器全局配置解觉整个网站的乱码问题
- Servlet中通过过滤器实现统一的手动编码(解决中文乱码)
- Servlet中通过过滤器实现统一的手动编码(解决中文乱码)
- 过滤器用来拦截用户是否登录访问权限的问题(通过session来进行拦截)
- 用过滤器来解决JSP中文乱码问题
- 使用过滤器和request装饰增强来彻底解决乱码问题
- 用过滤器来解决JSP中文乱码问题
- JavaWeb中使用过滤器来解决中文乱码问题
- jps、jinfo、jstat、jstack、jmap、jconsole等命令简介
- [poj 2752] Seek the Name, Seek the Fame[KMP]
- 定义一个ImageVIew出现警告的去除办法
- java中将图片保存到数据库中
- 连接错误
- 乱码问题的解决方案(通过设置过滤器来实现)
- Spring源代码解析(七):Spring AOP中对拦截器调用的实现
- 拼音转数字
- 开发注意:在IE和FF中 insertRow和insertCell的区别
- ios tableView那些事 (十三) 给 tableview 添加索引
- Spring源代码解析(八):Spring驱动Hibernate的实现
- string 类应用
- spring junit测试
- RTP/AVP audio and video payload types