用戶登錄模塊程序的結構圖如圖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。在著手開發我們的登錄模塊前,必須先在數據庫中創建用戶,創建生成表和序列。