共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。
异样解决
当 servlet 出现异常时,servlet 容器应用 exception-type 元素来找到与抛出的异样类型相匹配的配置
public class ExceptionHandler extends HttpServlet { | |
@Override | |
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Throwable throwable = (Throwable) req.getAttribute("javax.servlet.error.exception"); | |
Integer code = (Integer) req.getAttribute("javax.servlet.error.status_code"); | |
String message = (String) req.getAttribute("javax.servlet.error.message"); | |
System.out.println("========="); | |
System.out.println(throwable); | |
System.out.println("========="); | |
System.out.println(code); | |
System.out.println("========="); | |
System.out.println(message); | |
} | |
} |
<!– more –>
<!-- 配置异样解决的 servlet --> | |
<servlet> | |
<servlet-name>ExceptionHandler</servlet-name> | |
<servlet-class>com.zhanghe.study.servlet.ExceptionHandler</servlet-class> | |
</servlet> | |
<servlet-mapping> | |
<servlet-name>ExceptionHandler</servlet-name> | |
<url-pattern>/ExceptionHandler</url-pattern> | |
</servlet-mapping> | |
<!-- 配置哪些错误码会调用该异样解决类 --> | |
<error-page> | |
<error-code>404</error-code> | |
<location>/ExceptionHandler</location> | |
</error-page> | |
<!-- 配置哪些异样类型会调用该异样解决类 --> | |
<error-page> | |
<exception-type>java.lang.ArithmeticException</exception-type> | |
<location>/ExceptionHandler</location> | |
</error-page> |
如果出现异常,会在申请域中设置相应的属性
能够应用 request.getAttribute(“”) 取出
javax.servlet.error.status_code // 错误码,Integer 类型 | |
javax.servlet.error.exception_type // 异样类型,Class 类型 | |
javax.servlet.error.message // 异样信息,String 类型 | |
javax.servlet.error.request_uri // 出现异常的 uri 地址,String 类型 | |
javax.servlet.error.exception // 异样,Throwable 类型 | |
javax.servlet.error.servlet_name //servlet 名称,String 类型 |
https://zhhll.icu/2021/javaweb/ 根底 /9. 异样解决 /
本文由 mdnice 多平台公布
正文完