全站编码问题 请求和响应编码的处理
2015-08-03 19:31
363 查看
当GET请求有中文时,对其编码工作很复杂。 可以通过过滤器的方法,实现其编码的便捷式。 GET请求时需要装饰HttpServletRequest
创建过滤器,过滤中文编码
package cn.itcast.filter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; public class EncodingRequest extends HttpServletRequestWrapper { private HttpServletRequest request; public EncodingRequest(HttpServletRequest request) { super(request); this.request=request; } @Override public String getParameter(String name) { String value =request.getParameter(name); try{ value = new String(value.getBytes("iso-8859-1"),"utf-8"); }catch (Exception e) { // TODO: handle exception } return value; } }
创建过滤器,过滤中文编码
package cn.itcast.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() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpServletRequest req = (HttpServletRequest) request; if (req.getMethod().equalsIgnoreCase("GET")) { EncodingRequest er = new EncodingRequest(req); chain.doFilter(er, response); //GET请求时,掉包request } else { chain.doFilter(request, response); } } public void init(FilterConfig fConfig) throws ServletException { } }
相关文章推荐
- poj-1860-Currency Exchange-Bellman
- hdu 1045 Fire Net(最大流)
- boost使用出现问题
- 【leetcode】Search a 2D Matrix II
- 自定义的ListView 点击事件无响应解决办法
- USACO 2.1.4 Healthy Holsteins
- smb
- ios例子
- Linux多线程——使用信号量同步线程
- poj2065--SETI(高斯消元)
- Eclipse删除workspace的技巧
- PHotoshop -----仿制图章工具-----对齐:的作用是什么?
- Pie
- SWT中的拖放支持
- Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8
- 2097 Sky数
- 安卓NDK 问题 Unresolved inclusion: <jni.h> 解决方案
- javafx 运行在android上遇到的难题-完美解决
- html5 cache manifes异常问题
- 浅谈安卓中的LayoutInflater