url转义字符

url转义字符

url转义字符原理

如果表单的action为list.jsf?act=go&state=5

则提交时通过request.getParameter可以分别取得act和state的值。

如果你的本意是act='go&state=5'这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义

[预备知识]
 
        对与通过get方式提交的url,浏览器在提交前首先根据http协议把一一个的参数及其值解析配对。而url的参数间是通过&分割的,这就是浏览器进行参数配置的分割依据。如果你的参数值中含有&等url特殊字符,那么你在服务器端就会拿到意想不到的值。所以必须对url的特殊字符进行转义。
编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
下表中列出了一些URL特殊符号及编码

      十六进制值
1. +  URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. /  分隔目录和子目录 %2F 
4. ?  分隔实际的 URL 和参数 %3F 
5. % 指定特殊字符 %25 
6. # 表示书签 %23 
7. & URL 中指定的参数间的分隔符 %26 
8. = URL 中指定参数的值 %3D

所以上述的action你应该写成list.jsf?act=go%26state=5

用url转义字符,帮我解决了批量打印的问题.

我的原路径是:

var url = "/EIIMSWeb/ReportServer?reportlet=/com/doc/rpt_PartHouseScale_Cover.cpt&reportlet_1=/com/doc/rpt_PartHouseScale_TrustDeed.cpt&reportlet_2=/com/doc/rpt_Scale_Parthouse.cpt&reportlet_3=/com/doc/rpt_PartHouseScale_Fruit_Show.cpt&reportlet_4=/com/doc/rpt_PartHouseScale_Public_Area.cpt";

window.open("/EIIMSWeb/co_BBase/frmPdfBatchPrint.jsp?url=" + url + "&bseq=" + "20081003663")时,在frmPdfBatchPrint.jsp中alert(url)时,只获取到了"/EIIMSWeb/ReportServer?reportlet=/com/doc/rpt_PartHouseScale_Cover.cpt&bseq=20081003663",那是因为把url作为参数向frmPdfBatchPrint.jsp传递时,默认的将路径中的reportlet_1,reportlet_2........也作为了参数,但是在frmPdfBatchPrint.jsp中没有对reportlet_1,reportlet_2........进行参数定义,我也不能那样去定义,所以只能把url作为一个整体发送到frmPdfBatchPrint.jsp中,才能实现功能,我把url中的&用%26替换就可以了.

也许兄弟们遇到这个问题,但我还是要写下来.

在这里也要谢谢我朋友沈岩的帮忙.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值