第12章JSP實(shí)例開發(fā)1—論壇_第1頁
第12章JSP實(shí)例開發(fā)1—論壇_第2頁
第12章JSP實(shí)例開發(fā)1—論壇_第3頁
第12章JSP實(shí)例開發(fā)1—論壇_第4頁
第12章JSP實(shí)例開發(fā)1—論壇_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第12章 JSP實(shí)例(shl)開發(fā)1論壇 12.2 系統(tǒng)(xtng)業(yè)務(wù)流程 12.3 數(shù)據(jù)表設(shè)計(jì) 12.4 文件結(jié)構(gòu)設(shè)計(jì) 12.5 公共模塊設(shè)計(jì) 12.1 實(shí)例開發(fā)實(shí)質(zhì) 12.7 查看帖子 12.8 發(fā)布帖子 12.9 回復(fù)帖子 12.10 刪除帖子 12.6 用戶登錄與安全退出 共三十二頁 當(dāng)我們?yōu)g覽各個(gè)門戶網(wǎng)站或者(huzh)以信息交流為主旨的網(wǎng)站時(shí),通常它們都為網(wǎng)友提供發(fā)布個(gè)人需求信息或者發(fā)表各人觀點(diǎn)、看法的平臺,我們通過這樣的平臺可以同所有瀏覽這些觀點(diǎn)的網(wǎng)友溝通、交互觀點(diǎn),這樣的平臺就是論壇。論壇為我們發(fā)布信息提供了極大的便利。目前許多的網(wǎng)站就是以論壇的形式發(fā)布供求信息,例如租房信息

2、。 本章設(shè)計(jì)的論壇系統(tǒng),采用的是JSP+JSTL+Servlet+JDBC技術(shù),數(shù)據(jù)庫采用的是SQL Server2000。通過本章學(xué)習(xí),讀者可以熟練操作SQL Server2000數(shù)據(jù)庫技術(shù),鞏固本書前面各個(gè)章節(jié)介紹的JSP、JSTL、Servlet、連接池等技術(shù),熟悉WEB應(yīng)用程序的開發(fā)流程、開發(fā)技術(shù)及模塊間的結(jié)合使用。 12.1 實(shí)例開發(fā)(kif)實(shí)質(zhì) 返回共三十二頁12.2 系統(tǒng)(xtng)業(yè)務(wù)流程 整個(gè)(zhngg)系統(tǒng)的流程如圖所示。 返回共三十二頁12.3 數(shù)據(jù)表設(shè)計(jì)(shj) 論壇系統(tǒng)的設(shè)計(jì)表主要(zhyo)包含用戶表、帖子表、回帖表。論壇系統(tǒng)的數(shù)據(jù)表樹形結(jié)構(gòu)如圖所示: 返回共

3、三十二頁12.4 文件(wnjin)結(jié)構(gòu)設(shè)計(jì) (1)本系統(tǒng)中的所有類文件(wnjin)夾及文件(wnjin)說明如圖所示。 共三十二頁12.4 文件(wnjin)結(jié)構(gòu)設(shè)計(jì) (2) 用于存放工程(gngchng)信息的文件夾和工程(gngchng)中JSP頁面文件的文件結(jié)構(gòu)圖如圖所示: 返回共三十二頁12.5 公共模塊(m kui)設(shè)計(jì) 12.5.2 分頁生成器類 12.5.3 驗(yàn)證碼生成器類 12.5.4 系統(tǒng)配置 12.5.1 數(shù)據(jù)庫連接(linji)類設(shè)計(jì) 返回共三十二頁數(shù)據(jù)庫連接(linji)類設(shè)計(jì) 本系統(tǒng)使用連接池與JDBC技術(shù)實(shí)現(xiàn)(shxin)數(shù)據(jù)庫操作,用于數(shù)據(jù)庫連接的公共類是“C

4、onnectionDB.java”,用于連接數(shù)據(jù)庫的方法是getConnection(),它返回獲得的數(shù)據(jù)庫連接池中的連接類Connection對象。 首先在類中定義靜態(tài)變量,指定服務(wù)器上下文中的JNDI節(jié)點(diǎn)與DataSource對象。static private final String jndi=syBBSPool;/JNDI節(jié)點(diǎn)static DataSource ds;/數(shù)據(jù)源對象 接下來編寫連接數(shù)據(jù)庫的方法,通過實(shí)例化上下文,獲得數(shù)據(jù)庫連接池中的JNDI節(jié)點(diǎn),得到數(shù)據(jù)庫連接類實(shí)例,數(shù)據(jù)庫連接池配置在context.xml文件中 。(代碼略,參見教材)返回共三十二頁分頁生成器類 論壇系統(tǒng)

