我有一个 form.html,我在其中定义了一个 servlet 作为操作参数。servlet 反过来与模型(用于访问数据库的简单 java 类 DAO)对话,如果找不到记录,则抛出 recordnotfound 异常,该异常又从类委托给 servlet。所以,我想将此异常(RecordNotFound)转发到 web.xml 中定义的 jsp 页面
任何想法如何实现这一目标。
谢谢
因此可以使用<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
,则将使用包装的异常来定位错误页面。
利用
request.getRequestDispatcher("/yourJSPFile.jsp").forward(request,response);