黃岡職業(yè)技術(shù)學(xué)院校園論壇系統(tǒng)畢業(yè)設(shè)計(jì)(論文)

上傳人:1666****666 文檔編號(hào):37792618 上傳時(shí)間:2021-11-04 格式:DOC 頁(yè)數(shù):30 大小:1.23MB
收藏 版權(quán)申訴 舉報(bào) 下載
黃岡職業(yè)技術(shù)學(xué)院校園論壇系統(tǒng)畢業(yè)設(shè)計(jì)(論文)_第1頁(yè)
第1頁(yè) / 共30頁(yè)
黃岡職業(yè)技術(shù)學(xué)院校園論壇系統(tǒng)畢業(yè)設(shè)計(jì)(論文)_第2頁(yè)
第2頁(yè) / 共30頁(yè)
黃岡職業(yè)技術(shù)學(xué)院校園論壇系統(tǒng)畢業(yè)設(shè)計(jì)(論文)_第3頁(yè)
第3頁(yè) / 共30頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《黃岡職業(yè)技術(shù)學(xué)院校園論壇系統(tǒng)畢業(yè)設(shè)計(jì)(論文)》由會(huì)員分享,可在線閱讀,更多相關(guān)《黃岡職業(yè)技術(shù)學(xué)院校園論壇系統(tǒng)畢業(yè)設(shè)計(jì)(論文)(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、黃職校園論壇系統(tǒng) 學(xué) 業(yè) 作 品 題 目: 黃職校園論壇系統(tǒng) 學(xué) 院 名 稱: 電子信息學(xué)院 專 業(yè): 軟件外包服務(wù) 學(xué) 生 姓 名: 班 級(jí): 軟件201102班 學(xué) 號(hào): 201102161217

2、 指 導(dǎo) 教 師: 評(píng) 閱 老 師: 黃岡職業(yè)技術(shù)學(xué)院學(xué)院教務(wù)處 二○一三年十一月制 摘 要 開(kāi)發(fā)本論壇系統(tǒng)的目的是為了方便信息的交流,提供一個(gè)供用戶交流的平臺(tái),為廣大用戶提供交流經(jīng)驗(yàn)、探討問(wèn)題的網(wǎng)上社區(qū)。本論壇主要基于JAVA技術(shù)實(shí)現(xiàn)的校園論壇系統(tǒng),系統(tǒng)包含六個(gè)模塊:論壇用戶登陸注冊(cè)模塊,論壇賬戶信息模塊,論壇文章發(fā)布模塊,論壇文章管理模塊,用戶管理模塊,版主管理模塊。論文詳細(xì)描述了這些模塊的結(jié)構(gòu)、功能以及具體設(shè)計(jì)過(guò)程。為了達(dá)到運(yùn)行穩(wěn)定、高效的目的,

3、系統(tǒng)基于J2EE平臺(tái)開(kāi)發(fā),采用MVC模式,使用目前流行Struts2、 Hibernate、Spring等框架,在結(jié)合 JSP頁(yè)面技術(shù)和MySQL數(shù)據(jù)庫(kù)技術(shù)之下開(kāi)發(fā)了這個(gè)校園論壇系統(tǒng)。 該論壇為同學(xué)們提供了一個(gè)交流的平臺(tái),在這里注冊(cè)用戶可以自由地發(fā)表自己的觀點(diǎn)和對(duì)論壇的主題帖子發(fā)表意見(jiàn),還可以及時(shí)的解決網(wǎng)友提出的問(wèn)題,獲取對(duì)自己有用的知識(shí)。該論壇還有一些特殊的功能,強(qiáng)大的模糊搜索功能等。 關(guān)鍵詞:MVC、Struts2、 Hibernate、AJAX 目 錄 第1章. 前 言 1 第2章. 系統(tǒng)技術(shù)及運(yùn)行環(huán)境 2 1.1 JSP技術(shù)簡(jiǎn)介 2 1.2 JAVABE

4、AN技術(shù)簡(jiǎn)介 2 1.3 其它的一些技術(shù) 2 1.4 運(yùn)行環(huán)境 2 第3章. 系統(tǒng)需求分析說(shuō)明 3 1.5 系統(tǒng)介紹 3 1.6 功能需求 3 第4章. 總體設(shè)計(jì) 4 1.7 總體結(jié)構(gòu)和模塊設(shè)計(jì) 4 1.8 處理流程 4 第5章. 數(shù)據(jù)庫(kù)設(shè)計(jì) 6 1.9 數(shù)據(jù)庫(kù)結(jié)構(gòu)屬性圖 6 1.10 數(shù)據(jù)庫(kù)表格設(shè)計(jì) 7 第6章. 系統(tǒng)詳細(xì)設(shè)計(jì) 9 1.11 前臺(tái)頁(yè)面 10 1.12 后臺(tái)頁(yè)面 15 1.13 系統(tǒng)設(shè)計(jì)主要代碼及配置文件 16 第7章. 測(cè)試 23 1.14 測(cè)試方法 23 1.15 測(cè)試范圍 23 1.16 測(cè)試報(bào)告 23 第8章. 總結(jié)與展望 24

5、 第9章. 參考文獻(xiàn) 25 第10章 致 謝 26 第1章. 前 言 進(jìn)入21世紀(jì),計(jì)算機(jī)技術(shù)迅速向著網(wǎng)絡(luò)化的、集成化方向發(fā)展。傳統(tǒng)的單機(jī)版應(yīng)用軟件正在逐漸退出舞臺(tái),取而代之的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中似乎存在著兩種不同的趨勢(shì),一種是稱為客戶端——服務(wù)器的C/S結(jié)構(gòu)應(yīng)用系統(tǒng),這類軟件具有結(jié)構(gòu)嚴(yán)謹(jǐn),運(yùn)行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點(diǎn),被廣泛運(yùn)用于局域網(wǎng)中。另一種,也是本畢業(yè)設(shè)計(jì)所采用的,是稱為瀏覽器——服務(wù)器的B/S結(jié)構(gòu)應(yīng)用系統(tǒng),它的特點(diǎn)是在客戶端直接采用了功能強(qiáng)大的瀏覽器軟件作為界面,其優(yōu)點(diǎn)在于軟件

6、開(kāi)發(fā)效率高,客戶端不受操作平臺(tái)的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見(jiàn)效快,用戶可以不必進(jìn)行服務(wù)器方面的投資,而是去租用,甚至是免費(fèi)使用ISP的服務(wù)器資源,因而受到越來(lái)越多中小型單位的青睞。 隨著中國(guó)網(wǎng)絡(luò)的普及和計(jì)算機(jī)及其外設(shè)的大幅度降價(jià),Internet這個(gè)概念逐漸深入人心。中國(guó)網(wǎng)民的數(shù)量呈幾何級(jí)數(shù)量增長(zhǎng),BBS的普及程度也直追Email。每個(gè)網(wǎng)站幾乎都擁有自己的BBS或者BBS鏈接,BBS社區(qū)提供給用戶的服務(wù)是全面而且非常友好的,論壇系統(tǒng)服務(wù)已經(jīng)是互聯(lián)網(wǎng)站一種極為常見(jiàn)的互動(dòng)交流服務(wù)。論壇可以向網(wǎng)友提供開(kāi)放性的分類專題討論區(qū)服務(wù),可以

7、在此發(fā)表自己的某些觀感、交流某些技術(shù)、經(jīng)驗(yàn)?zāi)酥寥松母形蚺c憂歡,亦可以做為網(wǎng)友們之間的交流渠道,網(wǎng)站亦可在此回答網(wǎng)友們提出的問(wèn)題或發(fā)布某些消息。通過(guò)論壇的方式,增強(qiáng)個(gè)人與個(gè)人,團(tuán)體與團(tuán)體,個(gè)人與團(tuán)體之間的交流聯(lián)系,在Internet上實(shí)現(xiàn)信息的傳遞,提高辦事效率[5]。因此論壇建設(shè)在Internet應(yīng)用上的地位顯而易見(jiàn),它已成為現(xiàn)代人溝通和獲取信息的重要組成部分,從而倍受人們的重視。 本文利用JSP和MySQL做一個(gè)在線論壇系統(tǒng)。該系統(tǒng)以Internet為平臺(tái),前臺(tái)可使任何人注冊(cè)、登陸在論壇上進(jìn)行發(fā)貼及討論,版主可以進(jìn)行一部分管理。而管理員也可以在后臺(tái)進(jìn)行相關(guān)的管理。 25 第2