5、分頁采用SQL語言中的“TOP”關(guān)鍵字實(shí)現(xiàn)。本系統(tǒng)編寫了兩種分頁方法,分別是針對查詢所有帖子、用戶時(shí)進(jìn)行(jnxng)的分頁,查詢單個(gè)帖子的回帖分頁。分頁生成器類中還編寫了獲得數(shù)據(jù)表中最多記錄數(shù)的方法,用來計(jì)算頁碼數(shù)目。(代碼略,參見教材) 返回(fnhu)共三十二頁驗(yàn)證碼生成器類 為了提高系統(tǒng)安全性,需要在登錄頁面使用防止惡意用戶暴力破解用戶的密碼的安全碼。本系統(tǒng)的安全碼通過(tnggu)一個(gè)Servlet類生成,該類首先定義一個(gè)靜態(tài)String類型的數(shù)組常量CHARARRAY,此數(shù)組用于儲存安全碼中出現(xiàn)的文本,代碼如下: private static final String CHARAR

6、RAY = 0, 1, 2, 3, 4, 5,6, 7, 8, 9, a, b, c, d, e, f, g, h, i,j, k, l, m, n, o, p, q, r, s, t, u, v,w, x, y, z ;/儲存的常量(chngling)由小寫字母和數(shù)字組成 然后定義用于獲得隨機(jī)文本的方法和獲得隨機(jī)顏色的方法 。最后,在“web.xml”文件中配置驗(yàn)證碼生成器類,當(dāng)請求登錄頁面時(shí)就會顯示驗(yàn)證碼了。(代碼略,參見教材) 返回共三十二頁系統(tǒng)配置 本系統(tǒng)采用Servlet與JSP整合開發(fā),對于(duy)控制器Servlet類,需要在“web.xml”文件中對其進(jìn)行相應(yīng)配置,指定處理請

7、求的URL類型等,例如: 返回(fnhu) UserController sunyang.webtier.UserController UserController /user.do 詳細(xì)代碼參見教材。共三十二頁12.6 用戶登錄與安全(nqun)退出 12.6.2 用戶(yngh)登錄與退出功能技術(shù)分析 12.6.3 用戶登錄與退出功能實(shí)現(xiàn)過程 12.6.1 用戶登錄與退出功能概述 返回共三十二頁用戶登錄與退出功能(gngnng)概述 只有注冊成為論壇的用戶才可以登錄論壇,在論壇系統(tǒng)中進(jìn)行發(fā)帖、回帖等操作。當(dāng)用戶退出(tuch)論壇時(shí),清空session中的用戶記錄。 論壇登錄首頁提供用戶注

8、冊鏈接,方便第一次訪問論壇的用戶進(jìn)行注冊。注冊用戶成功后跳轉(zhuǎn)到登錄頁面,填寫正確的用戶名稱、密碼與安全碼就可以登錄論壇,否則提示錯誤信息。登錄錯誤如圖所示。 普通用戶登錄和管理員登錄成功后顯示效果: 普通用戶登錄管理員登錄返回共三十二頁用戶登錄與退出功能(gngnng)技術(shù)分析 用戶在登錄頁面填寫名稱與密碼(m m),單擊提交后,在Servlet中調(diào)用持久化類中的判斷用戶名稱與密碼是否與數(shù)據(jù)庫中的記錄相符的方法,如果符合記錄數(shù)據(jù),那么,跳轉(zhuǎn)到登錄成功頁面,否則提示錯誤信息。在登錄成功頁面判斷用戶的權(quán)限,管理員顯示可以對用戶、帖子及回帖的刪除及查詢所有用戶的鏈接。系統(tǒng)設(shè)計(jì)如圖所示。 用戶退出時(shí),

