JBuilder2005實戰JSP之錯誤處理(4)
作者:Eve Cole
更新時間:2009-07-02 17:09:47
錯誤處理頁面error.jsp
Web應用程式一般都有一個或多個統一的錯誤處理JSP頁面,以便在功能性的JSP頁面發生錯誤時,能以一種友善的形式向使用者回饋。友善而統一的錯誤頁面是Web展現層一個無可忽略的面向。
下面,我們建立錯誤處理error.jsp文件,其程式碼如下所示:
程式碼清單11 error.jsp錯誤處理JSP頁面
1. <%@page contentType="text/html; charset=GBK" isErrorPage="true" %> 2. <html> 3. <head> 4. <title>error</title> 5. </head> 6. <body bgcolor="#ffffff"> 7. 抱歉,系統發生異常,點選<a href="login.jsp">這兒</a>返回首頁 8. </body> 9. </html> |
錯誤處理JSP頁面的page指令標籤中的isErrorPage屬性應該設定為true,如第1行所示,這樣JSP頁面中就可以存取exception隱含物件了。在第7行,我們用一種"優雅"的方式向使用者報告程式錯誤並提供一個返回登入頁面的連結。
現在,我們回過頭去,透過<%@ page errorPage="錯誤處理JSP"%>將error.jsp指定為switch.jsp和login.jsp的錯誤處理頁面。
為switch.jsp頁面新增錯誤處理頁面後,其程式碼如下:
程式碼清單12 switch.jsp新增錯誤處理Jsp頁面
1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%> 2. <%@page import="bookstore.*"%> 3. <%@page import="java.sql.*"%> 4. … |
為login.jsp頁面新增錯誤處理JSP頁面後,其程式碼如下:
程式碼清單13 login.jsp新增錯誤處理頁面
1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%> 2. <%@page errorPage="error_error.jsp"%> 3. … |
這樣,當switch.jsp的SQL查詢語句不正確引發SQLException異常時,那個晦澀難懂的異常跡資訊錯誤頁面不見了,取而代之的是下面這個友善的報錯頁面:
圖15 友善的錯誤處理頁面 |
登入失敗fail.jsp
當使用者提供不正確的密碼時,switch.jsp將轉向fail.jsp頁面,同樣你可以透過JSP精靈建立fail.jsp頁面,fail.jsp的程式碼如下:
程式碼清單14 fail.jsp 登入失敗頁面
1. <%@ page contentType="text/html; charset=GBK" errorPage="error.jsp" %> 2. <html> 3. <head> 4. <title> 5. fail 6. </title> 7. </head> 8. <body bgcolor="#ffffff"> 9. 你輸入的密碼不正確,點選<a href="login.jsp">這兒</a>返回登入頁面。 10. </body> 11. </html> |
當使用者密碼輸入錯誤後,所看到的fail.jsp頁面效果,如下圖所示:
圖16 fail.jsp頁面效果 |