打开浏览器,访问一个链接或者输入url,“咚”的敲下回车。。。
哗啦啦,一大堆看不懂的异常信息一下子弹出来,塞满整个页面,我勒个去,吓死人了。。。
在实际开发中,用户访问网站的时候发生了错误,如果返回的是一大堆的未经处理的异常信息,那么肯定会让人茫然和郁闷,也肯定会让人会你的网站的印象大打折扣。所以,我们必须要对可能发生的错误,做好应对措施,写出健壮的代码和友好的显示界面。
在JSP页面中,对于异常信息,我们可以进行下面的处理。
1、在可能出现异常的Java脚本中,加上try...catch
<%
try{
}
catch(){
}
%>
2、在page指令中增加errorPage属性
<%@ page errorPage="/error.jsp"%>
errorPage的属性必须使用相对路径,如果一“/”开发,那么代表Web工程的根目录
如果我们指定了errorPage属性的值为error.jsp,那么在访问出现错误时,就会跳转到error.jsp(是转发过去的),如果想要了解异常的信息和对其进行处理,那么就要在error.jsp中设置page指令中的isErrorPage属性
<%@ page isErrorPage="true"%>
那么,在这个页面中,就可以调用exception隐式对象。如果没有将isErrorPage属性设置为true的话,exception隐式对象是不可以调用的。
3、在web.xml配置文件中对异常处理做出全局的配置
也可以不再jsp页面中指定page指令的errorPage属性,而在web.xml文件中设置全局的异常处理
<error-page>
<exception-type>java.lang.ArithmeticException</exception-type>
<location>/error.jsp</location>
</error-page>
设置好要捕获的异常和要跳转的对象
web.xml中不仅可以设置对异常的处理,还可以处理一些请求错误
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
指定要处理的404错误,代表处理请求资源不存在的HTTP状态码,指定跳转到404.jsp页面
如果在web.xml文件中配置了异常的处理,在JSP页面中也设置了errorPage的属性,那么JSP页面里的errorPage的配置会覆盖掉web.xml中的设置。