JSP學(xué)習(xí)之異常處理實(shí)例分析
本文實(shí)例講述了JSP異常處理的方法。分享給大家供大家參考。具體如下:
要對(duì)JSP程序可能產(chǎn)生的異常進(jìn)行處理,可以從多個(gè)角度完成:可以針對(duì)特定的代碼,可以針對(duì)特定的文件,也可以針對(duì)錯(cuò)誤的類型。
如果針對(duì)特定的代碼,可以使用標(biāo)準(zhǔn)標(biāo)簽庫中的核心標(biāo)簽庫中的<c:catch>標(biāo)簽。
如果針對(duì)特定的文件,可以使用JSP的page指令中的isErrorPage屬性和errorPage屬性完成。
如果針對(duì)特定類型的錯(cuò)誤,可以使用web.xml配置文件。
1 使用<c:catch>進(jìn)行異常處理
<c:catch>標(biāo)簽可以針對(duì)特定的一行或者多行代碼。<c:catch>標(biāo)簽的基本格式如下:
其他的JSP代碼,包括各種標(biāo)簽
</c:catch>
用法與Java代碼中的try語句非常類似,把可能產(chǎn)生異常的代碼放在<c:catch>開始標(biāo)志和結(jié)束標(biāo)志之間。這樣,當(dāng)這些代碼產(chǎn)生異常的時(shí)候,JSP容器會(huì)對(duì)異常進(jìn)行處理。
下面是一個(gè)對(duì)界面異常進(jìn)行處理的例子:
<c:catch> <c:out value="${user.address}"/> </c:catch>
如果希望產(chǎn)生異常之后,把異常信息保存起來供其它的代碼使用,可以使用var屬性指定一個(gè)變量。
下面的代碼會(huì)在異常產(chǎn)生的時(shí)候把異常信息存儲(chǔ)在exceptionInfo變量中:
<c:catch var="exceptionInfo"> <c:out value="${user.address}"/> </c:catch>
如果需要可以在后面輸出異常的信息:
<c:if test="${exceptionInfo != null}"> 運(yùn)行時(shí)候產(chǎn)生異常,異常信息為:${exceptionInfo.message} </c:if>
2 為頁面指定異常處理文件
如果不想針對(duì)每一段代碼都進(jìn)行異常處理,可以以頁面作為單位進(jìn)行異常處理,可以指定當(dāng)前頁面運(yùn)行過程中產(chǎn)生錯(cuò)誤的時(shí)候,由特定的頁面對(duì)異常進(jìn)行處理。
采用這種異常處理方式,需要編寫一個(gè)專門的異常處理文件,然后在每個(gè)需要進(jìn)行異常處理的文件中進(jìn)行設(shè)置。
編寫異常處理文件
異常處理文件中需要使用page指令的isErrorPage屬性,格式如下:
如果在頁面上進(jìn)行了這樣的設(shè)置,頁面就具有了一項(xiàng)特殊的功能,能夠訪問異常對(duì)象exception。exception是JSP的內(nèi)部對(duì)象,當(dāng)頁面在運(yùn)行過程中產(chǎn)生異常的時(shí)候,會(huì)拋出異常對(duì)象exception,該對(duì)象包含了異常信息。
下面是一個(gè)異常處理文件:
文件名:errorPage.jsp
<%@ page contentType="text/html;charset=gb2312"%> <%@ page isErrorPage="true"%>
頁面產(chǎn)生異常,異常信息如下:
為頁面指定異常處理文件
要想讓頁面產(chǎn)生異常的時(shí)候,由專門的異常處理文件對(duì)異常進(jìn)行處理,需要在該頁面中使用page指令的errorPage指定專門的異常處理界面,格式如下:
假設(shè)要設(shè)置前面編寫的errorPage.jsp頁面為當(dāng)前頁面的異常處理文件,可以使用下面的代碼:
3 通過web.xml進(jìn)行配置
如果不想為每個(gè)頁面設(shè)置異常處理文件,可以為同一種類型的異常指定統(tǒng)一的異常處理文件。還有一些異常的處理是沒有辦法通過頁面設(shè)置來完成的,例如用戶輸入了網(wǎng)站中的一個(gè)不存在文件,這時(shí)候應(yīng)該告訴用戶文件不存在,但是這種異常是沒有辦法通過在頁面設(shè)置來解決的。
要想為每種類型的異常指定一個(gè)異常處理文件,可以通過web.xml進(jìn)行配置。在web.xml中進(jìn)行配置可以根據(jù)錯(cuò)誤類型配置,例如NullPointException、IOException等,也可以根據(jù)錯(cuò)誤編碼配置。
常見的異常編碼如下:
403錯(cuò)誤:文件被禁止訪問;
404錯(cuò)誤:文件沒有找到;
500錯(cuò)誤:文件在運(yùn)行過程中發(fā)生未知錯(cuò)誤。
根據(jù)異常類型進(jìn)行配置,可以使用下面的代碼:
<error-page> < exception-type >java.lang.NullPointerException</exception-type> <location>/nullpointer.jsp</location> </error-page>
根據(jù)異常編碼進(jìn)行配置,可以使用下面的代碼:
<error-page> <error-code>401</error-code> <location>/401.jsp</location> </error-page>
希望本文所述對(duì)大家的JSP程序設(shè)計(jì)有所幫助。
相關(guān)文章
JSP內(nèi)置對(duì)象:Request和Response的簡(jiǎn)單介紹及使用
JSP內(nèi)置對(duì)象:Request和Response的簡(jiǎn)單介紹及使用,需要的朋友可以參考一下2013-02-02JSP實(shí)現(xiàn)用戶登錄、注冊(cè)和退出功能
這篇文章主要為大家詳細(xì)介紹了JSP實(shí)現(xiàn)用戶登錄、注冊(cè)和退出功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05JSP實(shí)現(xiàn)遠(yuǎn)程文件下載保存到服務(wù)器指定目錄中的方法
這篇文章主要介紹了JSP實(shí)現(xiàn)遠(yuǎn)程文件下載保存到服務(wù)器指定目錄中的方法,涉及JSP文件傳輸及目錄操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10JBuilder2005單元測(cè)試之創(chuàng)建測(cè)試固件
這篇文章主要介紹了JBuilder2005單元測(cè)試之創(chuàng)建測(cè)試固件2006-10-10win2000server IIS和tomcat5多站點(diǎn)配置
win2000server IIS和tomcat5多站點(diǎn)配置...2006-10-10