URL的参数中有加号传值变为空格的问题(URL特殊字符)


Posted in Javascript onNovember 04, 2016

1.URL特殊字符需转义
2.空格换成加号(+)  
3.正斜杠(/)分隔目录和子目录  
4.问号(?)分隔URL和查询  
5.百分号(%)制定特殊字符  
6.#号指定书签  
7.&号分隔参数  

转义字符的原因:

如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。例如
表单的action为list.jsf?act=Go&state=5
则提交时通过request.getParameter可以分别取得act和state的值。
如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义

url转义字符原理:

将这些特殊的字符转换成ASCII码,格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
 
1.URL特殊符号及对应的十六进制值编码:  
2.
3.+  URL 中+号表示空格 %2B  
4.空格 URL中的空格可以用+号或者编码 %20  
5./ 分隔目录和子目录 %2F   
6.? 分隔实际的 URL 和参数 %3F   
7.% 指定特殊字符 %25   
8.# 表示书签 %23   
9.& URL 中指定的参数间的分隔符 %26   
10.= URL 中指定参数的值 %3D 

解决方法如下(以+号为例):

方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为?“%2B”,这样参数传到服务器端时就能得到“+”了。
方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有?“+”没有空格的情况。

例子:

String a = reuqest.getParameter("clientStr").replace(' ','+');

如果客户端为clientStr=test+OK,那么a的值为test+OK;

方法三、修改服务器端,将获取参数的方法由?reuqest.getParameter改为?request.getQueryString().substring(0),然后对得到的字符串进行解析。

例子:

String a =request.getQueryString().substring(0);

如果客户端为clientStr=test+OK,那么a的值为?clientStr=test+OK,需要再解析一下,

a=a.?substring(10);得到a的值为?test+OK。

附:一个JS,用来转义URL中特殊字符的。

function URLencode(sStr) {   
return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F'); 
}

如果你是用replace()时,使用name.replaceAll("\\ ","%20");

st_fname=name.replaceAll("\\ ","%20"); st_fname=dst_fname.replaceAll("\\+","%2B");

本人的解决方法:

js代码

function rStr(str){
str=str.replace(/\+/g,"%2B");
return str;
}

function SelectArcListA(fname){
 var posLeft = 10;
 var posTop = 10;
 window.open("content_select_list.asp?f="+fname+"&k="+escape(rStr(form1.tag.value)), "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=700,height=500,left="+posLeft+", top="+posTop);
}

asp端替换代码

keyword=replace(keyword,"%2B","+")

完美解决问题。

Javascript 相关文章推荐
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
jQuery1.6 正式版发布并提供下载
May 05 Javascript
jQuery右键菜单contextMenu使用实例
Sep 28 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
Mar 13 Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 Javascript
《JavaScript函数式编程》读后感
Aug 07 Javascript
jQuery UI设置固定日期选择特效代码分享
Aug 27 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
layerUI下的绑定事件实例代码
Aug 17 Javascript
Angular页面间切换及传值的4种方法
Nov 04 #Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 #Javascript
RGB和YUV 多媒体编程基础详细介绍
Nov 04 #Javascript
javascript设置文本框光标的方法实例小结
Nov 04 #Javascript
使用Curl命令查看请求响应时间方法
Nov 04 #Javascript
JS创建对象的写法示例
Nov 04 #Javascript
微信公众号支付H5调用支付解析
Nov 04 #Javascript
You might like
php中神奇的fastcgi_finish_request
2011/05/02 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
用客户端js实现带省略号的分页
2013/04/27 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
python爬虫请求头设置代码
2020/07/28 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
会计专业自我鉴定
2014/02/10 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
化学教育专业求职信
2014/07/08 职场文书
介绍信样本
2015/01/31 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript