如何访问位于jar的'META-INF / resources'文件夹中的jsp页面中的Exception对象?

时间:2014-05-19 11:52:42

标签: java jsp jar

我想在JAR的 META-INF / resources 文件夹中放置一个 error.jsp 页面,以便我的网络应用程序可能会被重定向到此常见错误页面。
但是,我能够将应用程序重定向到此 error.jsp 页面,但页面无法访问隐式exception对象,以便打印堆栈跟踪。
虽然此页面中的exception隐式对象为null 我已经在error.jsp中添加了<%@ page isErrorPage="true"%>标记。

还有其他方法可以从这个jsp页面访问Exception对象吗?

2 个答案:

答案 0 :(得分:1)

隐式异常对象将在JSP本身使用jsp中的某个代码或web.xml中的错误页面设置自动调用。

<%@page errorPage=”relativeURL/path of the error page” %>

在手动重定向的情况下,隐式异常对象将不可用,因为它就像普通的jsp页面一样。

  

JSP页面指定包含page指令和errorPage属性的错误页面。发生无法处理的异常时,将丢弃输出流中任何未刷新的输出,并立即执行错误页面。

     

错误页面表明它是一个带有page指令和isErrorPage属性的错误页面。这使得未处理的异常在名为exception的变量中可用。

如果您需要隐式异常对象,请不要手动重定向/转发到错误页面。


当您手动重定向到 error.jsp 页面时。您已将异常设置为某个地方作为请求属性。

在重定向到 error.jsp 页面之前,只需在请求中设置一个属性

request.setAttribute("exception",exception);  // You have to set it manually

并在 error.jsp 页面中找回。

request.getAttribute("exception");

注意:您也可以使用c:set尝试使用 JSTL

答案 1 :(得分:0)

尝试使用转发而不是重定向:

request.getServletContext().getRequestDispatcher("error.jsp").forward(request, response);