我正在尝试使用 servlet 来处理简单 Web 应用程序的错误,并且它对于在我的 web.xml 中使用异常类型专门定义的任何错误都非常有效。但是,如果我尝试使用 HttpServletResponse.sendError 方法发送 HTML 错误代码,web.xml 似乎并没有发现错误,而只是显示 Tomcat 针对该特定 HTML 状态代码的默认错误页面。
我的错误处理 servlet 有几个“包罗万象”的通用错误页面,如果它与特定的错误代码不匹配,它将生成,所以错误根本没有进入 servlet,我完全困惑于为什么它会这样。
这是我的 web.xml 中的相关片段:
<error-page>
<error-code>400</error-code>
<location>/Error</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/Error</location>
</error-page>
这是我试图在 servlet 中发送的错误示例:
if (thing.getSizeOfThing() == null || thing.getQuantity() <= 0) {
response.sendError(400);
}
我的错误处理 servlet 将根据错误代码或异常类型以及生成错误的 servlet 显示相关的错误页面。正如我所提到的,这对于异常非常有用,而对于使用 sendError 方法发送的错误则根本不起作用。
我已经确保响应中最小内容大小的问题不是问题(或不应该是问题),因为我没有收到浏览器特定的错误页面,而是 tomcat 的通用 400 错误页面。
任何帮助是极大的赞赏!