在request中传递带运算符的表达式字符串

博客介绍了Java中URL参数传递的技巧。当提交链接时,request.getParameter获取的值可能不符合预期,如+号在Java中有特殊含义。可使用%2b代替+号,还列举了其他特殊字符的URL编码,如#对应%23等,同时给出不同场景下参数传递的处理方法。


(技巧,摘抄)

例如在网页中有一个链接,
……/mytest.jsp?id=1&ptdm=a+b
当我提交以后,使用request.getParameter("ptdm")得到的值不是a+b,而是a

如何能得到a+b 呢?


 

很简单

/mytest.jsp?id=1&ptdm=a%2bb

用%2b代替+号就可以了

+在java中是连接字符串运算符,而在座参数传递时参数不能传递一个表达式。所以如果a+b是表达式,最好先计算结果然后再传。如果就是想传递表达式,可以将这个表达式赋给一个字符串变量,然后传递这个变量,比如String a=a+b 传递用:mytest.jsp?id=1&ptdm=<%=a%>

如果只是传+,应该用下面的字符串代替特殊字符。

特殊特殊字符的含义
————————————————————————————
    字符        特殊字符的含义              URL编码
   #            用来标志特定的文档位置      %23
   %            对特殊字符进行编码          %25
   &            分隔不同的变量值对          %26
   +            在变量值中表示空格          %2B
   /            表示目录路径                %2F
   =            用来连接键和值              %3D
   ?            表示查询字符串的开始        %3F

如果+是连接的作用,那就用"mytest.jsp?id=1&ptdm="+a+b,然后传过去

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值