我知道您可以在web.xml中指定错误页面,如下所示
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
我发现列出每个错误代码的页面有点乏味。我想知道在这种情况下最常见的做法是什么!有没有更好的方法来自动生成这些页面,例如使用JSP或servlet,还是通过Spring或Stripes?
答案 0 :(得分:2)
如果您正在谈论页面本身的生成,您可以将错误代码映射到jsp页面,例如
<error-page>
<error-code>404</error-code>
<location>/errors.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/errors.jsp</location>
</error-page>
如果您正在讨论映射本身,可能的解决方案(尽管我建议您使用标准的web.xml映射)以避免映射所有错误代码是使用过滤所有资源的servlet过滤器,委托访问FilterChain并检查响应代码集(如果它不是200(或任何其他预定义的可接受响应,如401),而不是重定向到errors.jsp页面。
为了捕获响应代码,您将使用保存响应代码集的HttpServletResponseWrapper实现来包装HttpServletResponse。
答案 1 :(得分:0)
Stripes提供了一些可扩展但简单的方法来处理异常。 on the stripes website有一个很好的写作Stripes book和几页,关于它。
你基本上要么实现ExceptionHandler接口,要么从DefaultExceptionHandler扩展(我们通常做的事情),或者有更高级的情况下有DelegatingExceptionHandler。