由于 # 字符,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进行实验
我的 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进行实验