URL中带特殊字符的处理方式
我们知道发送一个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中带特殊字符的处理方式相关推荐
- android处理url中的特殊字符
java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...
- java处理url中的特殊字符%等
java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...
- java 特殊字符过滤器_java处理url中的特殊字符
java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...
- urlencode quote unquote (url 中带中文参数)
目录: urlencode & quote & unquote (url 中带中文参数) python httplib urllib urllib2区别(一撇) 当url地址含有中文或 ...
- 在URL中传递中文的解决方式
在URL中传递中文的解决方式 2015年05月13日 17:13:55 thinkinglink 阅读数:10321 标签: URL编码中文编码乱码解决 更多 个人分类: web前端 在URL中传递中 ...
- ASP.NET MVC Url中带点号出现404错误的解决方案
ASP.NET MVC Url中带点号出现404错误的解决方案 参考文章: (1)ASP.NET MVC Url中带点号出现404错误的解决方案 (2)https://www.cnblogs.com/ ...
- 关于将URL中的特殊字符进行转码和解码
当前开发中,遇到特殊情况: 使用url进行跨页面(跨域)传值的时候,会出现某些带特殊字符的url,在浏览器上被处理了,例如: 后端传给前端的跳转路径: http://127.0.0.1:8088/ha ...
- [故障引起的故事]URL中带加号(+)的处理
问题起因: 客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取co ...
- JS中URL中的特殊字符问题:escape,encodeURI,encodeURIComponent(转)
在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误.在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原 ...
- Nginx配置 转发URL中包含特殊字符
Nginx经常被用来作为代理服务器,可以有效的避免跨域问题. 老项目需要对接一个新的服务,但是存在跨域问题,然后就配置了一个代理 可是突然在某天,新接口出现了异常.接口报了400错误. # 转发 lo ...
最新文章
- mysql本周函数_MySQL的YEARWEEK函数以及查询本周数据_MySQL
- maven打包项目的时候找不到jar包,但是项目里面改已经有相关jar包
- 数据库系统的三级模式结构知识笔记
- 使用spring实现邮件的发送(含测试,源码,注释)
- c:forEach varStatus属性
- 最佳的75个安全检测工具
- 决定局域网特性的三要素
- 金融工程 | 远期与期货概述
- 企业能源管控平台在钢铁行业能源管理中的应用
- OLED屏幕笔记本 | 看久了眼睛不舒服 | 调整
- 8种适用于不同机器学习问题的常用数据集
- Oracle中的dual是什么
- Jetson Nano通过笔记本实现网络连接
- [Unity官方文档翻译]Downloading and Installing Unity下载和安装unity教程
- ATM系统--分析类图
- 在MySQL命令行下如果输错了命令怎么办?
- 广州大学2020操作系统实验二:银行家算法
- python实现画板_一起看看python+pygame简单画板实现代码实例
- php实现助记词转TRX,ETH 私钥和钱包地址
- JQuery使用Datatable插件(二)——使用AJAX与后端交互
热门文章
- 重启PocketPC移动设备
- oracle归档日志 delete obsolete 保留一次全备,DELETE OBSOLETE不删除归档日志以及归档的备份集...
- 用Excel做直方图(2):频率分布直方图
- Unity | 部分区域自由截图
- 5 款开源的 Linux 策略模拟游戏 | Linux 中国
- 搜狐自媒体还是蛮拼的 竟拉着加多宝做了一档美食节目
- 自建exchange邮箱有什么成熟的超大附件解决方案?
- Anaconda3 安装 Python库,出现No module named的问题
- java logger 乱码_Log4j乱码
- 项目Beta冲刺(6/7)(追光的人)(2019.5.28)