博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式
阅读量:7089 次
发布时间:2019-06-28

本文共 586 字,大约阅读时间需要 1 分钟。

遇到一个问题

在一个地址链接(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代码改为

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

小结

如果请求(Request)的参数(Parameter)里包含特殊字符,记得将参数值编码

encodeURIComponent(SPECIAL_VALUE)

 

转载地址:http://dgyql.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
场景切换
查看>>
SpringBoot 2.x工程初始化(一)
查看>>
B-Tree
查看>>
Jsoup清除HTML标签(非白名单)
查看>>
JavaWeb知识整理
查看>>
zabbix监控TCP状态
查看>>
基本概念之变量
查看>>
挨踢部落故事汇(4):程序猿的跳槽感悟
查看>>
IIS7配置支持PHP方法
查看>>
JSP中自定义标签(结合easyui)——JSP中的TAG
查看>>
libpcap详解
查看>>
冯斌:JavaFx实例(十二)“ColorText”
查看>>
Linux中分析和排查系统故障
查看>>
Elasticsearch常用的的RESTful API
查看>>
低版本ie运行html5+css3的网站方法
查看>>
ruby对文件和目录的基本操作
查看>>
PowerDesign16.5( 32位) 数据库建模
查看>>
Linux下搭建gtk+2.0和3.0开发环境
查看>>
springmvc学习笔记--ueditor和springmvc的集成
查看>>