Java web的几种异常处理

.servlet容器中处理异常

以下两种方式:

1. web.xml定义异常处理 

如果没有在web的应用中作异常处理,那么异常就会抛给Servlet容器,应该说此时Servlet容器是处理异常的时机了。如果此时Servlet容器还不对异常处理的话,那么容器会把异常的内容直接显示给访问者。  Servlet容器通过web.xml配置对异常的处理。在web.xml中进行异常处理的配置是通过<error-page>元素来表示,支持两种类型的异常拦截。

   1)依据http请求所返回的状态码来拦截

   2)通过java异常类的类型来进行拦截

   如下两种类型的实例

   <error-page>

      <error-code>404</error-code>   

         <location>/errors/pageNoFound.jsp</location>

   </error-page>

  

   <error-page>

       <exception-type>java.lang.NullPointerException</exception-type>

          <location>/errors/pageNoFound.jsp</location>

   </error-page>

  

   错误页面中错误信息的显示

   jsp2.0开始,除了在错误页面中可以使用绑定到requestexception对象外,还增加了一个名为errorData的绑定到pageContext的对象。它是javax.servlet.jsp.ErrorData类的对象。

errorData的属性

-------------------------------------------------------

属性                   类型          描述

requestURI             String        发出请求失败的URI

servletName            String        发生错误的servletjsp页面的名称

statusCode             int           发生错误的状态码

throwable              Throwable     导致当前错误的异常

--------------------------------------------------------

在错误页面中,可用如下实例显示错误信息

<%@ page isErrorPage="true" contentType="text/html"; charset="utf-8" %>

<html>

   <head> ...</head>

   <body>

    请求地址:${pageContext.errorData.requestURI} <br>

       状态码:  ${pageContext.errorData.statusCode} <br>

       异常: ${pageContext.errorData.throwable}  <br>

   </body>

</html>

 

注:某些版本的浏览器需要关闭“显示友好http错误信息”功能才能正常显示错误信息。“工具”->"internet选项"->高级

 

2.自定义异常页面(在jsp页面中定义)

   通过jsp页面中@page errorPage属性来进行,如下:

   <% page errorPage="errors/error.jsp" %>

   这种处理方式将会覆盖在web.xml中的定义  自定义异常将会拦截所有的异常,也就是说不能依据不同的异常的类型来进行不同的处理(区别于servlet容器异常处理)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值