JSP错误页面处理的两种方式:
方法1(真能针对单一页面生效,不推荐):
出错页面实例
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%--发生错误,想让用户看到友好页面 error.jsp--%> <%@ page errorPage="/demo4/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> <!-- 制作错误 --> <% int d = 1/0; %> </body> </html>
处理错误页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- 设置当前页面是错误页面, 获得错误信息 exception --%> <%@page isErrorPage="true" %> <!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> <!-- 错误友好信息页面 --> <h4>对不起,服务器正在升级,请稍后访问!</h4> <h5>错误原因:<%=exception.getMessage() %></h5> </body> </html>
方法2:
设置web.xml全局文件
如定义404不存在页面和500服务器内部错误页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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"> <meta content="3;url=/day08/index.jsp" http-equiv="refresh"> <title>Insert title here</title> </head> <body> <h1>对不起,你访问的资源不存在,网站将在3秒之后 自动跳转到主页面!</h1> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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> <h1>对不起,服务器发生内部错误,请稍后访问!</h1> </body> </html>
web.xml设置
<error-page> <error-code>500</error-code> <location>/demo5/500.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/demo5/404.jsp</location> </error-page>