使用者登入模組程式的結構圖如圖1所示:
使用者在登入頁面中錄入密碼、驗證正確後轉向歡迎首頁面,如果輸入的密碼錯誤,導向登入失敗頁面。這個模組包含6個JSP檔案、3個Java類及兩張後台表。
圖 1 執行個體頁面流轉圖
6個JSP檔案分別為使用者登入、頁面流轉控制、錯誤處理、登入成功和失敗、以及退出系統的處理頁面,簡單介紹如下:
表 1 JSP檔案
JSP頁面 |
說明 |
login.jsp |
登入JSP頁面 |
switch.jsp |
進行密碼驗證和頁面流轉控制的JSP頁面。 |
error.jsp |
錯誤處理JSP頁面,以一種友好的方式向客戶報告程式的錯誤。為其他所有JSP頁面的錯誤處理頁面。 |
welcome.jsp |
登入成功後轉向的歡迎頁面。我們在該頁面中引用了一套第三方的標籤庫。 |
fail.jsp |
登入失敗後轉向這個錯誤處理頁面。 |
quit.jsp |
退出系統後調用的頁面,它負責清除session,結束會話。 |
JSP檔案主要負責頁面的展現,而商務邏輯或資源處理等功能可以放到Java類中,表單資料則可以通過Bean來封裝,模組中提供了3個類,介紹如下:
表 2 3個Java類
類 |
說明 |
DBConnection |
擷取資料庫的串連。 |
User |
描述使用者物件並負責寫登入、退出日誌。 |
UserList |
擷取系統的所有使用者並轉換為一個網頁下拉框。 |
使用者資訊及使用者登入資訊用資料庫表來存放,選擇Oracle 9i作為我們的資料庫,當然,你也可以使用其他類型的資料庫,只要相應地調整DBConnection類和表SQL定義語句就可以了,這種移植的代價是很小的,下面介紹這兩張表的用途和結構:
表 3 2張資料庫表
表名 |
說明 |
T_USER |
使用者資訊表,包含使用者ID、使用者名稱及密碼3個欄位。 |
T_LOGIN_LOG |
記錄使用者登入的時間和退出的時間,日誌主鍵利用一個序列SEQ_LOGIN_LOG_ID產生。 |
這兩張資料庫表和序列的結構如下:
圖 2 資料表及序列
資料庫使用者名稱/密碼是:jbuser/abc。在著手開發我們的登入模組前,必須先在資料庫中建立使用者,建立產生表和序列。