在请求目标中发现无效字符 Tomcat 9
Invalid character found in the request target Tomcat 9
在将在 Tomcat 7 下正常工作的项目迁移到 Tomcat 9 时,在请求中传递带有重音符号的单词时,我收到错误 Invalid character found in the request target。
修改了server.xml文件,在连接器中引入URIEncoding="UTF-8
”,也引入了子句relaxedQueryChars= áÁéÉíÍóÓúÚ
,但还是报同样的错误,摸不到项目的实际代码。
日志跟踪显示:java.lang.IllegalArgumentException: Invalid character found in the request target [/sahab/lupaDem.do?filtro=LupaDem¶m1=1¶m2=29527¶m3=OBSERVACI0xd3N%20ANTIRR0xc1BICA
HTTP 不允许为请求的路径指定编码。因此,过去服务器使用 OS 设置,这实际上令人困惑,尤其是对于使用 world-wide.
的应用程序
因此建立了始终将请求编码为 UTF-8 的标准,即便如此,也有 URLEncoding 可以通过 %-转义任何特殊字符来防止 UTF-8 问题。
简而言之,确保您的请求已正确编码。 Tomcat 的早期版本可能没有这方面的错误。请求来自客户端,而不是服务器本身。
在将在 Tomcat 7 下正常工作的项目迁移到 Tomcat 9 时,在请求中传递带有重音符号的单词时,我收到错误 Invalid character found in the request target。
修改了server.xml文件,在连接器中引入URIEncoding="UTF-8
”,也引入了子句relaxedQueryChars= áÁéÉíÍóÓúÚ
,但还是报同样的错误,摸不到项目的实际代码。
日志跟踪显示:java.lang.IllegalArgumentException: Invalid character found in the request target [/sahab/lupaDem.do?filtro=LupaDem¶m1=1¶m2=29527¶m3=OBSERVACI0xd3N%20ANTIRR0xc1BICA
HTTP 不允许为请求的路径指定编码。因此,过去服务器使用 OS 设置,这实际上令人困惑,尤其是对于使用 world-wide.
的应用程序因此建立了始终将请求编码为 UTF-8 的标准,即便如此,也有 URLEncoding 可以通过 %-转义任何特殊字符来防止 UTF-8 问题。
简而言之,确保您的请求已正确编码。 Tomcat 的早期版本可能没有这方面的错误。请求来自客户端,而不是服务器本身。