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原创文章,未经本站允许不得转载。