象普通的java程序一样,可以把异常引入到
jsp中。如果在执行
jsp的java代码时发生异常,可以用下面的指令将http请求转发给另一个专门处理异常的网页:
<%@ page errorPage=" errorpage. jsp"%>
在处理异常的网页中,应该通过如下语句将该网页生命为异常处理网页
<%@ page isErrorPage="true"%>
在处理异常的网页中可以直接访问exception隐含对象,获取详细的异常信息,如
<p>
错误原因为:<% exception.printStackTrace(new PrintWriter(out));%>
</p>
下面创建一个可能会抛出异常的 jsp网页jspSum. jsp,去两个参数求和。如果客户输入的参数不能转化为整数,就会抛出NumberFormatException,这时客户请求会转道 errorpage. jsp
jspSum. jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page errorPage=" errorpage. jsp" %>
<html><head><title>jspSum. jsp</title></head>
<body>
<%!
private int toInt(String num){
return Integer.valueOf(num).intValue();
}
%>
<%
int num1=toInt(request.getParameter("num1"));
int num2=toInt(request.getParameter("num2"));
%>
<p>
运算结果为:<%=num1%>+<%=num2%>=<%=(num1+num2)%>
</p>
</body></html>
errorpage. jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page isErrorPage="true" %>
<%@ page import="java.io.PrintWriter" %>
<html><head><title>Error Page</title></head>
<body>
<p>
你输入的参数(num1=<%=request.getParameter("num1")%>,
num2=<%=request.getParameter("num2")%>)有错误
</p>
<p>
错误原因为:<% exception.printStackTrace(new PrintWriter(out));%>
</p>
</body></html>
<%@ page errorPage=" errorpage. jsp"%>
在处理异常的网页中,应该通过如下语句将该网页生命为异常处理网页
<%@ page isErrorPage="true"%>
在处理异常的网页中可以直接访问exception隐含对象,获取详细的异常信息,如
<p>
错误原因为:<% exception.printStackTrace(new PrintWriter(out));%>
</p>
下面创建一个可能会抛出异常的 jsp网页jspSum. jsp,去两个参数求和。如果客户输入的参数不能转化为整数,就会抛出NumberFormatException,这时客户请求会转道 errorpage. jsp
jspSum. jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page errorPage=" errorpage. jsp" %>
<html><head><title>jspSum. jsp</title></head>
<body>
<%!
private int toInt(String num){
return Integer.valueOf(num).intValue();
}
%>
<%
int num1=toInt(request.getParameter("num1"));
int num2=toInt(request.getParameter("num2"));
%>
<p>
运算结果为:<%=num1%>+<%=num2%>=<%=(num1+num2)%>
</p>
</body></html>
errorpage. jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page isErrorPage="true" %>
<%@ page import="java.io.PrintWriter" %>
<html><head><title>Error Page</title></head>
<body>
<p>
你输入的参数(num1=<%=request.getParameter("num1")%>,
num2=<%=request.getParameter("num2")%>)有错误
</p>
<p>
错误原因为:<% exception.printStackTrace(new PrintWriter(out));%>
</p>
</body></html>