JSP exception对象详解

exception对象表示的就是JSP引擎在执行代码过程中抛出的种种异常,只有在page指令中设置isErrorPage="true"的页面中才能使用。

方法

String getMessage() 返回描述异常的消息
String toString() 返回关于异常的简短描述消息
void printStackTrace() 显示异常及其栈轨迹
Throwable FillInStackTrace() 重写异常的执行栈轨迹

JSP异常处理方法

1. 在可能出现异常的Java脚本中,加上try...catch

<%
try{
......
}
catch(){
......
}
%>

2. page指令中增加errorPage属性

<%@ page  errorPage="/error.jsp" isErrorPage="true" %>

如果我们指定了errorPage属性的值为error.jsp,那么在访问出现错误时,就会跳转到error.jsp(是转发过去的),如果想要了解异常的信息和对其进行处理,那么就要在error.jsp中设置page指令中的isErrorPage属性
isErrorPage="true",就可以调用exception隐式对象。如果没有将isErrorPage属性设置为true的话,exception隐式对象是不可以调用的。

3. 在web.xml配置文件中对异常处理做出全局的配置

<error-page>
    <exception-type>java.lang.ArithmeticException</exception-type>
    <location>/error.jsp</location> 
</error-page>

在web.xml文件中设置全局的异常处理,设置好要捕获的异常和要跳转的对象,就可以不用在jsp页面中指定page指令的errorPage属性。

如果在web.xml文件中配置了异常的处理,在JSP页面中也设置了errorPage的属性,那么JSP页面里的errorPage的配置会覆盖掉web.xml中的设置。

<error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location> 
</error-page>

web.xml中可以处理一些请求错误,指定要处理的404错误,代表处理请求资源不存在的HTTP状态码,指定跳转到404.jsp页面

例子

//index.jsp
<%@page import="java.net.URLDecoder"%>  
<%@ page language="java" import="java.util.*"  
    contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"  
    errorPage="error.jsp"%>
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
</head>  
<body>  
    <%  
        float price = Float.parseFloat("测试异常");  
    %>  
</body>  
</html>
//error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8" isErrorPage="true"%>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>错误页面</title>  
</head>  
<body>  
    <%=exception.getMessage()%><br>  
    <%=exception.getLocalizedMessage()%><br>  
    <%=exception.toString()%><br>  
    <%=exception.fillInStackTrace()%><br>  
</body>  
</html>

总结

1. exception内置对象用来处理JSP文件执行时发生的所有错误和异常。

2. exception对象和Java的所有对象一样,都具有系统的继承结构,exception对象几乎定义了所有异常情况,这样的exception对象和常见的错误有所不同,所谓错误,指的是在程序运行中由于系统内存不足,在Web服务器中不能处理计算机本身的问题。

3. 与错误不同,exception指的是Web应用程序所能够识别并能够处理的问题。在Java中,利用名为“try/catch”的关键字来处理异常情况,如果在JSP页面中出现没有捕捉到的异常,就会生成exception对象,并把这个exception对象传送到在page指令中设定的错误页面中,然后在错误提示页面中处理相应的exception对象。exception对象只有在错误页面(在页面指令里有isErrorPage=true的页面)才可以使用。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。