在没有 web.xml 的情况下处理 JavaEE 中的异常
Handling exceptions in JavaEE without web.xml
有没有办法在不向 web.xml 添加选项的情况下将异常处理映射到 servlet 或 JSP?我如何理解从 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 resposible 来处理您的错误。 见下文。
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...
}
}
}
请注意,您不应捕获如此广泛的异常类型。相反,您应该处理您关心的特定类型。
有没有办法在不向 web.xml 添加选项的情况下将异常处理映射到 servlet 或 JSP?我如何理解从 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 resposible 来处理您的错误。 见下文。
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...
}
}
}
请注意,您不应捕获如此广泛的异常类型。相反,您应该处理您关心的特定类型。