8、章. 系統(tǒng)技術(shù)及運(yùn)行環(huán)境 1.1 JSP技術(shù)簡(jiǎn)介 JSP是服務(wù)器端的腳本語(yǔ)言,是以SERVLET為基礎(chǔ)開(kāi)發(fā)而成的動(dòng)態(tài)網(wǎng)頁(yè)生成技術(shù),它的底層實(shí)現(xiàn)是JAVA SERVLET。JSP(JAVA SERVER PAGES)由HTML代碼和潛入其中的JAVA代碼所組成[6]。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些代碼進(jìn)行處理,然后將生產(chǎn)的HTML頁(yè)面返回客戶端的瀏覽器JSP的特點(diǎn)是面向?qū)ο蟆?跨平臺(tái)、 和SERVLET一樣穩(wěn)定、 可以使用SERVLET提供的API,同時(shí)克服了SERVLET的缺點(diǎn)。在使用JSP時(shí)一般和JAVABEANS結(jié)合使用,從而將界面表現(xiàn)和業(yè)務(wù)邏輯分離[7]。 1.2 JAVABE

9、AN技術(shù)簡(jiǎn)介 JAVABEAN是基于JAVA的組建模型,在JAVA平臺(tái)中,可以無(wú)限擴(kuò)充JAVA程序的功能,通過(guò)JAVABEAN的組合可以快速生產(chǎn)新的應(yīng)用程序。對(duì)于程序員來(lái)說(shuō),最好的一點(diǎn)就是JAVABEAN可以實(shí)現(xiàn)代碼的重復(fù)利用,另外對(duì)于程序的易維護(hù)性等等也有很重大的意義。JAVABEAN 通過(guò)JAVA虛擬機(jī)(JAVA VIRTUAL MACHINE)執(zhí)行,運(yùn)行JAVABEAN最小的需求是JDK1.1或者以上的版本。JAVABEAN傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從JSP誕生后,JAVABEAN更多的應(yīng)用在了非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出了越來(lái)越強(qiáng)的生命力[8]。 1

10、.3 其它的一些技術(shù) 本系統(tǒng)還使用了一些其它的技術(shù),如Struts2,Hibernate,Spring,AJAX等。這些都會(huì)在后面的代碼處作相應(yīng)的介紹。 1.4 運(yùn)行環(huán)境 為了保證BBS論壇管理系統(tǒng)運(yùn)行的高效性和可靠性,服務(wù)器應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運(yùn)行于國(guó)際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運(yùn)行要求如下: 軟件環(huán)境: 客戶端: Windows,Linux,Internet Explorer(IE6.0及其以上版本)等。 服務(wù)器端:Windows,resin 3.1.9,JDK 1.5及其以上版本 數(shù)據(jù)庫(kù):采用MySQL,運(yùn)

