gpt4 book ai didi

java - 在没有 web.xml 的情况下处理 JavaEE 中的异常

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:38 26 4
gpt4 key购买 nike

有没有一种方法可以将异常处理映射到 servlet 或 JSP,而无需在 web.xml 中添加选项?我的理解是,从 Java Servlets 3.0 开始,没有 web.xml 一切都应该是可能的。

我喜欢这种选择

<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>/WEB-INF/jsps/exception.jsp</location>
</error-page>

最佳答案

不可以,当前的 API 要求您将 error-page 放入 web.xml 中以进行自定义错误处理。 Servlet 3.0 是朝着正确方向迈出的一步,但它并不是一个完全成熟的替代品,您无法仅通过注释完成您想做的所有事情。错误页面是它的限制之一。

最现代和最小的方法是定义一个负责处理错误的 servlet。 见下文。

web.xml

<error-page> 
<exception-type>java.lang.RuntimeException</exception-type>
<location>/runtimeErrorHandler</location>
</error-page>

RuntimeErrorHandlerServlet.java

@WebServlet(urlPatterns = "/runtimeErrorHandler")
public class RuntimeErrorHandlerServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html; charset=utf-8");
try (PrintWriter writer = resp.getWriter()) {
// Write your error handling page here...
}
}

}

请注意,您不应该捕获如此广泛的异常类型。相反,您应该处理您关心的特定类型。

关于java - 在没有 web.xml 的情况下处理 JavaEE 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57250109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com