显然,URI 路径中不允许使用括号。
我不确定这是否是 Tomcat 问题,但我收到的请求路径包含]
.
换句话说
request.getRequestURL() == "http://localhost:8080/a]b"
request.getRequestURI() == "/a]b"
BTW getRequestURL() 和 URI 通常被转义,即http://localhost:8080/a b
request.getRequestURL() == "http://localhost:8080/a%20b"
因此,如果您尝试这样做:
new URI("http://localhost:8080/a]b")
new URI(request.getRequestURL())
它将因 URI 解析异常而失败。如果我逃脱了会使%20
双重逃脱的路径。
如何将 Servlet 请求 URL 转换为 URI?