11、行于服務(wù)器端。 第3章. 系統(tǒng)需求分析說(shuō)明 1.5 系統(tǒng)介紹 本系統(tǒng)是基于B/S結(jié)構(gòu)的一個(gè)小型論壇,主要基于Windows平臺(tái),通過(guò)這個(gè)論壇,用戶之間可以實(shí)現(xiàn)互動(dòng)交流。 1.6 功能需求 通過(guò)對(duì)網(wǎng)上的一些著名論壇的認(rèn)識(shí),該論壇至少應(yīng)該實(shí)現(xiàn)以下功能: (1) 注冊(cè)管理:能夠?qū)τ脩裘?,密碼的簡(jiǎn)單驗(yàn)證,能夠防止利用頁(yè)面刷新重復(fù)注冊(cè),已經(jīng)存在的用戶名稱不能重復(fù)注冊(cè)。 (2) 瀏覽帖子:可以根據(jù)作者或內(nèi)容等為關(guān)鍵字搜索帖子,分論壇版塊顯示帖子,顯示帖子詳情,瀏覽帖子時(shí)不要求用戶登錄,但回復(fù)帖子前用戶必須登錄。 (3) 發(fā)表及回復(fù)帖子:只有登錄用戶才可以發(fā)表和回復(fù)帖子,并且對(duì)帖子的字?jǐn)?shù)有

12、限制。 (4) 用戶個(gè)人信息管理:登陸用戶可以編輯注冊(cè)后的個(gè)人資料,如修改密碼等,但是不可以修改用戶名稱。也可以對(duì)自己發(fā)表的帖子進(jìn)行操作:如修改,刪除。 (5) 回復(fù)管理:各論壇版塊的版主可以對(duì)自己管理的版塊的帖子的回復(fù)的帖子進(jìn)行管理,可以屏蔽回復(fù)。 (6) 論壇版塊管理:只有管理員有該權(quán)限,管理員可以添加,刪除版塊,也可以修改版塊資料,如版塊名稱,上級(jí)版塊,版主。 (7) 用戶管理:只有管理員有該權(quán)限,管理員可以禁用,啟用用戶,進(jìn)行用戶密碼重置。 (8) 公告管理:只有管理員有該權(quán)限,管理員可以添加,刪除公告。 (9) 帖子管理:各論壇版塊的版主可以對(duì)自己管理的版塊的帖子進(jìn)行管理

13、,可以屏蔽和刪除帖子。 第4章. 總體設(shè)計(jì) 本系統(tǒng)采用B/S模式設(shè)計(jì),方便系統(tǒng)的維護(hù)和使用。采取MVC設(shè)計(jì)模式與多層架構(gòu)的基于J2EE平臺(tái)的設(shè)計(jì)[13],使系統(tǒng)擁有良好的擴(kuò)展性,在滿足當(dāng)前使用需求同時(shí)還兼顧系統(tǒng)以后可能的功能擴(kuò)充。系統(tǒng)分成幾個(gè)相對(duì)獨(dú)立的模塊,但這些模塊都進(jìn)行集中式管理。 1.7 總體結(jié)構(gòu)和模塊設(shè)計(jì) 該系統(tǒng)可分為前臺(tái)和后臺(tái)兩個(gè)部分,前臺(tái)是提供給一般用戶和版主使用的,后臺(tái)是提供給管理員進(jìn)行一些系統(tǒng)維護(hù)的。 功能結(jié)構(gòu)圖如下: 校園論壇管理系統(tǒng) 前臺(tái)功能 后臺(tái)功能 瀏覽搜索帖子 用戶登陸注冊(cè) 發(fā)表回復(fù)帖子 個(gè)人資料管理 帖子管理 用戶

14、管理 論壇版塊管理 公告管理 圖3.1 系統(tǒng)功能結(jié)構(gòu)圖 1.8 處理流程 對(duì)于本系統(tǒng)的使用者來(lái)說(shuō),可以分為以下幾類:未注冊(cè)的用戶,已注冊(cè)的用戶。已注冊(cè)的用戶又可以分為一般用戶、版主、管理員三類。根據(jù)用戶角色的不同,用戶擁有的權(quán)限也會(huì)不同。根據(jù)這個(gè)來(lái)分析該系統(tǒng)的業(yè)務(wù)流程。 系統(tǒng)的業(yè)務(wù)流程如圖3.2所示: 圖3.2 業(yè)務(wù)流程圖 第5章. 數(shù)據(jù)庫(kù)設(shè)計(jì) 在建設(shè)網(wǎng)站系統(tǒng)之前,必須對(duì)系統(tǒng)所用到的數(shù)據(jù)進(jìn)行大致的分類和具體的結(jié)構(gòu)設(shè)計(jì),既要做到清晰明了,又要能適應(yīng)系統(tǒng)各項(xiàng)功能的調(diào)用,而不至于產(chǎn)生結(jié)構(gòu)上的邏輯混亂,保證關(guān)鍵數(shù)據(jù)在意外情況下不會(huì)被破壞,可以說(shuō)數(shù)據(jù)庫(kù)是系統(tǒng)的重中之

