【发布时间】:2011-01-05 19:21:49
【问题描述】:
我有一个指定了错误页面的 JSP 页面。我通过以下方式从 servlet 调用页面:
RequestDispatcher rd = ctx.getRequestDispatcher( jspPage );
rd.include( req, res );
如何检测jsp页面是否转发到错误页面?我想以不同的方式处理异常,但没有抛出异常。不幸的是,我无法修改 JSP 页面本身或错误页面。
编辑:
我在想这样的事情可能会在 include() 行之后起作用,有什么想法吗?
Object errorServletName = req.getAttribute( "javax.servlet.error.servlet_name" );
if ( errorServletName != null )
{ there was an error in the JSP... }
【问题讨论】:
-
你想在哪里检测到这个?在给定示例中的
include()行之后?为什么你的 JSP 会抛出异常?这表示使用scriptlets... 您是否意识到显示错误页面可能为时已晚? IE。当它在响应已经提交时抛出异常。无论如何,您可以更改web.xml中的<error-page>条目吗?如果是这样,那就是答案。 -
我想在示例中的 include() 行之后检测它。 JSP 页面有一个指定的errorPage,因此当出现异常时它会跳转到error.jsp,这通常很好。但是在 include() 行之后,我需要做一个 res.getContents() 并对输出进行其他处理......并且我需要将错误页面输出作为一种特殊情况来处理,所以我希望有一种方法检测它是否被转发到错误页面。希望澄清...