`
sony-soft
  • 浏览: 1021632 次
文章分类
社区版块
存档分类
最新评论

web.xml或JSP中指定错误页面

 
阅读更多

在web.xml或JSP中指定错误页面

http://gemini.javaeye.com/blog/81524

在web.xml中,可以使用exception-type标签或HTTP状态码error-code标签声明错误页面。

根据异常类声明错误页面:

  1. <error-page>
  2. <exception-type>java.io.IOException</exception-type>
  3. <location>/error.jsp</location>
  4. </error-page>

exception-type指定的必须是一个Throwable,并且这个类在容器的类路径下能够被找到。

根据HTTP状态码声明错误页面:

  1. <error-page>
  2. <error-code>404</error-code>
  3. <location>/error.jsp</location>
  4. </error-page>

使用error-page标签的要点:

① 不论是根据exception-type还是error-code来声明错误页面,location指定的路径必须以斜线开头,也就是说它是相对于Web应用根的。

② 一个web.xml中可以使用多个error-page标签,一个error-page标签中只能使用一个exception-type或error-page。

在JSP中,可以在page指令中通过errorPage属性来指定错误页面:

  1. <%@pageerrorPage="error.jsp"%>

容器会为错误页面提供一个exception对象,不过要想在错误页面里访问这个对象,必须在错误页面里指定isErrorPage属性:

error.jsp
  1. <%@pageisErrorPage="true"%>

然后,在scriptlet中就可以使用隐式对象exception,在EL中可以使用EL隐式对象${pageContext.exception}。

其它要点:

如果是JSP中抛出的异常,容器首先查看JSP中有没有指定errorPage属性,如果没有,再查看web.xml中有没有error-page标签;如果是Web应用中的其它地方抛出异常,容器只会查看web.xml中的error-page标签。

可以通过HttpServletResponse.sendError()方法来发送错误的HTTP状态码:

  1. response.sendError(HttpServletResponse.SC_FORBIDDEN);

web.xml配置404,500出错页面

http://hi.baidu.com/xinggede/blog/item/feb2a733b79f0ff11b4cffdc.html

<!-- 400错误 -->
<error-page>
<error-code>400</error-code>
<location>/errorPage.jsp</location>
</error-page>
<!-- 404 页面不存在错误 -->
<error-page>
<error-code>404</error-code>
<location>/errorPage.jsp</location>
</error-page>
<!-- 500 服务器内部错误 -->
<error-page>
<error-code>500</error-code>
<location>/errorPage.jsp</location>
</error-page>
<!-- java.lang.Exception异常错误,依据这个标记可定义多个类似错误提示 -->
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/errorPage.jsp</location>
</error-page>
<!-- java.lang.NullPointerException异常错误,依据这个标记可定义多个类似错误提示 -->
<error-page>
<exception-type>java.lang.NullPointerException </exception-type>
<location>/errorPage.jsp</location>
</error-page>

<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/errorPage.jsp</location>
</error-page>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics