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

Servlet stripping parameter values because of # character

我的 URL 是 http://175.24.2.166/download?a=TOP#0;ONE=1;TWO2

我应该如何对参数进行编码,以便当我在 Servlet 中打印参数时,我可以获得完整的值?目前,当我使用 request.getParameter("a") 打印值时,我得到的输出是 TOP 而不是 TOP#0;ONE=1;TWO2.

这被称为 "fragment identifier"。

wiki

所述

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

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

您可以在 JavaScript 中使用 encodeURIComponent() 函数对 URI 进行编码 component.This 函数对特殊字符进行编码。

你应该这样编码 http://175.24.2.166/download?a=TOP%230%3BONE%3D1%3BTWO2 。 Java中有很多编码器,你可以尝试使用URLEncoder or some online encoders进行实验