• Servlet异常处理


    1.Servlet 异常处理

    使用场景:

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

    2.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 >
    
        <location>/ErrorHandler</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,并显示适当的消息。

  • 相关阅读:
    Python基础教程之第2章 列表和元组
    java最简单的方式实现httpget和httppost请求
    90后女生微信销售案例:预热和成熟
    window.onload与$.ready的差别
    在delphi下TClientSocket的使用技巧 转
    delphi安装 Tclientsocket, Tserversocket控件
    DELPHI SOKET 编程(使用TServerSocket和TClientSocket) 转
    Delphi ServerSocket,ClientSocket示例
    Delphi Socket 阻塞线程下为什么不触发OnRead和OnWrite事件
    delphi TServerSocket阻塞线程单元 实例
  • 原文地址:https://www.cnblogs.com/qq2267711589/p/11025772.html
Copyright © 2020-2023  润新知