Filter 过滤器解决全站中文乱码问题
2014-12-23 20:34
435 查看
过滤器解决全站中文乱码问题大致分为两种:
① post 方式提交:在过滤器内使用 request.setCharacterEncoding("utf-8");即可解决
②GET方式提交: 需要掉包request对象
掉包request对象分为两步:
①写一个request装饰类 需要继承HttpServletRequestWrapper类,该类的重写代码
设计人员已经帮你写好
所以只需要重写getParameter方法即可
②在放行时,使用自己的request
具体代码如下:
过滤器解决全站中文乱码问题大致分为两种:
① post 方式提交:在过滤器内使用 request.setCharacterEncoding("utf-8");即可解决
②GET方式提交: 需要掉包request对象
掉包request对象分为两步:
①写一个request装饰类 需要继承HttpServletRequestWrapper类,该类的重写代码
设计人员已经帮你写好
所以只需要重写getParameter方法即可
②在放行时,使用自己的request
具体代码如下:
package com.mxf.filter; import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; /** * 装饰request * @author ma * */ public class EncodingRequest extends HttpServletRequestWrapper{ private HttpServletRequest req; public EncodingRequest(HttpServletRequest request) { super(request); this.req = request; } public String getParameter(String name) { String value = req.getParameter(name); try { value = new String(value.getBytes("ISO-8859-1"),"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return value; } } 过滤器的代码为: package com.mxf.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{ public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { /*String username = request.getParameter("username"); username = new String(username.getBytes("ISO-8859-1"),"utf-8");*/ HttpServletRequest req = (HttpServletRequest) request; if(req.getMethod().equalsIgnoreCase("get")) { /** * 处理GET请求乱码问题 */ /** * 掉包request * 1.写一个request装饰类 * 2.在放行时,使用自己的request */ EncodingRequest er = new EncodingRequest(req); chain.doFilter(er, response); }else if(req.getMethod().equalsIgnoreCase("post")) { /** * 处理post请求乱码问题 */ request.setCharacterEncoding("utf-8"); chain.doFilter(request, response); } } public void init(FilterConfig arg0) throws ServletException { } }
相关文章推荐
- 04_过滤器Filter_05_Filter解决全站中文乱码问题(POST方式)
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- 过滤器案例----解决全站中文乱码问题
- 使用过滤器Filter解决Java系统中中文乱码的问题
- 04_过滤器Filter_02_Filter解决中文乱码问题
- 用过滤器解决全站中文数据提交乱码问题
- 中文乱码问题解决,过滤器配置,get post提交乱码,filter,struts乱码,jsp乱码
- JSP过滤器(Filter)之实现全站解决中文提交乱码(包括get提交方式)
- Filter 解决全站中文乱码问题
- 使用过滤器解决全站中文乱码问题
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- [JSP] 利用Filter解决Servlet输出中文乱码的问题
- Filter全局解决中文乱码问题
- 过滤器 -- 解决中文乱码问题
- java web中配置Filter解决jsp中文乱码问题
- 在JSP中使用过滤器解决中文乱码问题
- 过滤器-解决中文乱码问题