15、重。 數(shù)據(jù)庫(kù)設(shè)計(jì)要遵循一些規(guī)則,一個(gè)好的數(shù)據(jù)庫(kù)滿足一些嚴(yán)格的約束和要求。盡量分離各實(shí)體對(duì)應(yīng)的表,一個(gè)實(shí)體對(duì)應(yīng)一個(gè)表,分析該實(shí)體有哪些屬性,對(duì)應(yīng)有些什么字段,以及各實(shí)體之間的聯(lián)系。實(shí)體、屬性與聯(lián)系是進(jìn)行概念設(shè)計(jì)時(shí)要考慮的三個(gè)元素,也是一個(gè)好的數(shù)據(jù)庫(kù)設(shè)計(jì)的核心[14]。 從實(shí)際出發(fā),經(jīng)過(guò)仔細(xì)地設(shè)計(jì),得到各表的設(shè)計(jì)如下所示。 1.9 數(shù)據(jù)庫(kù)結(jié)構(gòu)屬性圖 圖4.1 數(shù)據(jù)庫(kù)結(jié)構(gòu)屬性圖 1.10 數(shù)據(jù)庫(kù)表格設(shè)計(jì) 表4.1: UserInfo 用戶信息表 列名 說(shuō)明 類型 備注 uid 主鍵 Int(4) 自增 username 用戶名稱 Varchar(

16、20) Not null password 密碼 Varchar(20) Not null head 頭像 Varchar(20) Not null sign 個(gè)人簽名 Varchar(200) Not null roleid 角色 Int(4) Not null active 狀態(tài) Int(4) Not null 表4.2: Topic 帖子表 列名 說(shuō)明 類型 備注 tid 主鍵 Int(4) 自增 title 帖子主題 Varchar(50) Not null content 帖子內(nèi)容 Varchar(1000

17、) Not null authorid 作者 Int(4) Not null time 發(fā)表時(shí)間 datetime Not null sortid 所屬的論壇版塊 Int(4) Not null 表4.3: Reply 回復(fù)表 列名 說(shuō)明 類型 備注 id 主鍵 Int(4) 自增 title 帖子主題 Varchar(50) Not null content 帖子內(nèi)容 Varchar(1000) Not null authorid 作者 Int(4) Not null time 發(fā)表時(shí)間 datetime Not

18、 null topicid 回復(fù)的帖子編號(hào) Int(4) Not null 表4.4: Sort 論壇版塊分類表 列名 說(shuō)明 類型 備注 sid 主鍵 Int(4) 自增 parentid 上級(jí)版塊 Int(4) Not null sortname 版塊名稱 Varchar(50) Not null master 版主名稱 Varchar(20) 允許為null 表4.5: Role 角色表 列名 說(shuō)明 類型 備注 rid 主鍵 Int(4) 自增 description 角色描述 Varchar(10) No

19、t null 表4.6: Notice 公告表 列名 說(shuō)明 類型 備注 nid 主鍵 Int(4) 自增 content 公告內(nèi)容 Varchar(100) Not null 第6章. 系統(tǒng)詳細(xì)設(shè)計(jì) 前臺(tái)和后臺(tái)頁(yè)面設(shè)計(jì)采用的技術(shù)是JSP。之所以選擇它是因?yàn)镴SP技術(shù)具有下面的特點(diǎn): 1)Write Once Run Anywhere JSP技術(shù)繼承了JAVA先天性的先進(jìn)概念“Write Once Run Anywhere”這種概念正越來(lái)越深遠(yuǎn)的影響著互連網(wǎng)行業(yè)的交互式、WEB設(shè)計(jì)的理念。JSP Pages 可以非常容易的開(kāi)平臺(tái)跨WEB服務(wù)器軟件來(lái)是設(shè)計(jì)

20、和開(kāi)放源代碼。 2)支持多種動(dòng)態(tài)網(wǎng)頁(yè)格式 目前對(duì)使用JSP技術(shù)設(shè)計(jì)出來(lái)的網(wǎng)頁(yè)應(yīng)該采取什么樣的格式還沒(méi)有一個(gè)明確的標(biāo)準(zhǔn)。一般來(lái)說(shuō)JSP技術(shù)即可以支持HTML/DHTML的傳統(tǒng)瀏覽器文件格式,又可以支持應(yīng)用與無(wú)線通訊設(shè)備例如移動(dòng)電話、PDA等設(shè)備進(jìn)行網(wǎng)頁(yè)瀏覽器的VML文件格式,還可以支持其它一些B2B應(yīng)用的XML格式。與以往的其它WEB應(yīng)用技術(shù)相比較JSP技術(shù)有它很鮮明的特點(diǎn)。 3)JSP 標(biāo)簽可擴(kuò)充性 盡管JSP與ASP都使用標(biāo)簽與腳本技術(shù)來(lái)制造動(dòng)態(tài)WEB網(wǎng)頁(yè),但是JSP技術(shù)能夠使開(kāi)發(fā)者擴(kuò)展JSP標(biāo)簽,使得應(yīng)用JSP的開(kāi)發(fā)者能定制標(biāo)簽庫(kù)所以網(wǎng)頁(yè)制作者可以充分利用與XML兼容的標(biāo)簽技術(shù),大

21、大減少了對(duì)腳本語(yǔ)言的依賴。由于指定標(biāo)簽庫(kù)技術(shù)使得網(wǎng)頁(yè)制作者降低了制作網(wǎng)頁(yè)和想多個(gè)網(wǎng)頁(yè)擴(kuò)充關(guān)鍵功能的復(fù)雜程度[15]。 4)JSP跨平臺(tái)的可重用性 JSP的開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中一直關(guān)注可重用性,JSP足見(jiàn)、企業(yè)JavaBean或制定的標(biāo)簽都是跨平臺(tái)可重用的。企業(yè)JavaBean可以訪問(wèn)傳統(tǒng)的數(shù)據(jù)庫(kù)并能并能已分布式系統(tǒng)模式工作于UNIX和WINDOWS平臺(tái),JSP標(biāo)簽可擴(kuò)充功能為開(kāi)發(fā)人員提供簡(jiǎn)便的與XML兼容的接口,即共享網(wǎng)頁(yè)的打包功能使其完全的工業(yè)標(biāo)準(zhǔn)化。這種基于組建的模式能夠有效的提高應(yīng)用程序的開(kāi)發(fā)效率。因?yàn)檫@種模式能夠使開(kāi)發(fā)人員利用快捷的子組建快速創(chuàng)建模板應(yīng)用程序。然后再整和一些附加功能

