java web应用程序中有一个选项可以通过在web.xml中定义error-page来处理异常:
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
我想知道定义JSP错误页面是否存在问题(而不是HTML错误页面)。 因为JSP在服务器端运行。是否存在服务器“半死”的情况,抛出异常,尝试重定向到错误页面,但由于“半死”而无法呈现它?
“半死”我的意思是服务器处于某些状态仍然有效的状态,但其他东西不起作用。具体来说,我的意思是无论控制重定向到web.xml中定义的错误页面仍然有效,但JSP的实际呈现由于某种原因不起作用(抛出异常)。
我实际上没有看到这样的问题,但我想知道是否可能。因为那时可能会出现HTML错误页面(因为它没有服务器端逻辑),而JSP错误页面则不起作用。
如果是这种情况,那么当JSP错误页面失败时,如何“回退”到HTML错误页面? 我仍然希望使用JSP错误页面来显示响应中返回的错误详细信息,但如果不可能,那么我想显示HTML页面。
我希望这是有道理的......
答案 0 :(得分:1)
我找到了解决方案:
response.sendError(HttpServletResponse.SC_NOT_FOUND);
,它将重定向到web.xml中定义的错误404页面。答案 1 :(得分:0)
我当然可以设想一种情况,你的error.jsp
需要来自服务器的某些功能,而服务器无法满足(例如你丢失了与数据库的连接,抛出错误,{{1}触发但 因某种原因需要数据库连接 - 可能记录错误或提供联系信息?)。
仅凭这个原因,我会保持error.jsp
相对简单和独立。