【发布时间】:2011-01-06 22:37:39
【问题描述】:
我正在尝试从 servlet 中包含一个 jsp 页面:
RequestDispatcher rd = ctx.getRequestDispatcher( jspPage );
rd.include( req, wrapper );
但我得到以下异常:
java.lang.IllegalStateException: Cannot forward after response has been committed
问题在于通过 JSP 错误标记指定其自己的默认错误页面的 JSP 页面。 JSP 错误页面也可以抛出一个异常,该异常会一直传播到 web.xml 中指定的应用程序级错误页面。因此,当我尝试包含的 jsp 页面抛出异常,并且错误页面也抛出异常时,包含失败。
我必须优雅地处理这种情况,因为我在页面上包含用户编写的模块,并且错误的模块应该向用户显示异常,而不是使用 IllegalStateException 进行轰炸。有什么想法吗?
【问题讨论】: