JBuilder2005實戰JSP之錯誤處理
錯誤處理頁面error.jsp
Web應用程序一般都有一個或多個統一的錯誤處理JSP頁面,以便在功能性的JSP頁面發生錯誤時,能以一種友好的形式向用戶反饋。友好而統一的錯誤頁面是Web展現層一個無可忽略的方面。
下面,我們創建錯誤處理error.jsp文件,其代碼如下所示:
代碼清單 11 error.jsp錯誤處理JSP頁面
錯誤處理JSP頁面的page指令標簽中的isErrorPage屬性應該設置為true,如第1行所示,這樣JSP頁面中就可以訪問exception隱含對象了。在第7行,我們用一種"優雅"的方式向用戶報告程序錯誤并提供一個返回到登錄頁面的鏈接。
現在,我們回過頭去,通過<%@ page errorPage="錯誤處理JSP"%>將error.jsp指定為switch.jsp和login.jsp的錯誤處理頁面。
為switch.jsp頁面添加錯誤處理頁面后,其代碼如下:
代碼清單 12 switch.jsp添加錯誤處理Jsp頁面
為login.jsp頁面添加錯誤處理JSP頁面后,其代碼如下:
代碼清單 13 login.jsp添加錯誤處理頁面
這樣,當switch.jsp的SQL查詢語句不正確引發SQLException異常時,那個晦澀難懂的異常跡信息錯誤頁面不見了,取而代之的是下面這個友好的報錯頁面:
登錄失敗fail.jsp
當用戶提供不正確的密碼時,switch.jsp將轉向fail.jsp頁面,同樣你可以通過JSP向導創建fail.jsp頁面,fail.jsp的代碼如下:
代碼清單 14 fail.jsp 登錄失敗頁面
當用戶密碼輸入錯誤后,所看到的fail.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頁面效果 |

