zoukankan      html  css  js  c++  java
  • servlet 异常处理

    1 Servlet 异常处理

    使用场景:

    当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置。web.xml 中使用 error-page 元素来指定对特定异常 或 HTTP 状态码 作出相应的 Servlet 调用。

    1.1 web.xml 配置

    假设,有一个 ErrorHandler Servlet 在任何已定义的异常或错误出现时被调用。

    以下将是在 web.xml 中创建的项。

     1 <!-- servlet 定义 -->
     2 
     3 <servlet>
     4 
     5         <servlet-name>ErrorHandler</servlet-name>
     6 
     7         <servlet-class>ErrorHandler</servlet-class>
     8 
     9 </servlet>
    10 
    11 <!-- servlet 映射 -->
    12 
    13 <servlet-mapping>
    14 
    15         <servlet-name>ErrorHandler</servlet-name>
    16 
    17         <url-pattern>/ErrorHandler</url-pattern>
    18 
    19 </servlet-mapping>
    20 
    21  
    22 
    23 <!-- error-code 相关的错误页面 -->
    24 
    25 <error-page>
    26 
    27     <error-code>404</error-code>
    28 
    29     <location>/ErrorHandler</location>
    30 
    31 </error-page>
    32 
    33 <error-page>
    34 
    35     <error-code>403</error-code>
    36 
    37     <location>/ErrorHandler</location>
    38 
    39 </error-page>
    40 
    41  
    42 
    43 <!-- exception-type 相关的错误页面 -->
    44 
    45 <error-page>
    46 
    47     <exception-type>
    48 
    49           javax.servlet.ServletException
    50 
    51     </exception-type >
    52 
    53     <location>/ErrorHandler</location>
    54 
    55 </error-page>
    56 
    57  
    58 
    59 <error-page>
    60 
    61     <exception-type>java.io.IOException</exception-type >
    62 
    63     <location>/ErrorHandler</location>
    64 
    65 </error-page>

    如果您想对所有的异常有一个通用的错误处理程序,那么应该定义下面的 error-page,而不是为每个异常定义单独的 error-page 元素:

    <error-page>
    
        <exception-type>java.lang.Throwable</exception-type >//1.type
    
        <location>/ErrorHandler</location>                //2.location
    
    </error-page>

    web.xml 文件中添加如下配置来处理异常:

     1 <?xml version="1.0" encoding="UTF-8"?>  
     2 
     3 <web-app>  
     4 
     5 <servlet>
     6 
     7         <servlet-name>ErrorHandler</servlet-name>
     8 
     9         <servlet-class>com.sxt.test.ErrorHandler</servlet-class>
    10 
    11 </servlet>
    12 
    13 <!-- servlet mappings -->
    14 
    15 <servlet-mapping>
    16 
    17         <servlet-name>ErrorHandler</servlet-name>
    18 
    19         <url-pattern>/TomcatTest/ErrorHandler</url-pattern>
    20 
    21 </servlet-mapping>
    22 
    23 <error-page>
    24 
    25     <error-code>404</error-code>
    26 
    27     <location>/TomcatTest/ErrorHandler</location>
    28 
    29 </error-page>
    30 
    31 <error-page>
    32 
    33     <exception-type>java.lang.Throwable</exception-type >
    34 
    35     <location>/ErrorHandler</location>
    36 
    37 </error-page>
    38 
    39 </web-app>  

    现在,尝试使用一个会产生异常的 Servlet,或者输入一个错误的 URL,这将触发 Web 容器调用 ErrorHandler Servlet,并显示适当的消息。

  • 相关阅读:
    C#中常见的系统内置委托用法详解(抄录)
    ClassifyHandler 分类处理结构
    AutoFac Ioc依赖注入容器
    深入理解DIP、IoC、DI以及IoC容器
    ASP.NET MVC的请求处理流程
    电商秒杀功能实现
    MVC之Global.asax解析
    MVC基类控制器的会话丢失重新登录权限过滤
    MVC的Action上下文:ActionExecutingContext
    ASP.NET与MVC架构区别总结
  • 原文地址:https://www.cnblogs.com/qq308015824/p/11025729.html
Copyright © 2011-2022 走看看