由于#字符,Servlet剥离参数值

时间:2015-07-01 13:25:04

标签: servlets url-encoding querystringparameter

我的网址为http://175.24.2.166/download?a=TOP#0;ONE=1;TWO2

我应该如何对参数进行编码,这样当我在Servlet中打印参数时,我会得到整个值?目前,当我使用request.getParameter("a")打印值时,我将输出设为TOP而不是TOP#0;ONE=1;TWO2

2 个答案:

答案 0 :(得分:1)

这称为“片段标识符”。

wiki

中所述

由哈希标记#引入的片段标识符是文档URL的可选最后部分。它通常用于标识该文档的一部分。 #之后的部分是客户端的信息。把客户需要的一切都放在这里。

您需要对查询字符串进行编码。

你可以在JavaScript中使用encodeURIComponent()函数对URI组件进行编码。这个函数对特殊字符进行编码。

答案 1 :(得分:1)

您应该像http://175.24.2.166/download?a=TOP%230%3BONE%3D1%3BTWO2一样对其进行编码。 Java中有很多编码器,您可以尝试使用URLEncodersome online encoders进行实验