22、將其打包成一個(gè)JAVABEAN組建。 5)易于維護(hù)性 基于JSP技術(shù)的應(yīng)用程序比基于ASP的應(yīng)用程序更易于維護(hù)和管理。腳本語(yǔ)言都很好服務(wù)于小的應(yīng)用程序但不能適宜大型的復(fù)雜的應(yīng)用程序,因?yàn)镴AVA是結(jié)構(gòu)化的,它比較比較容易創(chuàng)建和維護(hù)龐大的組建化的應(yīng)用程序。 1.11 前臺(tái)頁(yè)面 1.11.1 登錄進(jìn)入論壇首頁(yè)頁(yè)面 圖5.1 論壇登錄頁(yè)面 在此頁(yè)面中,用戶如果點(diǎn)擊“瀏覽進(jìn)入”這個(gè)超鏈接,即以相當(dāng)于游客的身份進(jìn)入論壇,進(jìn)入的是論壇的首頁(yè)(圖5.2所示),那么就只擁有瀏覽和搜索帖子的權(quán)限。如果用戶輸入了正確的用戶名稱和密碼,就會(huì)以用戶的身份進(jìn)入論壇的首頁(yè)。該用戶就可以擁有更多的權(quán)限

23、,可以瀏覽和搜索帖子,修改個(gè)人資料,刪除和修改自己發(fā)表的主題帖子,發(fā)表和回復(fù)帖子。如果用戶輸入了不正確的信息,則系統(tǒng)阻止進(jìn)入論壇的首頁(yè),還是會(huì)跳轉(zhuǎn)到該登錄頁(yè)面。如果用戶點(diǎn)擊了“注冊(cè)”這個(gè)超鏈接,則會(huì)進(jìn)入注冊(cè)頁(yè)面(圖5.3所示)。 1.11.2 論壇首頁(yè) 圖5.2 論壇首頁(yè) 在該頁(yè)面中,顯示了很多信息。主要是各個(gè)版塊的詳細(xì)信息,包括版塊的名稱,版主,發(fā)表于該版塊下的主題帖子總數(shù),以及最新發(fā)表的帖子的信息。若有發(fā)表的帖子,則顯示該帖子的主題,作者,和發(fā)表時(shí)間,并且提供了帖子主題的超鏈接,點(diǎn)擊后會(huì)進(jìn)入顯示該帖子的詳細(xì)信息頁(yè)面。若無(wú)發(fā)表的帖子,則顯示暫無(wú)。該頁(yè)面上還顯示了公告的信息,即公告欄

24、顯示的內(nèi)容。頁(yè)面上還提供了搜索帖子的功能,可以根據(jù)作者名稱來(lái)精確查找和根據(jù)帖子內(nèi)容來(lái)模糊查找。如果用戶是經(jīng)過(guò)登錄驗(yàn)證后進(jìn)入該頁(yè)面的,頁(yè)面會(huì)提供“個(gè)人中心”的超鏈接,點(diǎn)擊此鏈接會(huì)進(jìn)入個(gè)人信息中心頁(yè)面(如圖5.6所示)。如果用戶是通過(guò)瀏覽進(jìn)入該頁(yè)面的,則不會(huì)提供該超鏈接。 1.11.3 注冊(cè)頁(yè)面 圖5.3 注冊(cè)頁(yè)面 用戶可以在該頁(yè)面中輸入注冊(cè)資料,包括用戶名,密碼,個(gè)性簽名和頭像。 用戶名,密碼,個(gè)性簽名都是必填的,頭像是默認(rèn)選擇第一個(gè),用戶也可以重新選擇。在用戶提交之前,對(duì)所填的信息都作了驗(yàn)證,包括用戶名非空并且不可重復(fù),密碼非空,密碼長(zhǎng)度必須大于或等于4,兩次輸入的密碼必須一致,個(gè)

25、性簽名非空,且長(zhǎng)度小于50。在對(duì)用戶名稱的唯一性驗(yàn)證時(shí),使用了AJAX技術(shù),當(dāng)用戶輸入完用戶名,該文本框失去焦點(diǎn)時(shí),會(huì)檢查數(shù)據(jù)庫(kù)中是否存在該用戶名, 如果不存在,則在文本框后用藍(lán)色字體顯示“Ok,你可以用這個(gè)名稱!”,如果存在,則在文本框后用紅色字體顯示“No,這個(gè)名稱已占用!”。提交成功后,跳轉(zhuǎn)到登錄頁(yè)面。 在這里簡(jiǎn)單介紹一下AJAX技術(shù)。AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。它使瀏覽器可以為用戶提供更為自然的瀏覽體驗(yàn)。在Ajax之前,Web站點(diǎn)強(qiáng)制用戶進(jìn)入提交/等待

