我正在尝试使用一个servlet来处理一个简单的Web应用程序的错误,对于在web.xml中使用exception-type明确定义的任何错误,它都能很好地工作。然而,如果我尝试使用HttpServletResponse.sendError方法发送HTML错误代码,web.xml似乎无法捕获该错误,并且仅显示特定HTML状态码的Tomcat默认错误页面。
我的错误处理servlet有一些“catch-all”通用错误页面,如果它不匹配特定的错误代码,它将生成这些页面,因此错误根本没有传递到servlet,我完全不知道为什么会出现这种情况。
以下是我web.xml文件的相关片段:
我的错误处理servlet将根据错误代码或异常类型以及生成错误的servlet显示相关的错误页面。正如我所提到的,这对于异常非常有效,但对使用sendError方法发送的错误根本不起作用。
我确保响应中的最小内容大小问题不是问题(或者不应该是问题),因为我没有收到特定于浏览器的错误页面,而是tomcat的通用400错误页面。
非常感谢您的帮助!
我的错误处理servlet有一些“catch-all”通用错误页面,如果它不匹配特定的错误代码,它将生成这些页面,因此错误根本没有传递到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错误页面。
非常感谢您的帮助!