黑马程序员技术交流社区
标题:
【黑马程序员济南】request获取get请求中带特殊符号的参数
[打印本页]
作者:
大山哥哥
时间:
2017-11-30 20:25
标题:
【黑马程序员济南】request获取get请求中带特殊符号的参数
本帖最后由 大山哥哥 于 2017-11-30 20:25 编辑
request.getParameter("变量名")获取的字符串中原来的加号变成了"空格",url传值(即get方式传参)
附项目代码,在文章最后
在以前工作的时候遇到了一个有趣的问题。我在调程序时,我用ajax从前台显示页面传字符串变量给处理页面,出现了件怪事,我想传的内容是abc+,但接收以后用 System.out.println()输出是abc空格。就这个简单问题进行了以下简单测试。
代码演示:
1.代码准备
准备一个servlet,如下图:
1.png
(143.84 KB, 下载次数: 10)
下载附件
2017-11-30 20:05 上传
两个页面:index.jsp发送请求,success.jsp展示结果
2.png
(38.2 KB, 下载次数: 20)
下载附件
2017-11-30 20:09 上传
2.正式开始测试(zip中是个小视频,就是代码演示)
代码演示.zip
(5.88 MB, 下载次数: 72)
2017-11-30 20:15 上传
点击文件名下载附件
代码演示视频
总结:
原因: url中有些字符被转义,比如空格被编码成加号,于是传的参数明明是加号,获取的值却成了空格。如何解决呢?如果是通过url传递参数,应该对其进行必要的编码。
解决办法:
在javascript中加入 function URLencode(sStr)
{
return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}
对字符串中特殊的字符进行处理.如:var str=URLencode("abc+");
希望以上内容能对大家有所帮助,同时欢迎大牛们指正代码的不足之处,共同学习,共同进步,谢谢!
项目代码:
requestGetParam.zip
(9.91 KB, 下载次数: 66)
2017-11-30 20:18 上传
点击文件名下载附件
项目代码
作者:
尹哈哈哈
时间:
2017-12-4 14:19
很实用。支持下楼主
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2