利用过滤器实现全局编码
来源:互联网 发布:java解析http请求 编辑:程序博客网 时间:2024/06/02 02:40
一般在servlet 得到表单的数据的时候,都是 request.getParameter(name);来得到的,这有时候会得到乱码,所以用request.setCharacterEncoding(); 来设置,但是也只能解决post方式提交的,所以使用过滤器来统一解决,解决思路就是我自己有一个request 对象一些getParameter方法,里面处理好了编码,你调用我就可以了,以后调用request.getParameter(name)就是包装后的request对象和包装后的方法,是通过过滤器传递过来包装后的request对象!
Filter类 实际上对request 进行包装
public void doFilter(ServletRequest request, ServletResponse arg1,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request
req=new MyRequest(req); 相当于MyRequest myreq=new MyRequest(req);
filterChain.doFilter(req, arg1);//把包装好啊的request传递给servlet
}
MyRequest类
public class MyRequest extends HttpServletRequestWrapper { HttpServletRequest request; public MyRequest(HttpServletRequest request) { super(request); this.request=request; } @Override public String getParameter(String name) { Map<String, String[]> map = getParameterMap(); return map.get(name)[0]; } @Override public String[] getParameterValues(String name) { Map<String, String[]> map = getParameterMap(); return map.get(name); } private boolean flag = true; @Override public Map<String, String[]> getParameterMap() { Map<String, String[]> map = super.getParameterMap();// 可能乱码 调用原始的方法 //下面是对通过调用原始map集合里面的数据进行 编码 if (flag) { for (Map.Entry<String, String[]> m : map.entrySet()) { String[] values = m.getValue(); for (int i = 0; i < values.length; i++) { try { values[i] = new String( values[i].getBytes("iso-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } flag = false; } return map; }}
阅读全文
0 0
- 利用过滤器实现全局编码
- 全局编码过滤器--encodingFilter
- 利用过滤器实现request的编码转换
- 利用过滤器实现字符编码的控制
- 全局过滤器解决编码问题
- filter过滤器解决全局编码问题
- 全局编码过滤器(Filter)详解
- 使用Filter实现编码过滤器
- Servlet实现字符编码过滤器
- 解析通过web.xml文件控制利用过滤器实现编码格式步骤
- java网络编程--解析通过web.xml文件控制利用过滤器实现编码格式步骤
- servlet中,利用过滤器编码设置
- CXF利用过滤器实现身份验证
- 利用FilenameFilter实现图片过滤器
- 【JavaWeb-12】Listener监听3个方面、Filter过滤器、全局编码过滤器案例
- 利用编码实现界面
- 过滤器接口与实现字符编码过滤器实例
- 过滤器接口与实现字符编码过滤器实…
- 指令格式
- 一篇很全面的freemarker教程(一)
- java工具类方法记录
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- 前端css基础知识(4)
- 利用过滤器实现全局编码
- c++11 内存模型解读
- Java基础杂谈(五)之toString函数
- 数据开源
- vue2.0 keep-alive最佳实践
- java 网络数据接口数据爬取小脚本 源码+exe应用小程序+复制可用
- 【Java基础总结】-Java笔试易错点 第二篇
- node.js工程的结构
- Hive中那些有趣的字符串函数