我们知道发送一个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. mysql本周函数_MySQL的YEARWEEK函数以及查询本周数据_MySQL
  2. maven打包项目的时候找不到jar包,但是项目里面改已经有相关jar包
  3. 数据库系统的三级模式结构知识笔记
  4. 使用spring实现邮件的发送(含测试,源码,注释)
  5. c:forEach varStatus属性
  6. 最佳的75个安全检测工具
  7. 决定局域网特性的三要素
  8. 金融工程 | 远期与期货概述
  9. 企业能源管控平台在钢铁行业能源管理中的应用
  10. OLED屏幕笔记本 | 看久了眼睛不舒服 | 调整
  11. 8种适用于不同机器学习问题的常用数据集
  12. Oracle中的dual是什么
  13. Jetson Nano通过笔记本实现网络连接
  14. [Unity官方文档翻译]Downloading and Installing Unity下载和安装unity教程
  15. ATM系统--分析类图
  16. 在MySQL命令行下如果输错了命令怎么办?
  17. 广州大学2020操作系统实验二:银行家算法
  18. python实现画板_一起看看python+pygame简单画板实现代码实例
  19. php实现助记词转TRX,ETH 私钥和钱包地址
  20. JQuery使用Datatable插件(二)——使用AJAX与后端交互

热门文章

  1. 重启PocketPC移动设备
  2. oracle归档日志 delete obsolete 保留一次全备,DELETE OBSOLETE不删除归档日志以及归档的备份集...
  3. 用Excel做直方图(2):频率分布直方图
  4. Unity | 部分区域自由截图
  5. 5 款开源的 Linux 策略模拟游戏 | Linux 中国
  6. 搜狐自媒体还是蛮拼的 竟拉着加多宝做了一档美食节目
  7. 自建exchange邮箱有什么成熟的超大附件解决方案?
  8. Anaconda3 安装 Python库,出现No module named的问题
  9. java logger 乱码_Log4j乱码
  10. 项目Beta冲刺(6/7)(追光的人)(2019.5.28)