如何将异常从Servlet转发到JSP

时间:2012-12-23 13:44:31

标签: jsp exception servlets

我有一个form.html,其中我将servlet定义为action参数。 servlet与模型交谈(简单的java类DAO访问数据库),如果没有找到记录,则抛出recordnotfound异常,这是从类委托给servlet的。 所以,我想将此异常(RecordNotFound)转发到web.xml中定义的jsp页面

任何想法如何实现这一点。

由于

2 个答案:

答案 0 :(得分: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,则将使用包装的异常来定位错误页面。

答案 1 :(得分:-1)

使用

    request.getRequestDispatcher("/yourJSPFile.jsp").forward(request,response);