请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式

遇到的问题: 在一个地址链接(URL)里使用 url?param1=val1&param2=val2 的方式传递参数,结果在获取参数值时发现不是当初设定的值。

JS里设置参数

** window.location="some_web_project/xxx.jsp?param_key=abc#xyz";**

Java中取参数值

   ** Sting paramVal = request.getParameter("param_key");**

你会发现在 Java 中取到的值,不是设定的 abc#xyz ,而是 abc 。井号后面的值没了,包括井号本身。 因为URL中的井号(#)有其特殊的含义,表示位置(锚点)。 先给参数值编码,再传递即可。 将上面的JS代码改为:

**1 var param_val = encodeURIComponent("abc#xyz");**                                                       
**2 window.location="some_web_project/xxx.jsp?param_key=" + param_val;**

转载于:https://my.oschina.net/u/3601306/blog/1531819

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值