9、在處理用戶退出的Servlet中清空用戶會話session。 返回共三十二頁用戶登錄與退出功能(gngnng)實(shí)現(xiàn)過程 返回(fnhu)1創(chuàng)建類“UserInfoVo.java”:編寫用戶屬性信息,包含編號、用戶名稱、密碼、性別、QQ號碼、電子郵箱。 2創(chuàng)建類“UserInfoDAO.java”:編寫登錄方法login(),通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,執(zhí)行查詢SQL語句來驗(yàn)證登錄頁面中填寫的用戶名稱與密碼是否正確。 3創(chuàng)建類“UserController.java”,編寫登錄方法與退出方法。 4創(chuàng)建“l(fā)ogin.jsp”登錄頁面:頁面設(shè)計(jì)3個(gè)文本框,提供用戶名稱、密碼、驗(yàn)證碼輸入功能。 (

10、以上代碼參見教材)共三十二頁12.7 查看(chkn)帖子12.7.2 查看帖子功能(gngnng)技術(shù)分析 12.7.3 查看帖子功能實(shí)現(xiàn)過程 12.7.1 查看帖子功能概述 返回共三十二頁查看(chkn)帖子功能概述 用戶發(fā)帖后將帖子信息保存到帖子數(shù)據(jù)表中,通過編寫查詢帖子數(shù)據(jù)表的SQL語句查詢帖子并將所有的帖子信息顯示(xinsh)到頁面。帖子列表頁面如圖所示。 返回共三十二頁查看(chkn)帖子功能技術(shù)分析 用戶登錄成功(chnggng)后,跳轉(zhuǎn)到論壇首頁。通過查詢帖子數(shù)據(jù)表中數(shù)據(jù),然后在頁面中顯示。詳細(xì)設(shè)計(jì)圖所示。 返回共三十二頁查看帖子功能實(shí)現(xiàn)(shxin)過程 1創(chuàng)建類“Foru

11、mInfoVo.java”:編寫帖子的屬性信息,包括帖子編號、標(biāo)題、內(nèi)容、發(fā)帖人、發(fā)帖人編號、發(fā)帖時(shí)間(shjin)、發(fā)帖人IP、回帖數(shù)等。 2創(chuàng)建類“ForumDAO.java”:編寫查詢帖子方法findAll(),通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,調(diào)用分頁生成器類中的分頁方法查詢數(shù)據(jù),遍歷查詢結(jié)果集,并將數(shù)據(jù)封裝到List對象中返回。 3創(chuàng)建類“ForumController.java”,創(chuàng)建查詢所有帖子方法findAll(),調(diào)用“ForumDAO.java”中的查詢方法獲得List對象,并將該對象傳遞到頁面。 4創(chuàng)建頁面“allForum.jsp”,該頁面獲得“ForumControll

12、er.java”中傳遞的List對象,通過EL表達(dá)式進(jìn)行顯示。頁面中判斷session中用戶的權(quán)限,如果是管理員顯示“刪除” 。(以上代碼參見教材)返回共三十二頁12.8 發(fā)布(fb)帖子 12.8.2 發(fā)布(fb)帖子功能技術(shù)分析 12.8.3 發(fā)布帖子功能實(shí)現(xiàn)過程 12.8.1 發(fā)布帖子功能實(shí)現(xiàn)過程 返回共三十二頁發(fā)布帖子功能(gngnng)實(shí)現(xiàn)過程 單擊論壇首頁中的“發(fā)布新帖子”鏈接到發(fā)布帖子頁面,該頁面提供帖子標(biāo)題、帖子內(nèi)容等文本框。用戶填寫了帖子信息后,單擊提交完成(wn chng)帖子發(fā)布操作。頁面顯示如圖所示。 返回共三十二頁發(fā)布帖子(ti zi)功能技術(shù)分析 發(fā)帖頁面中只提供帖

13、子標(biāo)題,帖子內(nèi)容輸入文本域,其他的帖子信息,例如發(fā)帖人、發(fā)帖時(shí)間、發(fā)帖人IP等都是通過session及提交(tjio)發(fā)布帖子的url地址獲得。發(fā)布帖子的流程如圖所示。 返回共三十二頁發(fā)布(fb)帖子功能實(shí)現(xiàn)過程 1在“ForumDAO.java”中編寫保存帖子方法save(),該方法獲得“ForumController.java”中傳遞的帖子信息(xnx),通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,執(zhí)行插入SQL語句來保存帖子數(shù)據(jù)。 2在“ForumController.java”中編寫保存帖子方法saveForum(),該方法接收發(fā)布帖子頁面表單數(shù)據(jù),封裝帖子對象,然后調(diào)用“ForumDAO.jav

