圖書(shū)管理系統(tǒng)之注冊(cè).ppt_第1頁(yè)
圖書(shū)管理系統(tǒng)之注冊(cè).ppt_第2頁(yè)
圖書(shū)管理系統(tǒng)之注冊(cè).ppt_第3頁(yè)
圖書(shū)管理系統(tǒng)之注冊(cè).ppt_第4頁(yè)
圖書(shū)管理系統(tǒng)之注冊(cè).ppt_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

圖書(shū)管理系統(tǒng) 主要內(nèi)容 圖書(shū)管理系統(tǒng)的注冊(cè)模塊作者 084班黎印根 20081543 注冊(cè)的主要功能模塊簡(jiǎn)介 1 用戶名驗(yàn)證 在用戶名后面輸入用戶名后要到數(shù)據(jù)庫(kù)中查找該用戶是否存在 2 密碼驗(yàn)證 輸入的密碼不能為空3 確認(rèn)密碼驗(yàn)證 輸入的密碼不能為空 且要和密碼一致 4 出生日期 從下拉列表中選擇 年 月 日5 手機(jī)號(hào)碼驗(yàn)證 不能為空 要符合手機(jī)號(hào)碼的格式 6 電子郵件驗(yàn)證 輸入的電子郵件要符合相應(yīng)的格式 7 注冊(cè) 點(diǎn)擊 注冊(cè) 按鈕 要先判斷輸入的注冊(cè)信息是否合法 如果合法 則把對(duì)應(yīng)得信息插入到數(shù)據(jù)庫(kù)的user表中 后面會(huì)對(duì)這些功能模塊的具體實(shí)現(xiàn)做詳細(xì)介紹 注冊(cè)模塊所用到的知識(shí)點(diǎn) 1 javascript的局部刷新層的技術(shù) 以及刷新多個(gè)層的方法設(shè)計(jì)和參數(shù)設(shè)置 2 數(shù)據(jù)庫(kù)技術(shù) 數(shù)據(jù)庫(kù)的鏈接 以及數(shù)據(jù)的查找和插入 3 MVC技術(shù) 使用mvc模式進(jìn)行設(shè)計(jì) 4 正則表達(dá)式 驗(yàn)證數(shù)據(jù)輸入格式 5 日期格式在數(shù)據(jù)庫(kù)和java之間格式的轉(zhuǎn)換 6 亂碼的處理 7 HTML技術(shù)和jsp技術(shù)以及servlet技術(shù)等 1 用戶名驗(yàn)證模塊的實(shí)現(xiàn) 用戶名驗(yàn)證是注冊(cè)模塊中相對(duì)比較復(fù)雜的 其具體實(shí)現(xiàn)過(guò)程是 當(dāng)在注冊(cè)界面reg jsp中的用戶名文本框中輸入數(shù)據(jù)后 用戶會(huì)觸發(fā)一個(gè)onblur事件 該事件調(diào)用一個(gè)javaScript中的startRequest n 函數(shù) 參數(shù)n是傳進(jìn)來(lái)的文本框的值 userForm loginname value 該函數(shù)調(diào)用createXMLHttpRequest 方法創(chuàng)建一個(gè)xmlHttp對(duì)象 通過(guò)該對(duì)象調(diào)用handleStateChange 方法 并把得到的用戶名發(fā)送給一個(gè)servlet類 loginnameCheck java 轉(zhuǎn)發(fā)到該servlet后該類先獲取該用戶名 然后通過(guò)查找數(shù)據(jù)庫(kù)并判斷后返回對(duì)應(yīng)的內(nèi)容到注冊(cè)頁(yè)面 注冊(cè)頁(yè)面通過(guò)xmlHttp responseText獲取返回的值并更新到對(duì)應(yīng)的層中 從而提醒用戶 輸入的用戶名是否合法 該過(guò)程判斷的內(nèi)容和返回的值可以看如下代碼 部分代碼 LoginNameCheck java if type equals a try GetLoginNamegetLoginname newGetLoginName userBean getLoginname getLoginname loginname catch Exceptione e printStackTrace if loginname if userBean null out println 用戶已存在 out println else out println OK out println elseif loginname out println 用戶名不能為空 out println GetLoginName java publicUserBeangetLoginname Stringloginname throwsException UserBeanuserBean null DataBasedb newDataBase Connectioncn null PreparedStatementpst null ResultSetrs null try cn db getconn Stringsql select fromuserwhereloginname pst cn prepareStatement sql pst setString 1 loginname rs pst executeQuery if rs next userBean newUserBean userBean setUserid rs getInt userid userBean setLoginname rs getString loginname userBean setUsername rs getString username userBean setBirthday rs getDate birthday userBean setCert rs getString cert userBean setCerttype rs getString certtype userBean setEmail rs getString email userBean setPassword rs getString password userBean setPhone rs getString phone userBean setRole rs getInt role userBean setSex rs getString sex catch Exceptione throwe finally try pst close rs close cn close catch Exceptione e printStackTrace returnuserBean 2 密碼驗(yàn)證模塊的實(shí)現(xiàn) 當(dāng)在注冊(cè)界面reg jsp中的密碼框中輸入數(shù)據(jù)后 用戶會(huì)觸發(fā)一個(gè)onblur事件 該事件調(diào)用一個(gè)javaScript中的startRequest n 函數(shù) 參數(shù)n是傳進(jìn)來(lái)的文本框的值 userForm password value 該函數(shù)調(diào)用createXMLHttpRequest 方法創(chuàng)建一個(gè)xmlHttp對(duì)象 通過(guò)該對(duì)象調(diào)用handleStateChange 方法 并把得到的用戶名發(fā)送給一個(gè)servlet類 loginnameCheck java 轉(zhuǎn)發(fā)到該servlet后該類先獲取該password 然后通過(guò)判斷后返回對(duì)應(yīng)的內(nèi)容到注冊(cè)頁(yè)面 注冊(cè)頁(yè)面通過(guò)xmlHttp responseText獲取返回的值并更新到對(duì)應(yīng)的層中 從而提醒用戶 輸入的密碼是否合法 該過(guò)程判斷的內(nèi)容和返回的值可以看如下代碼 代碼部分 elseif type equals b if password out println 密碼不能為空 out println elseif password out println OK out println 3 確認(rèn)密碼驗(yàn)證具體實(shí)現(xiàn) 當(dāng)在注冊(cè)界面reg jsp中的密碼框中輸入數(shù)據(jù)后 用戶會(huì)觸發(fā)一個(gè)onblur事件 該事件調(diào)用一個(gè)javaScript中的startRequest n 函數(shù) 參數(shù)n是傳進(jìn)來(lái)的文本框的值 userForm repass value 該函數(shù)調(diào)用createXMLHttpRequest 方法創(chuàng)建一個(gè)xmlHttp對(duì)象 通過(guò)該對(duì)象調(diào)用handleStateChange 方法 并把得到的用戶名發(fā)送給一個(gè)servlet類 loginnameCheck java 轉(zhuǎn)發(fā)到該servlet后該類先獲取該repass 然后通過(guò)判斷后返回對(duì)應(yīng)的內(nèi)容到注冊(cè)頁(yè)面 注冊(cè)頁(yè)面通過(guò)xmlHttp responseText獲取返回的值并更新到對(duì)應(yīng)的層中 從而提醒用戶 輸入的確認(rèn)密碼是否合法 該過(guò)程判斷的內(nèi)容和返回的值可以看如下代碼 部分代碼 if repass if password equals repass out println OK out println else out println 2次輸入密碼不一致 out println elseif repass out println 密碼不能為空 out println 4 出生日期具體實(shí)現(xiàn) 當(dāng)在注冊(cè)界面reg jsp中的 出生年月 的下拉框中選擇自己的出生 年 月 日 這里比較簡(jiǎn)單 不需要驗(yàn)證 部分代碼 5 手機(jī)號(hào)碼驗(yàn)證具體實(shí)現(xiàn) 當(dāng)在注冊(cè)界面reg jsp中的密碼框中輸入數(shù)據(jù)后 用戶會(huì)觸發(fā)一個(gè)onblur事件 該事件調(diào)用一個(gè)javaScript中的startRequest n 函數(shù) 參數(shù)n是傳進(jìn)來(lái)的文本框的值 userForm phone value 該函數(shù)調(diào)用createXMLHttpRequest 方法創(chuàng)建一個(gè)xmlHttp對(duì)象 通過(guò)該對(duì)象調(diào)用handleStateChange 方法 并把得到的用戶名發(fā)送給一個(gè)servlet類 loginnameCheck java 轉(zhuǎn)發(fā)到該servlet后該類先獲取該phoen 然后通過(guò)正則表達(dá)式和if語(yǔ)句的判斷后返回對(duì)應(yīng)的內(nèi)容到注冊(cè)頁(yè)面 注冊(cè)頁(yè)面通過(guò)xmlHttp responseText獲取返回的值并更新到對(duì)應(yīng)的層中 從而提醒用戶 輸入的手機(jī)號(hào)碼是否合法 該過(guò)程判斷的內(nèi)容和返回的值可以看如下代碼 部分代碼 if phone Stringcheckphone 0 0 1 13 4 9 15 8 9 15 0 1 18 7 8 0 9 8 Patternregex Ppile checkphone Matchermatcher regex matcher phone if matcher matches out println OK out println else out println 非法手機(jī)號(hào)碼 out println elseif phone out println 手機(jī)號(hào)碼沒(méi)有輸入 out println 6 電子郵件驗(yàn)證具體實(shí)現(xiàn) 當(dāng)在注冊(cè)界面reg jsp中的密碼框中輸入數(shù)據(jù)后 用戶會(huì)觸發(fā)一個(gè)onblur事件 該事件調(diào)用一個(gè)javaScript中的startRequest n 函數(shù) 參數(shù)n是傳進(jìn)來(lái)的文本框的值 userForm email value 該函數(shù)調(diào)用createXMLHttpRequest 方法創(chuàng)建一個(gè)xmlHttp對(duì)象 通過(guò)該對(duì)象調(diào)用handleStateChange 方法 并把得到的用戶名發(fā)送給一個(gè)servlet類 loginnameCheck java 轉(zhuǎn)發(fā)到該servlet后該類先獲取該email 然后通過(guò)正則表達(dá)式和if語(yǔ)句的判斷后返回對(duì)應(yīng)的內(nèi)容到注冊(cè)頁(yè)面 注冊(cè)頁(yè)面通過(guò)xmlHttp responseText獲取返回的值并更新到對(duì)應(yīng)的層中 從而提醒用戶 輸入的電子郵件是否合法 該過(guò)程判斷的內(nèi)容和返回的值可以看如下代碼 部分代碼 if email Stringcheckemail a z0 9a z a z0 9a z a z0 9a z a z0 9a z a za z 2 Patternregex Ppile checkemail Matchermatcher regex matcher email if matcher matches out println OK out println else out println 輸入的email不正確 out println elseif email out println 郵件不能為空 out println 7 注冊(cè)具體實(shí)現(xiàn) 該模塊是注冊(cè)中最關(guān)鍵的一步 其具體實(shí)現(xiàn)為 點(diǎn)擊注冊(cè)界面reg jsp的Form表單中的 注冊(cè) 按鈕 把數(shù)據(jù)發(fā)送給一個(gè)servlet類 AddUser java 該類接受相應(yīng)的數(shù)據(jù)后并判斷其都合法后調(diào)用操作數(shù)據(jù)庫(kù)的類AddUserModel java類的add userBean 方法 向數(shù)據(jù)庫(kù)中增加相應(yīng)的記錄 其過(guò)程存在許多細(xì)節(jié)問(wèn)題 比如 獲取日期后插入到數(shù)據(jù)庫(kù)前先需要進(jìn)行格式轉(zhuǎn)換 還有插入中文時(shí)候可能會(huì)出現(xiàn)亂碼問(wèn)題 還會(huì)出現(xiàn)許多異常 注冊(cè)成功的條件設(shè)置問(wèn)題等等 下面我們對(duì)這些問(wèn)題一一解答 日期的獲取和格式轉(zhuǎn)換 部分代碼 Stringyear request getParameter year Stringmonth request getParameter month Stringday request getParameter day birthday1 year month day java sql Datebirthday null try SimpleDateFormatsdf newSimpleDateFormat yyyy MM dd java util Datedate sdf parse birthday1 birthday newjava sql Date date getTime catch Exceptione e printStackTrace 中文亂碼問(wèn)題 request setCharacterEncoding UTF 8 response setContentType text html charset UTF 8 異常處理 例如 空指針異常 我們先要判斷它是否為空 如果為空 則為了不引起異常 給他附一個(gè)非空的值 部分代碼 StringloginnameDiv request getParameter loginnameDiv if loginnameDiv loginnameDiv NO StringpasswordDiv request getParameter passwordDiv if passwordDiv passwordDiv NO StringrepassDiv request getParameter repassDiv if repassDiv repassDiv NO StringemailDiv request getParameter emailDiv if emailDiv emailDiv NO StringphoneDiv request getParameter phoneDiv if phoneDiv phoneDiv NO 注冊(cè)成功的條件設(shè)置 當(dāng)要向數(shù)據(jù)庫(kù)中插入注冊(cè)信息之前 要先判斷用戶輸入的所有數(shù)據(jù)是否都合理 如果都符合要求就注冊(cè)成功 否則就轉(zhuǎn)到失敗界面 要判斷用戶輸入的數(shù)據(jù)是否合理 關(guān)鍵是要獲取驗(yàn)證信息是否都通過(guò) 也就是說(shuō)必須獲得DIV中的信息 當(dāng)DIV中的信息都為 OK 時(shí)就說(shuō)明數(shù)據(jù)合法 在另一個(gè)界面

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論