![]() 圖 1 實(shí)例頁(yè)面流轉(zhuǎn)圖 |
用戶在登錄頁(yè)面中錄入密碼、驗(yàn)證正確后轉(zhuǎn)向歡迎主頁(yè)面,如果輸入的密碼錯(cuò)誤,導(dǎo)向登錄失敗頁(yè)面。這個(gè)模塊包含6個(gè)JSP文件、3個(gè)Java類及兩張后臺(tái)表。
6個(gè)JSP文件分別為用戶登錄、頁(yè)面流轉(zhuǎn)控制、錯(cuò)誤處理、登錄成功和失敗、以及退出系統(tǒng)的處理頁(yè)面,簡(jiǎn)單介紹如下:
表 1 JSP文件
JSP頁(yè)面 | 說(shuō)明 |
login.jsp | 登錄JSP頁(yè)面 |
switch.jsp | 進(jìn)行密碼驗(yàn)證和頁(yè)面流轉(zhuǎn)控制的JSP頁(yè)面。 |
error.jsp | 錯(cuò)誤處理JSP頁(yè)面,以一種友好的方式向客戶報(bào)告程序的錯(cuò)誤。為其他所有JSP頁(yè)面的錯(cuò)誤處理頁(yè)面。 |
welcome.jsp | 登錄成功后轉(zhuǎn)向的歡迎頁(yè)面。我們?cè)谠擁?yè)面中引用了一套第三方的標(biāo)簽庫(kù)。 |
fail.jsp | 登錄失敗后轉(zhuǎn)向這個(gè)錯(cuò)誤處理頁(yè)面。 |
quit.jsp | 退出系統(tǒng)后調(diào)用的頁(yè)面,它負(fù)責(zé)清除session,結(jié)束會(huì)話。 |
JSP文件主要負(fù)責(zé)頁(yè)面的展現(xiàn),而業(yè)務(wù)邏輯或資源處理等功能可以放到Java類中,表單數(shù)據(jù)則可以通過(guò)Bean來(lái)封裝,模塊中提供了3個(gè)類,介紹如下:
表 2 3個(gè)Java類
類 | 說(shuō)明 |
DBConnection | 獲取數(shù)據(jù)庫(kù)的連接。 |
User | 描述用戶對(duì)象并負(fù)責(zé)寫登錄、退出日志。 |
UserList | 獲取系統(tǒng)的所有用戶并轉(zhuǎn)換為一個(gè)網(wǎng)頁(yè)下拉框。 |
用戶信息及用戶登錄信息用數(shù)據(jù)庫(kù)表來(lái)存放,選擇Oracle 9i作為我們的數(shù)據(jù)庫(kù),當(dāng)然,你也可以使用其他類型的數(shù)據(jù)庫(kù),只要相應(yīng)地調(diào)整DBConnection類和表SQL定義語(yǔ)句就可以了,這種移植的代價(jià)是很小的,下面介紹這兩張表的用途和結(jié)構(gòu):
表 3 2張數(shù)據(jù)庫(kù)表
表名 | 說(shuō)明 |
T_USER | 用戶信息表,包含用戶ID、用戶名及密碼3個(gè)字段。 |
T_LOGIN_LOG | 記錄用戶登錄的時(shí)間和退出的時(shí)間,日志主鍵利用一個(gè)序列SEQ_LOGIN_LOG_ID產(chǎn)生。 |
這兩張數(shù)據(jù)庫(kù)表和序列的結(jié)構(gòu)如下:
![]() 圖 2 數(shù)據(jù)表及序列 |
數(shù)據(jù)庫(kù)用戶名/密碼是:jbuser/abc。在著手開發(fā)我們的登錄模塊前,必須先在數(shù)據(jù)庫(kù)中創(chuàng)建用戶,創(chuàng)建生成表和序列。