14、a”保存帖子方法,完成帖子保存。 3創(chuàng)建發(fā)帖頁面“sendForum.jsp”:設(shè)計(jì)帖子標(biāo)題文本框,帖子內(nèi)容文本區(qū)域,發(fā)帖提交按鈕。 (以上代碼參見教材)返回共三十二頁12.9 回復(fù)(huf)帖子返回(fnhu)12.9.2 回復(fù)帖子功能技術(shù)分析 12.9.3 回復(fù)帖子功能實(shí)現(xiàn)過程 12.9.1 回復(fù)帖子功能概述 共三十二頁回復(fù)帖子(ti zi)功能概述 用戶登錄論壇后,在查看所有帖子列表過程中,單擊帖子標(biāo)題或“回復(fù)(huf)”都可以查看單個(gè)帖子內(nèi)容、其他人回復(fù)(huf)信息,也可以添寫回復(fù)(huf)內(nèi)容。單個(gè)帖子內(nèi)容如下圖所示。 回帖頁面如下圖所示。 返回共三十二頁回復(fù)帖子功能(gngnng

15、)技術(shù)分析 單擊帖子標(biāo)題或“回復(fù)”時(shí),執(zhí)行(zhxng)通過帖子ID查詢單個(gè)帖子與查詢該帖子回貼等操作。系統(tǒng)實(shí)現(xiàn)過程如圖所示。 返回共三十二頁回復(fù)(huf)帖子功能實(shí)現(xiàn)過程 1創(chuàng)建類“ReforumInfoVo.java”:該類中編寫回帖信息的屬性,包括回帖編號、標(biāo)題(biot)、內(nèi)容、帖子編號、回帖人編號、回帖人姓名、IP、回帖時(shí)間。 2在“ForumDAO.java”中編寫查詢單個(gè)帖子方法findById(),通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,執(zhí)行查詢單個(gè)帖子的SQL語句來獲得單個(gè)帖子內(nèi)容。 3創(chuàng)建類“ReforumDAO.java”,編寫根據(jù)帖子ID查詢回帖信息與保存回帖內(nèi)容兩個(gè)方法。4在

16、“ForumController.java”中編寫查詢單個(gè)帖子、單個(gè)帖子回帖、保存回帖方法。 5創(chuàng)建回帖頁面“reforum.jsp”,頁面顯示單個(gè)帖子內(nèi)容,回帖內(nèi)容、發(fā)布回復(fù)帖子的表單。 (以上代碼參見教材)返回共三十二頁12.10 刪除(shnch)帖子 12.10.2 刪除帖子功能(gngnng)技術(shù)分析 12.10.3 刪除帖子功能實(shí)現(xiàn)過程 12.10.1 刪除帖子功能概述 返回共三十二頁刪除帖子(ti zi)功能概述 管理員可以維護(hù)論壇的帖子、回帖等內(nèi)容。當(dāng)管理員登錄后,頁面中顯示刪除帖子、回帖超鏈接,單擊“刪除”后刪除對應(yīng)(duyng)的記錄。刪除帖子的頁面如圖所示。 單擊帖子標(biāo)題

17、或“回復(fù)”時(shí)顯現(xiàn)回帖內(nèi)容,并顯示“刪除”鏈接,如圖所示。 返回共三十二頁刪除(shnch)帖子功能技術(shù)分析 管理員刪除帖子時(shí)有兩種情況: 1沒有回帖(huti)時(shí):單擊“刪除”,直接數(shù)據(jù)表中記錄。 2有回帖時(shí):單擊“刪除”,首先刪除回帖記錄,然后刪除 帖子。 刪除帖子功能實(shí)現(xiàn)如圖所示。 管理員刪除回帖時(shí),只需直接刪除回帖數(shù)據(jù)表中的對應(yīng)記錄即可。 返回共三十二頁刪除帖子(ti zi)功能實(shí)現(xiàn)過程 刪除帖子功能模塊有帖子屬性類“ForumInfoVo.java”、回帖(huti)屬性類“ReforumInfoVo.java”,參見12.7.3、12.9.3節(jié)。 1在“ForumDAOjava”中添加刪除帖子方法,通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,根據(jù)帖子ID編寫首先刪除回帖表中的記錄,然后刪除帖子記錄的SQL語句并執(zhí)行。 2在“RefourumDAO.java”類中編寫根據(jù)回帖ID刪除帖子記錄的方法,通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,執(zhí)行刪除SQL語句,完成刪除功能。同時(shí)需要將帖子數(shù)據(jù)表中的回帖數(shù)目減少1。 3在“ForumDAOjava”中編寫當(dāng)刪除回帖時(shí),減少回帖數(shù)目的方法。通過連接數(shù)據(jù)庫公共類連接數(shù)據(jù)庫,編寫更新回帖數(shù)目的SQL語句,將回帖數(shù)減1。4在“ForumControl

溫馨提示

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

評論

0/150

提交評論