网站大量收购闲置独家精品文档,联系QQ:2885784924

浏览器请求服务器get 和 post 乱码解决方案.doc

浏览器请求服务器get 和 post 乱码解决方案.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
问题:直接提交中文,会出现乱码 html页面: body form action=/day10/request1 method=get 用户名:input type=text name=username / br / 密码:input type=password name=password / br / input type=submit value=提交 / /form /body servlet 代码 Get 提交的中文乱码解决: POST提交的中文乱码解决: 第一种解决方案: 第二种解决方案: 这种方式只对 请求体 有效,算是post的偷懒方式。 Get 和 post 整合在一起: 将doPost() 和 doGet 直接整合在一起,post提交 中文会出现乱码? 去掉 先编码,再解码,post 的中文乱码解决,但是get方式出现 中文异常。 最终解决方案: 采用过滤器解决 request对象的包装对象 package cn.itcast.filter; import java.io.UnsupportedEncodingException; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; /** * HttpServletRequestWrapper这个对象就是对服务器创建的request对象的一个包装对象, * 那么我们对HttpServletRequestWrapper进行增强,就是对 服务器创建的request对象进行增强。 */ public class MyRequest extends HttpServletRequestWrapper { private HttpServletRequest request = null; // 防止重复编码标记 private boolean flag = false; public MyRequest(HttpServletRequest request) { super(request); // 将服务器创建的request对象传人我的自定义对象中 // 获取了服务器创建的request对象中的所有数据。 this.request = request; } // 对request对象的获取请求参数的方法进行增强 @Override public MapString, String[] getParameterMap() { // 获取请求方式 String method = this.request.getMethod(); if (post.equalsIgnoreCase(method)) { try { // 处理post方式中文乱码 this.request.setCharacterEncoding(utf-8); return this.request.getParameterMap(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return super.getParameterMap(); } } else if (get.equalsIgnoreCase(method)) { MapString, String[] map = this.request.getParameterMap(); if (flag) { // 如果已经编码过了,直接返回map return map; } if (map == null) { return super.getParameterMap(); } SetString keySet = map.keySet(); for (String key : keySet) { // 获取map集合的value值 String[] values = map.get(key); for (int i = 0; i values.length; i++) { try { String temp = new String(values[i].getBytes(iso-8859-1), utf-8

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档