掌握两种异常的处理方式:统一错误处理和指定错误处理页
统一异常处理
比如网站出现404,500这种错误时,统一跳转到某个错误页。主要是用户体验好。
如何配置:
统一异常一般在WEB-INF\web.xml
配置时可以按错误码或者错误类型进行配置
比如404
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
指定错误处理页
step1 编写错误页面,错误页面的isErrorPage="true"
**<%@ page** language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" **isErrorPage="true"**%>
<body>
错误页${requestScope['javax.servlet.error.exception'] }<br>
错误码${requestScope['javax.servlet.error.status_code'] }<br>
<%= request.getAttribute("javax.servlet.error.status_code")%>
</body>
step2 模拟产生错误的页,jsp页里的errorPage="error.jsp"
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" **errorPage="error.jsp"**%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=2/0 %>
</body>
</html>
错误显示参考下表
javax.servlet.error.status_code
该属性给出状态码,状态码可被存储,并在存储为java.lang.Integer数据类型后可被分析。
javax.servlet.error.exception_type
该属性给出异常类型的信息,异常类型可被存储,并在存储为java.lang.Class数据类型后可被分析。
javax.servlet.error.message
该属性给出确切错误消息的信息,信息可被存储,并在存储为java.lang.String数据类型后可被分析。
javax.servlet.error.request_uri
该属性给出有关URL调用Servlet的信息,信息可被存储,并在存储为java.lang.String数据类型后可被分析。
javax.servlet.error.exception
该属性给出异常产生的信息,信息可被存储,并在存储为java.lang.Throwable数据类型后可被分析。
javax.servlet.error.servlet_name
该属性给出Servlet的名称,名称可被存储,并在存储为java.lang.String数据类型后可被分析。