0

我有一个 form.html,我在其中定义了一个 servlet 作为操作参数。servlet 反过来与模型(用于访问数据库的简单 java 类 DAO)对话,如果找不到记录,则抛出 recordnotfound 异常,该异常又从类委托给 servlet。所以,我想将此异常(RecordNotFound)转发到 web.xml 中定义的 jsp 页面

任何想法如何实现这一目标。

谢谢

4

2 回答 2

0

因此可以使用<error-page>输入。web.xml

<error-page>
    <exception-type>com.exampl.RecordNotFound</exception-type>
    <location>/WEB-INF/errorpages/recordnotfound.jsp</location>
</error-page>

您在 servlet 中需要做的就是让抛出的异常消失,或者如果它是已检查的异常,则将其包装在ServletException.

} catch (RecordNotFound e) {
    throw new ServletException(e);
}

请注意,您不应该在java.lang.Throwable或 的某个超类上设置过于通用的错误页面ServletException,否则将使用 instesd。容器即会通过错误页面位置进行 2 次传递。第一个使用确切的异常,如果异常实际上是第二个ServletException,则将使用包装的异常来定位错误页面。

于 2012-12-24T02:58:53.903 回答
-1

利用

    request.getRequestDispatcher("/yourJSPFile.jsp").forward(request,response);
于 2012-12-25T04:58:22.647 回答