jsp中错误处理页面-isErrorPage="true"
举例说明:mustBeError.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,javax.servlet.*,javax.servlet.http.*" errorPage="error.jsp" %> <% //这个页面一定会出错。 int i=0; int j=1; out.println(j/i); %>
在此中通过errorPage="error.jsp"来指定出错时错误处理页面
error.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" isErrorPage="true" import="java.io.*"%> <html> <head> <title>出错了!</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> 出错了!<br> 发生了以下的错误: <br><hr> <font color=red><hr> getMessage():<br> <%=exception.getMessage()%><br><hr> getLocalizedMessage():<br> <%=exception.getLocalizedMessage()%><br><hr> PrintStatckTrace():<br> <% StringWriter sw=new StringWriter(); PrintWriter pw=new PrintWriter(sw); exception.printStackTrace(pw); out.println(sw); %><br> </font> </body>
在web.xml中声明异常和错误页面
例如: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4"> <error-page> <error-code>404</error-code> <location>/pageNotFound.html</location> </error-page> <error-page> <exception-type>java.lang.NumberFormatException</exception-type> <location>/NumberFormatException.html</location> </error-page> </web-app>
说明:指定错误代码为404是,调用/pageNotFound.html
也可以指定错误类型如:java.lang.NumberFormatException,出现此错误类型是调用/NumberFormatException.html
在error.jsp中,首先在page指令中指定:
isErrorPage="true"
这是非常关键的地方,只有这样指定,这个页面才能进行错误处理,才能使用exception对象。
exception对象有几个非常重要的方法,用于获得出错的信息,这些方法如下:
<%=exception.getMessage()%>
<%=exception.getLocalizedMessage()%>
<% exception.printStackTrace(PrintWriter);%>
最后一个方法用于打印错误堆栈。如果需要在错误页面以外使用这个exception对象,那么可以这样把exception对象保存起来:
session.setAttribute("myError",exception);
在另一个页面使用:
Exception exception=( Exception )session.getAttribute("myError");
把这个异常对象引入进来。