26、/重新顯示范例,用戶的動(dòng)作總是與服務(wù)器的“思考時(shí)間”同步。Ajax提供與服務(wù)器異步通信的能力,從而使用戶從請(qǐng)求/響應(yīng)的循環(huán)中解脫出來(lái)。借助于Ajax,可以在用戶單擊按鈕時(shí),使用JavaScript和DHTML立即更新UI,并向服務(wù)器發(fā)出異步請(qǐng)求,以執(zhí)行更新或查詢數(shù)據(jù)庫(kù)。當(dāng)請(qǐng)求返回時(shí),就可以使用JavaScript和CSS來(lái)相應(yīng)地更新UI,而不是刷新整個(gè)頁(yè)面。最重要的是,用戶甚至不知道瀏覽器正在與服務(wù)器通信:Web站點(diǎn)看起來(lái)是即時(shí)響應(yīng)的。 1.11.4 發(fā)表帖子 圖5.4 發(fā)表頁(yè)面 用戶可以在該頁(yè)面中填寫帖子的資料,包括標(biāo)題和內(nèi)容。提交之前也作了驗(yàn)證:標(biāo)題非空且長(zhǎng)度小于50,帖

27、子內(nèi)容非空且長(zhǎng)度小于2000。為提示用戶控制輸入,通過(guò)JavaScript實(shí)現(xiàn)了動(dòng)態(tài)顯示用戶輸入的字符數(shù)目。為避免重復(fù)提交,提供了驗(yàn)證碼,只有輸入了正確的驗(yàn)證碼后才會(huì)提交。 1.11.5 顯示帖子及回復(fù) 圖5.5 顯示貼子與回復(fù)頁(yè)面 在該頁(yè)面中,顯示了帖子的詳細(xì)信息和回復(fù)的帖子的詳細(xì)信息。并且實(shí)現(xiàn)了分頁(yè)功能,每頁(yè)顯示5個(gè)回復(fù)帖子。只有對(duì)登錄用戶才顯示“回復(fù)帖子”和“發(fā)表話題”兩個(gè)按鈕,以及回復(fù)帖子的表格的顯示。對(duì)于沒(méi)有登錄的用戶,則不會(huì)顯示。如果登錄的用戶的身份是版主,而該帖子又是位于該用戶管理的論壇版塊下,則會(huì)在主題帖子后提供“屏蔽此帖”和“刪除”兩個(gè)超鏈接。分

28、別實(shí)現(xiàn)屏蔽帖子和刪除帖子的功能。另外在回復(fù)的帖子后提供“屏蔽此回復(fù)”超鏈接,實(shí)現(xiàn)對(duì)回復(fù)的帖子的屏蔽操作。 1.11.6 顯示個(gè)人中心頁(yè)面 圖5.6 個(gè)人中心頁(yè)面 在該頁(yè)面中,顯示了用戶的個(gè)人資料和發(fā)表的帖子的信息。當(dāng)用戶點(diǎn)擊“編輯個(gè)人資料”的超鏈接后,會(huì)進(jìn)入修該個(gè)人資料的頁(yè)面,實(shí)現(xiàn)對(duì)個(gè)人信息的修改。另外頁(yè)面上分頁(yè)顯示了用戶發(fā)表的主題帖子,用戶可以這些帖子進(jìn)行修改和刪除操作。 1.12 后臺(tái)頁(yè)面 用戶要進(jìn)入后臺(tái)管理頁(yè)面,必須先進(jìn)入后臺(tái)管理的登錄頁(yè)面,使用了Filter來(lái)實(shí)現(xiàn)過(guò)濾。只有登錄成功后,才能進(jìn)入管理頁(yè)面。 1.12.1 后臺(tái)登錄頁(yè)面 圖5.7 后臺(tái)頁(yè)面 登

29、錄成功后跳轉(zhuǎn)到后臺(tái)管理頁(yè)面,登錄失敗后還是跳轉(zhuǎn)到本頁(yè)面。這里使用攔截器組件對(duì)主頁(yè)面進(jìn)行保護(hù),攔截非法登陸用戶對(duì)頁(yè)面進(jìn)行操作。 1.12.2 后臺(tái)管理頁(yè)面 圖5.8 后臺(tái)管理頁(yè)面 進(jìn)入到后臺(tái)管理后,首先顯示的是如上圖5.8所示的頁(yè)面。 1.12.3 帖子管理頁(yè)面 圖5.9 用戶管理頁(yè)面 點(diǎn)擊后臺(tái)管理頁(yè)面的左邊導(dǎo)航欄的“版區(qū)管理”超鏈接即可進(jìn)入到該頁(yè)面。該頁(yè)面分頁(yè)顯示了帖子的部分資料,包括帖子標(biāo)題,類型,狀態(tài)。還對(duì)每個(gè)帖子提供了“啟用”,“禁用”,“置頂”等操作。管理員可以進(jìn)行與之相對(duì)應(yīng)的操作。這些操作是通過(guò)AJAX異步發(fā)送請(qǐng)求實(shí)現(xiàn)的。這樣就能實(shí)現(xiàn)對(duì)論壇的帖子進(jìn)行管理。

