在Tomcat(v8.5.24)中,带有查询参数的URL包含一个unncode花括号(" {")会产生400错误。
您可以将Tomcat配置为允许使用" relaxedQueryChars"。但这不是我想要的。我尝试编写自定义错误页面并将其添加到web.xml
<error-page>
<error-code>400</error-code>
<location>/error/error400</location>
</error-page>
但这不起作用,因为Tomcat实际上是在查杀请求并且不处理错误页面(org.apache.coyote.http11.Http11Processor:737)
似乎无法处理它。现在我试着在nginx中处理它。但要处理它,我需要设置&#34; proxy_intercept_errors = on&#34;而且我不想拦截我的代理中的所有错误代码。
所以在这种情况下渲染自定义400页面没有运气吗?或者有任何解决方法吗?
答案 0 :(得分:0)
我也遇到了这个问题,作为一种解决方法,我通过扩展org.apache.catalina.valves.ErrorReportValve类并在Tomcat上对其进行配置来实现自己的ErrorReportValve。
为完成此任务,以下文章真的很有帮助:http://robupcraft.com/tomcat-valves/
请注意,要实现(并成功构建),您需要tomcat-catalina依赖项。