版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 用Servlet和JSP實(shí)現(xiàn)注冊(cè)登錄系統(tǒng)</p><p> 注冊(cè)登錄系統(tǒng)幾乎是每一個(gè)web程序必須擁有的功能,因此,在本次課程設(shè)計(jì)中將其單獨(dú)提取出來(lái),并使用Servlet和JSP技術(shù)來(lái)實(shí)現(xiàn)這個(gè)系統(tǒng)。雖然注冊(cè)和登錄系統(tǒng)并不復(fù)雜,但這兩個(gè)子系統(tǒng)卻擁有一個(gè)完整系統(tǒng)的必要功能,如驗(yàn)證客戶端輸入、數(shù)據(jù)庫(kù)訪問(wèn)等。因此,通過(guò)本次課程設(shè)計(jì)的練習(xí),大家可以基本上了解使用JSP/Servlet技術(shù)開(kāi)發(fā)一個(gè)完整
2、系統(tǒng)的一般步驟。</p><p> 本次課程設(shè)計(jì)的主要內(nèi)容有:</p><p><b> 系統(tǒng)概述</b></p><p><b> 設(shè)計(jì)數(shù)據(jù)庫(kù)</b></p><p><b> MD5加密的實(shí)現(xiàn)</b></p><p><b> 注
3、冊(cè)系統(tǒng)的實(shí)現(xiàn)</b></p><p><b> 登錄系統(tǒng)的實(shí)現(xiàn)</b></p><p><b> 系統(tǒng)概述</b></p><p> 本次課程設(shè)計(jì)練習(xí)了一個(gè)簡(jiǎn)單的Web系統(tǒng),該系統(tǒng)實(shí)現(xiàn)了用戶注冊(cè)、用戶登錄兩個(gè)功能。本系統(tǒng)的實(shí)現(xiàn)是基于Servlet和JSP技術(shù)的。本系統(tǒng)功能單一,業(yè)務(wù)邏輯簡(jiǎn)單。主要用于大家練
4、習(xí)如何使用Servlet和JSP技術(shù)開(kāi)發(fā)一個(gè)完整的Web系統(tǒng)。</p><p><b> 系統(tǒng)功能簡(jiǎn)介</b></p><p> 本系統(tǒng)分為兩個(gè)功能:注冊(cè)和登錄,當(dāng)用戶注冊(cè)一個(gè)新用戶時(shí)(可以使用英文和中文用戶名),就是向數(shù)據(jù)庫(kù)的t_users表中添加一條記錄。</p><p> 當(dāng)用戶輸入注冊(cè)信息時(shí),本系統(tǒng)提供了基本的客戶端驗(yàn)證,來(lái)判斷用
5、戶輸入的合法性,只有當(dāng)用戶的輸入滿足系統(tǒng)的要求時(shí),才會(huì)將用戶輸入的數(shù)據(jù)提交到服務(wù)器端負(fù)責(zé)處理注冊(cè)信息的Servlet。在注冊(cè)Servlet成功處理完用戶提交的注冊(cè)信息后,客戶端仍然會(huì)回到注冊(cè)頁(yè)面。如果用戶想使用已經(jīng)注冊(cè)的用戶名來(lái)登錄,可以通過(guò)單擊“登錄”超鏈接轉(zhuǎn)到登錄頁(yè)面進(jìn)行登錄。</p><p> 當(dāng)用戶在登錄頁(yè)面正確輸入用戶名、密碼和驗(yàn)證碼時(shí),就可以成功登錄了。在用戶登錄頁(yè)面也擁有和用戶注冊(cè)頁(yè)面類(lèi)似的客戶端
6、驗(yàn)證機(jī)制。也就是說(shuō),只有當(dāng)用戶名和密碼都輸入時(shí),系統(tǒng)才會(huì)向服務(wù)器端負(fù)責(zé)登錄的Servlet提交信息。通過(guò)驗(yàn)證用戶名和密碼都正確,系統(tǒng)才允許登錄。</p><p><b> 系統(tǒng)總體結(jié)構(gòu)</b></p><p> 本系統(tǒng)的注冊(cè)系統(tǒng)和登錄系統(tǒng)是相互獨(dú)立的,但可以通過(guò)使用注冊(cè)和登錄系統(tǒng)的相應(yīng)超鏈接導(dǎo)航到另一個(gè)系統(tǒng)中。每一個(gè)系統(tǒng)分別由一個(gè)處理業(yè)務(wù)邏輯的Servlet和若干
7、個(gè)JSP頁(yè)面組成。其中注冊(cè)系統(tǒng)的Servlet是Register類(lèi),另外還有一個(gè)用于顯示用戶注冊(cè)頁(yè)面的register.jsp文件和一個(gè)負(fù)責(zé)顯示處理結(jié)果的result.jsp文件。登錄系統(tǒng)的Servlet是Login類(lèi),另外還有一個(gè)login.jsp文件和一個(gè)表示用戶已經(jīng)成功登錄的main.jsp文件。用戶注冊(cè)登錄系統(tǒng)的工作流程圖如下圖所示:</p><p> 圖1:注冊(cè)登錄系統(tǒng)工作流程圖</p>
8、<p> 從圖1可以看出,當(dāng)Register處理完用戶提交的注冊(cè)信息后,會(huì)向result.jsp提交一個(gè)結(jié)果信息,在result.jsp中會(huì)顯示注冊(cè)成功提示信息,然后如果注冊(cè)不成功,都會(huì)返回到register.jsp頁(yè)面,以便用戶重新輸入注冊(cè)信息。</p><p><b> 設(shè)計(jì)數(shù)據(jù)庫(kù)</b></p><p> 在注冊(cè)登錄系統(tǒng)中只涉及一個(gè)t_user
9、s表,這個(gè)表對(duì)于注冊(cè)系統(tǒng)來(lái)說(shuō),每處理一個(gè)正確的注冊(cè)信息后,就會(huì)向這個(gè)表添加一條記錄。對(duì)于登錄系統(tǒng)來(lái)說(shuō),每當(dāng)用戶輸入正確的登錄信息和驗(yàn)證碼后,系統(tǒng)就會(huì)在t_users表中查找相關(guān)的記錄,以確定當(dāng)前登錄用戶和密碼是否合法。下面將給出這個(gè)表的表結(jié)構(gòu)。如表1所示:</p><p> 表1:t_users表的結(jié)構(gòu)</p><p><b> 實(shí)現(xiàn)系統(tǒng)的基礎(chǔ)類(lèi)</b></
10、p><p> 在這一部分內(nèi)容中將實(shí)現(xiàn)在注冊(cè)登錄系統(tǒng)中使用的一些重要的類(lèi),如用于連接和操作數(shù)據(jù)庫(kù)的DBServlet類(lèi)、用于對(duì)字符串進(jìn)行MD5加密的Encrypter類(lèi)以及實(shí)現(xiàn)圖形驗(yàn)證碼的ValidationCode類(lèi)。這些類(lèi)在整個(gè)系統(tǒng)中都起著舉足輕重的作用。</p><p> 3.1實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù)的DBServlet類(lèi)</p><p> DBServlet實(shí)際上是
11、一個(gè)Servlet類(lèi),由于注冊(cè)系統(tǒng)和登錄系統(tǒng)都需要訪問(wèn)和操作數(shù)據(jù)庫(kù),因此,將這些功能都封裝在DBServlet類(lèi)中,然后Login類(lèi)和Register類(lèi)從DBServlet類(lèi)繼承,這樣,Login類(lèi)和Register類(lèi)就都可以訪問(wèn)和操作數(shù)據(jù)庫(kù)了。DBServlet類(lèi)有以下3個(gè)功能:</p><p> 連接數(shù)據(jù)庫(kù)。創(chuàng)建一個(gè)Connection對(duì)象。這個(gè)功能在service方法中完成。</p><
12、;p> 執(zhí)行SQL。如果所執(zhí)行的SQL是select語(yǔ)句,就返回ResultSet對(duì)象,否則返回null。這個(gè)功能通過(guò)execSQL方法完成。</p><p> DBServlet類(lèi)的實(shí)現(xiàn)代碼請(qǐng)查看DBServlet.java文件</p><p> 3.2實(shí)現(xiàn)MD5加密</p><p> 本系統(tǒng)保存在數(shù)據(jù)庫(kù)中的密碼是通過(guò)MD5算法加密的。在JDK中提供
13、了實(shí)現(xiàn)MD5算法的類(lèi)。通過(guò)java.security.MessageDigest類(lèi)的getInstance方法可以獲得支持MD5算法的MessageDigest對(duì)象實(shí)例。關(guān)于MD5加密,詳見(jiàn)關(guān)于MD5加密.doc文檔。</p><p> 由于被MD5算法加密后的字符串中可能含有非可視的字符,這些字符可能無(wú)法保存在數(shù)據(jù)庫(kù)中,因此,需要將被加密后的字符串再次使用Base64格式進(jìn)行編碼。實(shí)現(xiàn)MD5加密的完整代碼見(jiàn)
14、Encrypter.java</p><p><b> 實(shí)現(xiàn)注冊(cè)系統(tǒng)</b></p><p> 在這個(gè)系統(tǒng)中,有一個(gè)處理用戶提交的注冊(cè)信息的Register類(lèi),除此之外,還有一個(gè)register.jsp,這個(gè)頁(yè)面負(fù)責(zé)顯示注冊(cè)頁(yè)面。當(dāng)Register類(lèi)處理完注冊(cè)信息后,如果注冊(cè)成功,會(huì)轉(zhuǎn)向result.jsp頁(yè)面,如果注冊(cè)不成功,則直接返回register.jsp,
15、可以重新注冊(cè)。</p><p> 實(shí)現(xiàn)注冊(cè)Servlet類(lèi)</p><p> Register類(lèi)負(fù)責(zé)處理用戶提交的注冊(cè)信息。如果注冊(cè)信息正確,就向t_users表中添加一條記錄,否則,會(huì)通過(guò)消息對(duì)話框顯示出現(xiàn)消息。</p><p> 在開(kāi)始處理用戶注冊(cè)信息之前,需要先調(diào)用DBServlet類(lèi)的service方法來(lái)連接數(shù)據(jù)庫(kù)。然后向t_users表中插入記錄之前
16、,需要先判斷一下用戶輸入的用戶名或者密碼是否有效,如果用戶名和密碼輸入都合法,就使用insert語(yǔ)句向t_users表中根據(jù)用戶輸入的信息插入一條記錄。如果無(wú)法成功插入記錄,說(shuō)明該用戶名在t_users表中已經(jīng)存在了。為了更穩(wěn)妥,我們可以先使用select語(yǔ)句來(lái)查詢用戶名是否存在,然后再向t_users表中插入記錄。</p><p> Register類(lèi)的完整代碼見(jiàn)Register.java。</p>
17、;<p> 實(shí)現(xiàn)注冊(cè)系統(tǒng)的主頁(yè)面</p><p> Register.jsp頁(yè)面是顯示了用戶輸入注冊(cè)信息的頁(yè)面。在register.jsp中使用<form>向Register類(lèi)提交注冊(cè)信息。</p><p> register.jsp頁(yè)面的代碼見(jiàn)register.jsp。</p><p><b> 實(shí)現(xiàn)結(jié)果JSP頁(yè)面<
18、;/b></p><p> 在Register類(lèi)處理完注冊(cè)信息后,如果注冊(cè)成功,就會(huì)轉(zhuǎn)向到result.jsp頁(yè)面。這個(gè)頁(yè)面顯示了注冊(cè)成功的結(jié)果,并且可以直接通過(guò)超鏈,轉(zhuǎn)向到登錄頁(yè)面login.jsp。結(jié)果頁(yè)面代碼詳見(jiàn)result.jsp</p><p><b> 實(shí)現(xiàn)登錄系統(tǒng)</b></p><p> 在這個(gè)系統(tǒng)中有一個(gè)處理用戶提
19、交的登錄信息的Login類(lèi)。除此之外,還有一個(gè)login.jsp頁(yè)面,該頁(yè)面負(fù)責(zé)采集用戶登錄信息。當(dāng)Login類(lèi)處理完登錄信息后,如果登錄成功,系統(tǒng)就會(huì)轉(zhuǎn)到main.jsp頁(yè)面,否則會(huì)返回到登錄頁(yè)面login.jsp,要求用戶輸入信息,重新登錄。</p><p> 實(shí)現(xiàn)登錄Servlet</p><p> Login類(lèi)負(fù)責(zé)處理用戶提交的登錄信息。這個(gè)類(lèi)和Register類(lèi)的工作流程類(lèi)似
20、。它的實(shí)現(xiàn)代碼詳見(jiàn)Login.java。</p><p> 在代碼中使用select語(yǔ)句從t_users表中查找登錄用戶是否存在,如果存在,就將加密后的登錄密碼和從t_users表中查找的密碼進(jìn)行比較,如果匹配,就表示登錄成功,并轉(zhuǎn)入main.jsp頁(yè)面。在這里,main.jsp頁(yè)面只是一個(gè)表示登錄成功的頁(yè)面,里面并沒(méi)有什么實(shí)質(zhì)性的東西,只是顯示了登錄成功的信息。</p><p> 注
21、意:在開(kāi)發(fā)的時(shí)候,不能直接把main.jsp頁(yè)面放在WebRoot目錄中,因?yàn)檫@樣,用戶就可以通過(guò)地址欄直接訪問(wèn)這個(gè)頁(yè)面,而繞過(guò)了身份驗(yàn)證。所以,我們把main.jsp頁(yè)面可以放在WebRoot\WEB-INF\pages下面,其中pages是自己新建的文件夾,WEB-INF中的文件在客戶端瀏覽器是無(wú)法直接訪問(wèn)的,一般需要驗(yàn)證才能訪問(wèn)的頁(yè)面都應(yīng)該放在WEB-INF目錄及其子目錄中。</p><p><b&g
22、t; 實(shí)現(xiàn)登錄系統(tǒng)主頁(yè)面</b></p><p> login.jsp顯示了用戶登錄頁(yè)面。在login.jsp頁(yè)面中使用<form>標(biāo)簽向Login提交登錄信息。它的代碼詳見(jiàn)login.jsp。</p><p><b> 小結(jié)</b></p><p> 本系統(tǒng)演示了如何使用Servlet和JSP來(lái)開(kāi)發(fā)一個(gè)基于JD
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java_web課程設(shè)計(jì)報(bào)告--論壇系統(tǒng)用戶注冊(cè)界面的設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告---java實(shí)現(xiàn)畫(huà)筆系統(tǒng)
- 用戶注冊(cè)系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)--酒店管理系統(tǒng)
- java課程設(shè)計(jì)---即時(shí)聊天系統(tǒng)
- java課程設(shè)計(jì)-文件管理系統(tǒng)
- java課程設(shè)計(jì)超市收銀系統(tǒng)
- java課程設(shè)計(jì)
- java課程設(shè)計(jì)----課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--學(xué)籍管理系統(tǒng)
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告---考試系統(tǒng)
- java課程設(shè)計(jì)(班級(jí)管理系統(tǒng))
- java網(wǎng)絡(luò)測(cè)試系統(tǒng)_課程設(shè)計(jì)
- java課程設(shè)計(jì)學(xué)籍管理系統(tǒng)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
- java課程設(shè)計(jì)-- 新聞發(fā)布系統(tǒng)
- 學(xué)生管理系統(tǒng)-java課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
- java課程設(shè)計(jì)--酒店管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論