30、1.13 系統(tǒng)設(shè)計(jì)主要代碼及配置文件 1.13.1 分頁(yè)的JavaBean 系統(tǒng)中的大部分JSP頁(yè)面需要使用分頁(yè)技術(shù),因此使用一個(gè)JavaBean來(lái)專門完成分頁(yè)的功能。以下是此類的關(guān)鍵代碼: public class PageModel { //所有的記錄數(shù) private int totalRecords; //查詢的結(jié)果集 private List list; //第幾頁(yè) private int pageNo; //每頁(yè)多少條數(shù)據(jù) private int pageSize; } //提供各成員屬性的get,set方法 public int getTotalP

31、ages() { if (totalRecords == 0) return 1; return (totalRecords + pageSize -1)/pageSize; } } 1.13.2 生成驗(yàn)證碼的代碼 public final class ImageUtil { private static final String[] chars = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I"}; private st

32、atic final int SIZE = 4; private static final int LINES = 100; private static final int WIDTH = 100; private static final int HEIGHT = 50; private static final int FONT_SIZE = 30; public static Map createImage() { StringBuffer sb = new StringBuffer(); BufferedIm

33、age image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.setColor(Color.LIGHT_GRAY); g.fillRect(0, 0, WIDTH, HEIGHT); Random ran = new Random(); //畫隨機(jī)字符 for(int i=1;i<=SIZE;i++){ int r = ran.nextInt(chars.length); g.se

34、tColor(getRandomColor()); g.setFont(new Font(null,Font.BOLD+Font.ITALIC,FONT_SIZE)); g.drawString(chars[r],(i-1)*WIDTH/SIZE , HEIGHT-10); sb.append(chars[r]);//將字符保存,存入Session } //畫干擾線 for(int i=1;i<=LINES;i++){ g.setColor(getRandomColor()); int width = ran.nextInt(WIDTH

35、); int height = ran.nextInt(HEIGHT); g.drawLine(width,height,width,height); } Map map = new HashMap(); map.put(sb.toString(), image); return map; } public static InputStream getInputStream( BufferedImage image) throws Exception{

36、 ByteArrayOutputStream bos = new ByteArrayOutputStream(); JPEGImageEncoder encode = JPEGCodec.createJPEGEncoder(bos); encode.encode(image);//將圖片編碼成JPEG格式 byte[] bts = bos.toByteArray(); ByteArrayInputStream bis = new ByteArrayInputStream(bts); return bis; } publi

37、c static Color getRandomColor(){ Random ran = new Random(); Color color = new Color(ran.nextInt(256),ran.nextInt(256),ran.nextInt(256)); return color; } } 1.13.3 系統(tǒng)的配置文件 1) Web.xml 主要配置的是Tomcat啟動(dòng)時(shí)要加載的配置文件。其中有Struts的配置文件Struts-config.xml,Spring的配置文件即與applicationContext.xml匹配的文件,另外還配置了S

38、pring中Filter設(shè)置了字符集。此外還配置了與AJAX技術(shù)相關(guān)的DWR的詳細(xì)配置信息。 2) Struts-config.xml 對(duì)于本系統(tǒng)為什么選擇使用Struts2技術(shù),下面列舉的這些理由是顯而易見(jiàn)的:首先,它是建立在MVC這種公認(rèn)的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個(gè)好的控制器和一套定制的標(biāo)簽庫(kù)上,也就是說(shuō)它的著力點(diǎn)在C和V上,因此,它天生就有MVC所帶來(lái)的一系列優(yōu)點(diǎn),如:結(jié)構(gòu)層次分明,高可重用性,增加了程序的健壯性和可伸縮性,便于開(kāi)發(fā)與設(shè)計(jì)分工,提供集中統(tǒng)一的權(quán)限控制、校驗(yàn)、國(guó)際化、日志等等;其次,經(jīng)受了實(shí)戰(zhàn)的檢驗(yàn),使其功能越來(lái)越強(qiáng)大,體系也很

39、完善;最后,是它對(duì)其他技術(shù)和框架顯示出很好的融合性。 該系統(tǒng)的Struts的配置文件中主要內(nèi)容是ActionForm,DispatchAction的詳細(xì)信息,以及各頁(yè)面的跳轉(zhuǎn)路徑的控制信息。 3) Hibernate.cfg.xml 本系統(tǒng)中對(duì)數(shù)據(jù)庫(kù)操作的DAO是通過(guò)Hibernate來(lái)實(shí)現(xiàn)的, Hibernate是一種Java語(yǔ)言下的對(duì)象關(guān)系映射解決方案。它用來(lái)把對(duì)象模型表示的對(duì)象映射到基于SQL 的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的映射,提供了一個(gè)使用方便的框架。Hibernate 不僅管理Java 類到數(shù)據(jù)庫(kù)表的映射(包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型

40、的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開(kāi)發(fā)時(shí)人工使用SQL 和JDBC 處理數(shù)據(jù)的時(shí)間。Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。 這4個(gè)文件是數(shù)據(jù)庫(kù)建表配置文件,通過(guò)這4個(gè)配置文件可以將論壇的表自動(dòng)關(guān)聯(lián)映射到j(luò)ava類,

41、然后自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表。 4) 與Spring有關(guān)的三個(gè)配置文件 在本系統(tǒng)中,利用Spring的依賴注入機(jī)制來(lái)實(shí)現(xiàn)了DAO對(duì)象的依賴注入,這樣一來(lái)不用自己來(lái)創(chuàng)建對(duì)象實(shí)例。 在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開(kāi)發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。 以下是與系統(tǒng)有關(guān)的三個(gè)Spring的配置文件 (1) applicationContext-common.xml 在該文件

42、中定義了哪些類的哪些方法參與事務(wù),配置了SessionFactory,事務(wù)管理器,事務(wù)的傳播特性。 (2) applicationContext-beans.xml 在該配置文件中配置了各個(gè)模塊的DAO層的詳細(xì)信息。 (3) applicationContext-actions.xml 在該配置文件中配置了各個(gè)DispatchAction中DAO對(duì)象的注入信息。

