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 ...
最新文章
- 你的接口,真的能承受高并发吗?
- MySQL8.0启动服务的代码_MySQL8.0服务启动(windows10)
- Kaldi拜拜!PyTorch语音工具包SpeechBrain要来了,支持多种语音任务,实现最强水准...
- Linux系统目录结构说明
- 职场10不要【来自网络】
- n皇后问题java版
- Method Area(方法区)
- mannachar(马拉车)求最长回文子串
- 架构为什么要以领域为核心
- 第十三周编程总结--助教
- html中input描述,input的type值类型和描述-HTML
- 大话设计模式--外观模式 Facade -- C++实现实例
- vc服务器的作用,总结虚拟化服务器的好处
- 用java写一个博客网站
- 分享 27 个面向开发人员的最佳 Vue.js 开发工具
- 校园内网服务器维修视频,怎么搭建校园高清视频直播系统
- 功能测试怎么做?常用功能测试方法总结
- MGMT接口采集服务器IMM日志
- 线性加权平均 c语言程序,【求助】编的一个加权平均分计算程序,总是出错。求高手指点~...
- 使用bundletool从.aab构建安装.apks
热门文章
- K-periodic Garland
- Linux配置本地yum源(光盘镜像挂载)
- HTML无法显示下一页,为何我的浏览器不能直接打开下一页
- [历史]读大卫的《犹太人历史》
- [NEO解题报告]《Leetcode》00 - 汇总
- Chapter16/17-项目2:数据可视化
- linux如何克隆mac地址,科技常识:详解Linux系统中网卡MAC地址克隆方法
- BeagleBone Black– 智能家居控制系统 LAS - ESP8266 UDP 服务
- [翻译]Exploiting CVE-2015-0057 ——Part 1
- js日期加横杆_JS 替换日期的横杠为斜杠