以下servlet读取url path参数。
问题:如果输入包含特殊字符,例如我发现#
,则字符串被截断!
@RestController
public class MyServlet {
@GetMapping("/hash")
@ApiIgnore
public String hash(HttpServletRequest req) {
String pw = req.getPathInfo(); //asdfgh
}
}
`localhost:8080/hash/asdfgh#jkl`
问题:我如何原生地传递输入参数?
答案 0 :(得分:2)
从#
开始的部分不会发送到/接收到您的servlet
它是仅从客户端(浏览器)使用的信息,而不会使用
URI的一部分。
确实RFC2396个州:
使用URI引用对其执行检索操作时 标识资源,可选的片段标识符,分隔 由交叉阴影线("#")字符组成的URI由附加组成 用户代理在之后解释的参考信息 检索行动已成功完成。因此,事实并非如此 URI的一部分,但通常与URI结合使用。