我们知道发送一个http请求时,如果使用的是GET方法,请求的参数会包含在url中并通过&进行分割,如:http://www.example.com/index?name=name1&id=id2。服务端根据url中的参数获取对应的值。java编写的后台代码,可通过HttpServletRequest的方法getParameter("name")获取name的值:name=name1.

事实上HttpServletRequest获取参数是对字符串"?name=name1&id=id2"进行拆分,根据"&"分割出参数名称,根据"="分割出参数值。那么问题来了,如果我们的name里面本身就包含有&或者=,如name="na&me=1",如果发送http请求前不做相应的处理,url就变成了http://www.example.com/index?name=na&me=1&id=id2,这个时候后台解析出来的参数就变成了:name=na;me=1;id=id2,这显然不是我们想要的结果。

面对这个情况的解决方法是对url中存在歧义的字符串进行URL编码。URL编码就是使用一种安全的字符去表示不安全的或存在歧义的字符,”na&me=1"经过URL编码后的值为:na%26me%3d1,这个时候我们发送http请求的url改为:http://www.example.com/index?name=na%26me%3d1&id=id2,服务端进行解码后解析参数便可获得正确的值:name="na&me=1"。

具体URL编码解码规则可参考:http://www.w3school.com.cn/tags/html_ref_urlencode.html。

URL中带特殊字符的处理方式相关推荐

  1. android处理url中的特殊字符

    java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...

  2. java处理url中的特殊字符%等

    java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...

  3. java 特殊字符过滤器_java处理url中的特殊字符

    java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...

  4. urlencode quote unquote (url 中带中文参数)

    目录: urlencode & quote & unquote (url 中带中文参数) python httplib urllib urllib2区别(一撇) 当url地址含有中文或 ...

  5. 在URL中传递中文的解决方式

    在URL中传递中文的解决方式 2015年05月13日 17:13:55 thinkinglink 阅读数:10321 标签: URL编码中文编码乱码解决 更多 个人分类: web前端 在URL中传递中 ...

  6. ASP.NET MVC Url中带点号出现404错误的解决方案

    ASP.NET MVC Url中带点号出现404错误的解决方案 参考文章: (1)ASP.NET MVC Url中带点号出现404错误的解决方案 (2)https://www.cnblogs.com/ ...

  7. 关于将URL中的特殊字符进行转码和解码

    当前开发中,遇到特殊情况: 使用url进行跨页面(跨域)传值的时候,会出现某些带特殊字符的url,在浏览器上被处理了,例如: 后端传给前端的跳转路径: http://127.0.0.1:8088/ha ...

  8. [故障引起的故事]URL中带加号(+)的处理

    问题起因:       客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取co ...

  9. JS中URL中的特殊字符问题:escape,encodeURI,encodeURIComponent(转)

    在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误.在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原 ...

  10. Nginx配置 转发URL中包含特殊字符

    Nginx经常被用来作为代理服务器,可以有效的避免跨域问题. 老项目需要对接一个新的服务,但是存在跨域问题,然后就配置了一个代理 可是突然在某天,新接口出现了异常.接口报了400错误. # 转发 lo ...

最新文章

  1. 你的接口,真的能承受高并发吗?
  2. MySQL8.0启动服务的代码_MySQL8.0服务启动(windows10)
  3. Kaldi拜拜!PyTorch语音工具包SpeechBrain要来了,支持多种语音任务,实现最强水准...
  4. Linux系统目录结构说明
  5. 职场10不要【来自网络】
  6. n皇后问题java版
  7. Method Area(方法区)
  8. mannachar(马拉车)求最长回文子串
  9. 架构为什么要以领域为核心
  10. 第十三周编程总结--助教
  11. html中input描述,input的type值类型和描述-HTML
  12. 大话设计模式--外观模式 Facade -- C++实现实例
  13. vc服务器的作用,总结虚拟化服务器的好处
  14. 用java写一个博客网站
  15. 分享 27 个面向开发人员的最佳 Vue.js 开发工具
  16. 校园内网服务器维修视频,怎么搭建校园高清视频直播系统
  17. 功能测试怎么做?常用功能测试方法总结
  18. MGMT接口采集服务器IMM日志
  19. 线性加权平均 c语言程序,【求助】编的一个加权平均分计算程序,总是出错。求高手指点~...
  20. 使用bundletool从.aab构建安装.apks

热门文章

  1. K-periodic Garland
  2. Linux配置本地yum源(光盘镜像挂载)
  3. HTML无法显示下一页,为何我的浏览器不能直接打开下一页
  4. [历史]读大卫的《犹太人历史》
  5. [NEO解题报告]《Leetcode》00 - 汇总
  6. Chapter16/17-项目2:数据可视化
  7. linux如何克隆mac地址,科技常识:详解Linux系统中网卡MAC地址克隆方法
  8. BeagleBone Black– 智能家居控制系统 LAS - ESP8266 UDP 服务
  9. [翻译]Exploiting CVE-2015-0057 ——Part 1
  10. js日期加横杆_JS 替换日期的横杠为斜杠