44、 1.13.4 注冊(cè)時(shí)的驗(yàn)證代碼(用到了AJAX技術(shù)) 此處是通過(guò)DWR框架來(lái)實(shí)現(xiàn)的,頁(yè)面中的關(guān)鍵代碼如下: 第7章. 測(cè)試 1.14 測(cè)試方法 由于本系統(tǒng)的設(shè)計(jì)人員和測(cè)試人員都是本人,很了解系統(tǒng)的內(nèi)部結(jié)構(gòu)和處理過(guò)程,所以測(cè)試方式采用的是動(dòng)態(tài)測(cè)試方法中的白盒測(cè)試。 1.15 測(cè)試范圍 用戶的登錄;帖子的添加、刪除、修改、查詢;用戶的個(gè)人信息編輯;管理員對(duì)用戶、論壇版塊、公告的管理。 1.16 測(cè)試報(bào)告 測(cè)試項(xiàng)目 測(cè)試目的 測(cè)試結(jié)果 原因 解決

48、情況 用戶登錄 確保系統(tǒng)的安全性 網(wǎng)頁(yè)安全攔截器有問(wèn)題 有些頁(yè)面沒(méi)有被保護(hù)攔截器出現(xiàn)問(wèn)題 已解決 帖子的添加 確保帖子準(zhǔn)確無(wú)誤的添加 添加不成功 有些屬性沒(méi)有進(jìn)行正確性檢查 已解決 帖子的刪除 確保帖子信息都刪除 程序運(yùn)行正常 帖子的修改 確保帖子信息準(zhǔn)確的修改 程序運(yùn)行正常 帖子的查詢 確保查出要求的信息 沒(méi)有達(dá)到要求 SQL語(yǔ)句有誤 已解決 個(gè)人信息編輯 確保個(gè)人信息成功的修改 程序運(yùn)行正常 用戶管理 確保對(duì)用戶的管理都能操作成功 程序運(yùn)行正常 論壇管理 確保對(duì)論壇的管理都能操作成功 程序運(yùn)行正常

49、 公告管理 確保對(duì)公告的管理都能操作成功 程序運(yùn)行正常 第8章. 總結(jié)與展望 對(duì)于本論壇來(lái)說(shuō),實(shí)現(xiàn)了現(xiàn)在流行論壇的大部分功能,但也存在很多需要改進(jìn)的方面。首先是界面不是很美觀,排版布局都是要進(jìn)過(guò)進(jìn)一步美化的。其次是對(duì)用戶使用的友好提示做的還不夠,對(duì)于某些操作沒(méi)有成功的話,應(yīng)該給出相應(yīng)的錯(cuò)誤信息提示。還有就是可以加入一些功能,如設(shè)置精華帖子,設(shè)置置頂帖子。還可以對(duì)發(fā)表帖子和回復(fù)帖子的提交處理時(shí)對(duì)一些不文明信息進(jìn)行限制輸入。由于時(shí)間的關(guān)系,又因?yàn)楸疚牡念}目是小型論壇系統(tǒng),故只實(shí)現(xiàn)了本文中所列的那些功能,其它的功能有待后續(xù)實(shí)現(xiàn)。 回顧設(shè)計(jì)開(kāi)發(fā)校園論壇的開(kāi)發(fā)過(guò)程,總結(jié)起來(lái)

50、那就是,軟件的開(kāi)發(fā)是相當(dāng)辛苦的,但成功以后的喜悅也是非常美妙的,其中投入的心血越多,成功以后你所獲得的快樂(lè)與充實(shí)感也更多更強(qiáng)。 第9章. 參考文獻(xiàn) [1] 耿祥義.JSP實(shí)用教程[M].清華大學(xué)出版社,2005年. [2] 屈輝立、陳可明.JSP網(wǎng)站編程教程[M].北京希望電子出版社,2005年. [3] 孫衛(wèi)琴.Java 面向?qū)ο缶幊蘙M].電子工業(yè)出版社,2006年. [4] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計(jì)與開(kāi)發(fā)[M].電子工業(yè)出版社,2004年. [5] (德)鮑爾.

51、Hibernate實(shí)戰(zhàn)(第二版)[M].第二版.人民郵電出版社,2008年. [6] (美)沃爾斯、布雷登巴赫.Spring in Action[M].人民郵電出版社,2006年. [7] 孫衛(wèi)琴.Tomcat與Java Web 開(kāi)發(fā)技術(shù)詳解[M].電子工業(yè)出版社,2005年. [8] 葉清著.動(dòng)態(tài)Web網(wǎng)頁(yè)的設(shè)計(jì)與實(shí)現(xiàn)[M].第三版.現(xiàn)代機(jī)械出版社,2003年. [9] 喬普拉(美)著.JSP高級(jí)程序設(shè)計(jì)[M].人民郵電出版社,2005年. [10] 劉斌編著.精通Java Web 整合開(kāi)發(fā)[M].電子工業(yè)出版社,2008年.

52、 致 謝 在撰寫本文過(guò)程中,得到了很多老師同學(xué)的幫助,給他們以誠(chéng)摯的謝意。該設(shè)計(jì)是在黃國(guó)軍老師的指導(dǎo)下完成的。從上學(xué)期的開(kāi)題、分析到撰稿和修改等整個(gè)論文撰寫,黃老師都給予了我細(xì)心的指導(dǎo)和比較全面的建議。在此,我向黃國(guó)軍老師表達(dá)崇高的敬意和衷心的感謝!黃老師,您辛苦了!謝謝您。 在大學(xué)生活期間,有曾經(jīng)幫助過(guò)我的老師們,謝謝你們;謝謝我身邊的同學(xué)和朋友,是你們給我了無(wú)微不至的幫助和關(guān)懷,謝謝你們。三年求學(xué)期間是你們給了我?guī)椭?,我才能有今天。每一部分知識(shí)的積累都與你們的幫助密不可分,我的今天都是你們給我的!再次感謝所有幫助我的老師和同學(xué)們?。?!謝謝 學(xué)生簽名: 日 期:

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!