Servlet 无法映射特定 URL

Can't be mapped a specific URL by Servlet

我开发了一个 Servlet,它映射到 URLs,模式如下。

urlPatterns = {"/dv/*" , "/dv/", "/dv*", "/dv/*/*"}

一切都很顺利,但我对此有一个大问题URL http://localhost:6070/dv/test/MyProject?=&projectType=auto&{},因为 URL 中存在字符“{”或“}”。 我该如何处理这个问题? 我的网络容器是 Tomcat v8,我无法避免 URL 中的这个字符,因为我正在尝试代理 第三方服务器,我无权在发送到 Servlet 之前修改 URLs。

我找到了解决方案。 这个问题归结为 Tomcat 配置;因此,我将 relaxedQueryChars 添加到我的 Tomcat 的连接器标记中,我的问题就解决了,但重点是此属性仅在 Tomcat 8.5.31 或更高版本中可用。

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" maxPostSize="4194304" URIEncoding="UTF-8" bindOnInit="false" server="orca framework" relaxedQueryChars='[]|{}^&#x5c;&#x60;&quot;&lt;&gt;'/>