url传参特殊字符问题
来源:互联网 发布:宏和网络 编辑:程序博客网 时间:2024/06/05 22:52
function edit(zcname,xmname){
var empcode='${empcode}';
zcname=encodeURIComponent(zcname);
location.href = "toEditZclx.do?zcname=" + zcname+"&EmpCode="+empcode;
}
该段代码是将zcname,empcode参数使用url的方式传递到后台toEditZclx.do中作为参数使用。
如果传入的参数zcname或者empcode中存在特殊的字符,例如zcname=123&456,此时后台request.getParameter(“zcname”);接收的数据则变成了456.
解决办法
1.方法一
Java对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent
js中,你通过url传值,需要这样:
function updatePLChild(name){
//先对参数进行编码
name = encodeURIComponent(name);
location.href="newLessonPlan.do?name="+name;
}
这样的话,你传的大多数带特殊符号的参数,都能在后台拿到,但是,
经过自己测试发现:
url中可能用到的特殊字符及在url中的经过编码后的值:(此表格借鉴)
#
用来标志特定的文档位置
%23
%
对特殊字符进行编码
%25
&
分隔不同的变量值对
%26
+
在变量值中表示空格
%2B
/
表示目录路径
%2F
\
表示目录路径
%5C
=
用来连接键和值
%3D
?
表示查询字符串的开始
%3F
空格
空格
%20
.
句号
%2E
:
冒号
%3A
假如你的参数是上方的url编码值,比如%23、%25这些,那么后台接收到的值,就是其对应的字符。
比如传值"%23",接收到的值就是"#"。
尽量避免此种传值的情况的产生。
2.方法2
使用ajax,或者其他方式传递参数。
- url传参特殊字符问题
- url传参特殊字符问题(%#等)
- url中的特殊字符问题
- url中的特殊字符问题
- url中的特殊字符问题
- url中的特殊字符问题
- url特殊字符转义问题
- url中的特殊字符问题
- url传参中的特殊字符
- ExtJs处理URL传参特殊字符(+/?#...)
- URL特殊字符传参解决办法
- 用URL传参带特殊字符的问题!
- java url 传递特殊字符转译问题
- URL特殊字符问题1例
- url中特殊字符编码的问题
- url传参,特殊字符截断问题
- URL的参数中有加号传值的问题(URL特殊字符)
- 关于url传参特殊字符的处理办法
- 韩顺平servlet学习笔记05-servletContext
- 删除排序数组中的重复数字-LintCode
- SQL Server 2008 角色
- tensorflow:tf.stack的用法
- html实现 页面禁止右键 禁止复制 禁止图片拖动 禁止复制和剪切
- url传参特殊字符问题
- SVN被锁定而无法提交的问题
- ps去除水印的六种方法
- 909422229_Linux常用命令总结
- tcp/ip 传输的整个过程
- HFOI2017.07.11校内赛(普及组)题解
- 人工智能各大分支技术
- L2-006. 树的遍历
- JDK 动态代理实现原理