【发布时间】:2018-06-07 08:26:02
【问题描述】:
在 Tomcat (v8.5.24) 中,带有包含未编码花括号 ("{") 的查询参数的 URL 会产生 400 错误。
您可以使用“relaxedQueryChars”配置 Tomcat 以允许它。但这不是我想要的。我尝试编写自定义错误页面并将其添加到 web.xml
<error-page>
<error-code>400</error-code>
<location>/error/error400</location>
</error-page>
但这不起作用,因为 Tomcat 确实在终止请求并且不处理错误页面 (org.apache.coyote.http11.Http11Processor:737)
似乎没有办法处理它。现在我尝试在 nginx 中处理它。但是要在那里处理它,我需要设置“proxy_intercept_errors = on”,并且我不想从我的代理中截取所有错误代码。
那么在这种情况下渲染自定义 400 页面就没有运气了吗?或者有什么解决方法吗?
【问题讨论】:
标签: tomcat nginx error-handling web.xml