BBS論壇的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
BBS論壇的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
BBS論壇的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
BBS論壇的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
BBS論壇的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

1、精選文檔旅游論壇BBS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生 姓 名 肖雄 指 導(dǎo) 教 師 楊洋 專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 院 信息技術(shù)工程學(xué)院 2016年3月8日畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)姓名: 肖雄學(xué)院:信息技術(shù)工程學(xué)院班級(jí):12計(jì)科專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)(論文)題目:旅游論壇BBS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)立題目的和意義:目的:設(shè)計(jì)的首要目的是運(yùn)用已經(jīng)學(xué)習(xí)到的MyEclipse工具和MySQL數(shù)據(jù)庫(kù)知識(shí)自主實(shí)現(xiàn)一個(gè)實(shí)用的系統(tǒng),使得現(xiàn)有知識(shí)得到更好的鞏固,更加熟練的操作MyEclipse工具和MySQL數(shù)據(jù)庫(kù)。同時(shí)在實(shí)現(xiàn)中學(xué)習(xí)到更多的知識(shí),能更深入掌握J(rèn)SP和了解軟件開(kāi)發(fā)的全過(guò)程,為以后的學(xué)習(xí)與工作打下堅(jiān)實(shí)的基

2、礎(chǔ)。意義:BBS(電子布告欄系統(tǒng))是在網(wǎng)上提供交流的手段。它可以用于公告、群組討論、社區(qū)內(nèi)通信、聯(lián)系、在線聊天、找工作等,利用網(wǎng)絡(luò)實(shí)時(shí)、便捷的特點(diǎn)來(lái)方便人們的交流、聯(lián)系和娛樂(lè)。技術(shù)要求與工作計(jì)劃:技術(shù)要求:本設(shè)計(jì)所做的網(wǎng)站采用三層結(jié)構(gòu),以MySQL數(shù)據(jù)庫(kù)為后臺(tái)數(shù)據(jù)庫(kù),以JSP網(wǎng)頁(yè)作為表現(xiàn)層實(shí)現(xiàn),以Struts整合Spring進(jìn)行模型控制,因此,要求開(kāi)發(fā)人員熟悉數(shù)據(jù)庫(kù)的基本知識(shí),通曉MySQL數(shù)據(jù)庫(kù)的特點(diǎn)和用法,掌握J(rèn)ava語(yǔ)言的基本知識(shí),能熟練運(yùn)用JSP進(jìn)行網(wǎng)站開(kāi)發(fā),以及對(duì)Struts和Spring框架有所掌握。熟練使用MyEclipse開(kāi)發(fā)工具,了解Tomcat服務(wù)器的工程部署。工作計(jì)劃:利

3、用一個(gè)月來(lái)學(xué)習(xí)Java語(yǔ)言,JSP語(yǔ)言,Struts及Spring框架,MySQL數(shù)據(jù)庫(kù),同時(shí)進(jìn)行需求分析。利用大約一個(gè)半月的時(shí)間進(jìn)行系統(tǒng)設(shè)計(jì)和編碼。利用十天左右進(jìn)行系統(tǒng)調(diào)試和測(cè)試。利用半個(gè)月時(shí)間完成論文編寫(xiě)和審定。時(shí)間安排:2015.7.1-2015.12.1 學(xué)習(xí)Java語(yǔ)言,JSP語(yǔ)言,Struts及Spring框架,MySQL數(shù)據(jù)庫(kù)。2015.12.5-2016.2.1 進(jìn)行系統(tǒng)的概要設(shè)計(jì),詳細(xì)設(shè)計(jì),代碼的編寫(xiě)。2016.2.2-2016.2.15 進(jìn)行系統(tǒng)的調(diào)試與測(cè)試。2016.2.15-2016.3.11 論文的編寫(xiě)和審定。摘要通用論壇BBS系統(tǒng)是按照MVC模式進(jìn)行設(shè)計(jì)實(shí)現(xiàn)的,采用

4、Tomcat作為后臺(tái)服務(wù)器,以MySQL數(shù)據(jù)庫(kù)作為數(shù)據(jù)服務(wù)器,使用Struts和Spring進(jìn)行邏輯控制,表現(xiàn)層用JSP頁(yè)面顯示,用于在網(wǎng)絡(luò)上為網(wǎng)民提供一個(gè)信息發(fā)布、獲取的場(chǎng)所。實(shí)現(xiàn)了查看、發(fā)表、刪除帖子功能,論壇帖子版塊控制,注冊(cè)用戶可以修改自己的個(gè)人信息、增加好友與黑名單以及用戶之間發(fā)送短信息,管理員可以對(duì)用戶、帖子,版塊、用戶組、版塊權(quán)限和用戶組權(quán)限進(jìn)行管理。論文從問(wèn)題的提出、基本設(shè)計(jì)思想、數(shù)據(jù)的流向到具體的設(shè)計(jì)過(guò)程都做出了詳細(xì)論述。關(guān)鍵詞:BBS;論壇;主題;回復(fù)1緒論1.1課題研究的目的及意義設(shè)計(jì)的首要目的是運(yùn)用已經(jīng)學(xué)習(xí)到的MyEclipse工具和MySQL數(shù)據(jù)庫(kù)知識(shí)自主實(shí)現(xiàn)一個(gè)實(shí)用

5、的系統(tǒng),使得現(xiàn)有知識(shí)得到更好的鞏固,更加熟練的操作MyEclipse工具和MySQL數(shù)據(jù)庫(kù)。同時(shí)在實(shí)現(xiàn)中學(xué)習(xí)到更多新的知識(shí),能更深入掌握J(rèn)SP、Java語(yǔ)言,了解軟件開(kāi)發(fā)的全過(guò)程,為以后的學(xué)習(xí)與工作打下堅(jiān)實(shí)的基礎(chǔ)。BBS(電子布告欄系統(tǒng))是在網(wǎng)上提供交流的手段。它可以用于公告、群組討論、社區(qū)內(nèi)通信、聯(lián)系、在線聊天、找工作等,利用網(wǎng)絡(luò)實(shí)時(shí)、便捷的特點(diǎn)來(lái)方便人們的交流、聯(lián)系和娛樂(lè)。1.2國(guó)內(nèi)外研究動(dòng)態(tài)進(jìn)入二十一世紀(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ò)版軟件中似乎存在著兩種

6、不同的趨勢(shì),一種是稱(chēng)為客戶端服務(wù)器的C/S結(jié)構(gòu)應(yīng)用系統(tǒng),這類(lèi)軟件具有結(jié)構(gòu)嚴(yán)謹(jǐn),運(yùn)行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點(diǎn),被廣泛運(yùn)用于局域網(wǎng)中。而另一種,也是本畢業(yè)設(shè)計(jì)所采用的,是稱(chēng)為瀏覽器服務(wù)器的B/S結(jié)構(gòu)應(yīng)用系統(tǒng),它的特點(diǎn)是在客戶端直接采用了功能強(qiáng)大的瀏覽器軟件作為界面,其優(yōu)點(diǎn)在于軟件開(kāi)發(fā)效率高,客戶端不受操作平臺(tái)的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見(jiàn)效快,用戶可以不必進(jìn)行服務(wù)器方面的投資,而是去租用,甚至是免費(fèi)使用ISP的服務(wù)器資源,因而受到越來(lái)越多中小型單位的青睞。Internet起源于20世紀(jì)60年代末、70年代初,當(dāng)時(shí),美國(guó)

7、國(guó)防部為了將充斥于軍事基地內(nèi)各種廠商的電腦主機(jī)互連,讓它們可以進(jìn)行數(shù)據(jù)交換以便研究工作順利進(jìn)行,于是成立了ARPA網(wǎng)絡(luò)計(jì)劃。ARPA計(jì)劃嘗試建設(shè)一個(gè)網(wǎng)絡(luò)系統(tǒng),它可將各種不同廠商的電腦連接起來(lái)。隨著這個(gè)計(jì)劃的成功,各學(xué)術(shù)單位,研究機(jī)構(gòu)也紛紛與ARPA計(jì)劃所建立的ARPANet連接。到了20世紀(jì)80年代,Internet這個(gè)名詞因勢(shì)產(chǎn)生,它代表著這十年來(lái)所構(gòu)建涵蓋全球各地的網(wǎng)絡(luò)系統(tǒng)。從1990年起,商業(yè)使用的Internet在美國(guó)急速地?cái)U(kuò)大,而Internet也從原來(lái)屬于少數(shù)人使用的網(wǎng)絡(luò)系統(tǒng)轉(zhuǎn)變?yōu)槠胀ò傩找材軌蚴褂玫木W(wǎng)絡(luò)系統(tǒng)。最初的Internet資源服務(wù)都還停留在文本模式,1989年,量子物理實(shí)

8、驗(yàn)室(CERN)下的一個(gè)研究小組著手開(kāi)發(fā)一種全新的Internet服務(wù),它可以在網(wǎng)絡(luò)上傳送圖片、文本、影像、聲音等多媒體數(shù)據(jù)。于是由Tim Berners Lee領(lǐng)導(dǎo)的小組開(kāi)發(fā)出了一種主從、分布式的網(wǎng)絡(luò)服務(wù)系統(tǒng),這就是WWW(World Wide Web),俗稱(chēng)“萬(wàn)維網(wǎng)”。所謂WWW其實(shí)就是連上Web服務(wù)器訪問(wèn)資源,取得的內(nèi)容就是所謂的“主頁(yè)”(HomePage)。進(jìn)入的網(wǎng)頁(yè)通常不會(huì)只有一頁(yè),而是整個(gè)網(wǎng)站的內(nèi)容?!熬W(wǎng)站”是一種呈現(xiàn)在網(wǎng)絡(luò)上的新興媒體,通過(guò)Internet已經(jīng)成為一個(gè)實(shí)時(shí)的,多媒體的信息傳播渠道。它的載體主要是電腦,范圍覆蓋全球各地,沒(méi)有國(guó)界,不分人種,時(shí)時(shí)刻刻地提供服務(wù)。目前,

9、人們漸漸開(kāi)始把網(wǎng)站稱(chēng)之為廣播、電視、報(bào)刊以外的第四新聞媒體,以“共享、公平、公正、創(chuàng)新、國(guó)際化、團(tuán)隊(duì)精神”為特征的網(wǎng)絡(luò)文明也已逐漸成為這個(gè)時(shí)代的標(biāo)志,人們?cè)絹?lái)越習(xí)慣于通過(guò)Internet網(wǎng)絡(luò)獲取信息,通過(guò)Internet在網(wǎng)站上發(fā)表自己對(duì)社會(huì)對(duì)生活的理解和建議。隨著網(wǎng)絡(luò)的普及,論壇的內(nèi)容越來(lái)越豐富,論壇也由此深受廣大網(wǎng)民的喜愛(ài),因此商業(yè)網(wǎng)站對(duì)論壇也重視起來(lái),提供與網(wǎng)民交流的平臺(tái),同時(shí)在線技術(shù)支持也在論壇中開(kāi)展起來(lái)。1.3本文的工作BBS系統(tǒng)就是提供給注冊(cè)用戶一個(gè)平臺(tái),會(huì)員用戶可以通過(guò)Internet接入,登錄論壇,在這個(gè)平臺(tái)上發(fā)表文章、閱讀文章、回復(fù)文章等等。此類(lèi)系統(tǒng)通常有以下四種類(lèi)型的操作用

10、戶:匿名用戶、普通用戶、版主、管理員、超級(jí)管理員。每類(lèi)用戶有其不同的操作集,系統(tǒng)通常提供一個(gè)統(tǒng)一的登錄頁(yè)面,此頁(yè)面應(yīng)能自動(dòng)識(shí)別不同級(jí)別的用戶,并提供不同的操作界面。與之相應(yīng),此類(lèi)系統(tǒng)通常應(yīng)具有以下功能:用戶注冊(cè)、用戶登錄、發(fā)表文章、閱讀文章、回復(fù)文章、分頁(yè)查找、主題查找、作者查找、個(gè)人資料維護(hù)、找回密碼、版面管理、版主管理、用戶管理、友情鏈接管理等等,所有操作都可以由用戶在客戶端瀏覽器中完成,而服務(wù)器端程序會(huì)按用戶的要求來(lái)完成對(duì)系統(tǒng)數(shù)據(jù)的操作,并將結(jié)果傳給Web服務(wù)器,再由Web服務(wù)器處理成HTML文件后發(fā)送到客戶端瀏覽器。這就是所謂的B/S結(jié)構(gòu)應(yīng)用系統(tǒng),B/S結(jié)構(gòu)即Browser/Serve

11、r(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。C/S結(jié)構(gòu),即Client/Server(客戶機(jī)/服務(wù)器)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開(kāi)銷(xiāo),可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì)。早期的軟件系統(tǒng)多以此作為首選設(shè)計(jì)標(biāo)準(zhǔn)。B/S結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂N-Tier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語(yǔ)言(VBScript、JavaScript)和Ac

12、tiveX技術(shù),用通用瀏覽器就實(shí)現(xiàn)了原來(lái)需要復(fù)雜專(zhuān)用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。結(jié)合BBS論壇系統(tǒng)實(shí)際需要,本BBS系統(tǒng)采用B/S結(jié)構(gòu)。論文設(shè)計(jì)開(kāi)發(fā)的系統(tǒng)為通用BBS系統(tǒng),系統(tǒng)應(yīng)該具備較大的可伸縮性,應(yīng)該能適應(yīng)最基本應(yīng)用最廣泛的Web平臺(tái)。另外,通用系統(tǒng)應(yīng)該具備較大的可擴(kuò)展性,而Java 語(yǔ)言是面向?qū)ο蟮?,面向?qū)ο缶幊套⒅爻绦虻目蓴U(kuò)展性,且Java 語(yǔ)言是跨平臺(tái)執(zhí)行的,JSP相對(duì)其他網(wǎng)頁(yè)編程語(yǔ)言有更多的優(yōu)點(diǎn),所以本系統(tǒng)采用Java+JSP作為編程語(yǔ)言。2系統(tǒng)分析

13、2.1可行性分析商業(yè)軟件是根據(jù)客戶的根本目的和需要而設(shè)計(jì)和開(kāi)發(fā)的,可行性是開(kāi)發(fā)的系統(tǒng)具有使用價(jià)值和生命力的保證。2.1.1社會(huì)可行性當(dāng)前社會(huì)是一個(gè)網(wǎng)絡(luò)化的社會(huì),網(wǎng)絡(luò)就在人們周?chē)?,人們從網(wǎng)絡(luò)上獲取并發(fā)布信息,而本系統(tǒng)正是應(yīng)這一需求而產(chǎn)生,為企業(yè),個(gè)人發(fā)布,獲取有價(jià)值的信息提供場(chǎng)所。所以本系統(tǒng)具有社會(huì)可行性。2.1.2技術(shù)可行性本系統(tǒng)采用三層結(jié)構(gòu),用MySQL數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù),安裝和使用簡(jiǎn)單易學(xué),方便操作;前臺(tái)頁(yè)面采用JSP動(dòng)態(tài)頁(yè)面,JSP相比ASP、PHP都有很大的優(yōu)勢(shì);控制層采用Struts+Spring框架,Struts和Spring都是Java Web開(kāi)發(fā)中使用的比較熱門(mén)的技術(shù)。服務(wù)器

14、采用Tomcat服務(wù)器,它是一個(gè)開(kāi)源軟件。開(kāi)發(fā)人員在學(xué)習(xí)了這些語(yǔ)言或工具之后,有能力開(kāi)發(fā)本系統(tǒng)。2.1.3經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性是指軟件所帶來(lái)的經(jīng)濟(jì)效益與開(kāi)發(fā)設(shè)計(jì)所需要的投資費(fèi)用相比較是否適當(dāng),軟件是否會(huì)給使用者帶來(lái)經(jīng)濟(jì)效益。首先隨著計(jì)算機(jī)軟件和硬件技術(shù)的飛速發(fā)展,計(jì)算機(jī)軟、硬件價(jià)格不斷下降,設(shè)計(jì)本系統(tǒng)所投入的資金下降。與使用本系統(tǒng)為企業(yè)發(fā)布、獲取信息所節(jié)省的價(jià)值相比,應(yīng)用本系統(tǒng)帶來(lái)的收益較大,經(jīng)濟(jì)效益可觀,所以在經(jīng)濟(jì)上是可行的。2.2需求分析需求分析雖處于軟件開(kāi)發(fā)過(guò)程的開(kāi)始階段,但它對(duì)于整個(gè)軟件開(kāi)發(fā)過(guò)程以及軟件產(chǎn)品質(zhì)量是至關(guān)重要的。隨著軟件系統(tǒng)復(fù)雜性的提高及規(guī)模的擴(kuò)大,需求分析在軟件開(kāi)發(fā)中所處

15、的地位愈加突出1。所謂需求,是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能設(shè)計(jì)約束等方面的要求。在需求分析工作中,系統(tǒng)分析人員對(duì)用戶的需求進(jìn)行調(diào)查和分析,確定現(xiàn)有環(huán)境的特征,正確定義目標(biāo)軟件的特征 。因此,需求分析工作是對(duì)應(yīng)用環(huán)境及其問(wèn)題進(jìn)行理解和分析,為問(wèn)題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化。通用論壇BBS系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)以下功能:用戶中心:包括用戶注冊(cè)、用戶登錄、用戶注銷(xiāo)、增加好友、刪除好友、增加黑名單、刪除黑名單、發(fā)送短信息、查看短信息、刪除短信息、修改個(gè)人資料等功能。主題中心:包括主題分類(lèi)(論壇版塊)、查看主題、查看回復(fù)、發(fā)表主題、發(fā)表回復(fù)、對(duì)主題或回復(fù)進(jìn)行搜索等功能。管理員中

16、心:管理員對(duì)論壇進(jìn)行一些基本的維護(hù),包括對(duì)帖子的刪除、置頂、設(shè)為精華帖,對(duì)用戶的刪除、授權(quán),對(duì)版塊的權(quán)限管理,對(duì)用戶組及用戶組的權(quán)限的管理等2。統(tǒng)計(jì)功能:對(duì)論壇的相關(guān)參數(shù)進(jìn)行統(tǒng)計(jì)。2.2.1用戶中心當(dāng)用戶進(jìn)入網(wǎng)站首頁(yè)時(shí),會(huì)有一個(gè)登錄窗口,已經(jīng)注冊(cè)的會(huì)員用戶可以在這個(gè)窗口中登錄。沒(méi)有登錄的用戶只能查看主題,不能發(fā)表主題或評(píng)論。登錄之后,用戶就可以發(fā)表主題或回復(fù);查看或修改自己個(gè)人信息,包括修改用戶頭像,可以選擇自己喜歡的圖片作為自己的頭像;可以給好友發(fā)送短信息,查看或刪除自己收到的信息;用戶可以在好友與黑名單里設(shè)置自己的關(guān)系網(wǎng),讓用戶與自己的好友交流更加方便,也可在讓用戶不接收不愿意見(jiàn)到的人的信

17、息。沒(méi)有注冊(cè)的用戶可以在登錄窗口中點(diǎn)擊注冊(cè)超鏈接進(jìn)入新用戶注冊(cè)頁(yè)面,輸入用戶名、密碼、密碼提示問(wèn)題、提示問(wèn)題答案及安全郵箱,即可注冊(cè)成為網(wǎng)站的會(huì)員。密碼提示問(wèn)題是為找密碼設(shè)置的,當(dāng)用戶忘記密碼或密碼丟失后可以通過(guò)輸入提示問(wèn)題答案來(lái)找回密碼,如果用戶回答正確,系統(tǒng)會(huì)自動(dòng)發(fā)送一封郵件到用戶的安全郵箱里,提示用戶修改密碼。2.2.2主題中心系統(tǒng)有版塊,主題和回復(fù),其中版塊是對(duì)主題的分類(lèi),回復(fù)是在主題下發(fā)表的,是用戶對(duì)主題的評(píng)論。當(dāng)用戶進(jìn)入首頁(yè)時(shí)會(huì)顯示論壇的所有版塊及每個(gè)版塊下的主題數(shù),帖子總數(shù),最后發(fā)表主題的用戶、時(shí)間。進(jìn)入版塊之后顯示該版塊下的主題及該主題下的回復(fù)數(shù),點(diǎn)擊數(shù),最后發(fā)表評(píng)論的用戶、時(shí)

18、間。點(diǎn)擊主題名進(jìn)入主題頁(yè)面,該頁(yè)面有主題內(nèi)容,發(fā)表該主題的用戶的用戶名、積分、用戶組、注冊(cè)時(shí)間,該主題下的回復(fù)及發(fā)表回復(fù)的用戶的個(gè)人信息。已登錄用戶可以在版塊下發(fā)表主題,在主題下發(fā)表回復(fù),還可以按關(guān)鍵字對(duì)主題或回復(fù)進(jìn)行搜索,并支持模糊查詢(xún)。匿名用戶只能查看主題內(nèi)容,對(duì)主題或回復(fù)進(jìn)行搜索,但不能發(fā)表主題,不能發(fā)表回復(fù)。2.2.3管理員功能管理員作為一個(gè)特殊的用戶,除了擁有普通用戶擁有的功能外,還可以修改用戶權(quán)限,管理用戶組,管理版面,設(shè)置版主,控制用戶組權(quán)限。版主作為權(quán)限最少的管理者只能對(duì)自己所管理的版面的主題進(jìn)行刪除、置頂,設(shè)置精華貼,屏蔽用戶的回復(fù),編輯版面說(shuō)明等。2.2.4統(tǒng)計(jì)功能顯示論壇

19、當(dāng)前注冊(cè)總?cè)藬?shù)、當(dāng)前帖子總數(shù)、論壇點(diǎn)擊總數(shù)、當(dāng)前在線人數(shù),會(huì)員人數(shù)以及游客人數(shù)。用戶表現(xiàn)積分排行,調(diào)動(dòng)用戶積極性。用戶每次上線、發(fā)表主題或回復(fù)都會(huì)得到相應(yīng)的積分,并以此來(lái)體現(xiàn)用戶的活躍程度。系統(tǒng)會(huì)對(duì)主題按點(diǎn)擊數(shù)進(jìn)行排序,對(duì)版面按主題數(shù)進(jìn)行排序,帖子點(diǎn)擊統(tǒng)計(jì),方便了解熱點(diǎn)話題。本日版面排行榜,本日作者排行榜。2.3開(kāi)發(fā)工具及相關(guān)技術(shù)簡(jiǎn)介本系統(tǒng)采用的工具有JDK 1.5、Tomcat 5.0、MyEclipse 5.5、MySQL5.0,使用的技術(shù)有Java、Servlet、JSP、JavaScript、XML、Struts、Spring。2.3.1相關(guān)工具簡(jiǎn)介(1) JDK 1.5.0JDK是S

20、un 公司Java應(yīng)用程序和組件的開(kāi)發(fā)環(huán)境,是編譯和測(cè)試工具,也是提供java程序的Java虛擬機(jī)平臺(tái),是調(diào)試和運(yùn)行JSP所不可缺少的工具。本系統(tǒng)采用JDK1.5.0版本3。(2) Tomcat 5.0Tomcat是開(kāi)源的servlet和JSP容器(Sun官方推薦容器),它是Jakarta項(xiàng)目中一個(gè)重要的組成,由Apache、Sun和其他一些公司及個(gè)人開(kāi)發(fā)。Tomcat內(nèi)部實(shí)現(xiàn)了Servlet和JSP引擎,而且擴(kuò)展了一些應(yīng)用服務(wù)器的功能,例如JNDI、數(shù)據(jù)庫(kù)連接池、用戶事務(wù)處理等。目Tomcat被廣泛地應(yīng)用于中小規(guī)模的Java web應(yīng)用中4。(3) Eclipse/MyEclipse 5.5

21、Eclipse 是基于Java 的開(kāi)放源代碼的可擴(kuò)展開(kāi)發(fā)平臺(tái),Eclipse平臺(tái)提供軟件開(kāi)發(fā)工具的集成服務(wù),所有開(kāi)發(fā)工具(包括JDE和PDE)都是用插件的形式提供的。這種設(shè)計(jì)使得Eclipse具有開(kāi)放式可擴(kuò)充的結(jié)構(gòu)5。MyEclipse是在Eclipse集成開(kāi)發(fā)環(huán)境中提供Web應(yīng)用程序開(kāi)發(fā)的插件,在目前軟件開(kāi)發(fā)的Java領(lǐng)域中,MyEclipse是一個(gè)使用非常廣泛的工具。MyEclipse是Eclipse軟件的一個(gè)插件,Eclipse軟件是免費(fèi)的,但MyEclipse不是一個(gè)完全免費(fèi)的產(chǎn)品,需要購(gòu)買(mǎi)。(4) MySQL 5.0MySQL數(shù)據(jù)庫(kù)是一個(gè)較小型的數(shù)據(jù)庫(kù)系統(tǒng),同時(shí)是一個(gè)多用戶、多線程強(qiáng)

22、壯的SQL數(shù)據(jù)庫(kù)服務(wù)器,并提供免費(fèi)的安裝軟件6。由于它對(duì)平臺(tái)環(huán)境要求不高,安裝方便,適合中小型系統(tǒng)的開(kāi)發(fā)。2.3.2相關(guān)技術(shù)概述(1) Java語(yǔ)言概述Java編程語(yǔ)言是一種通用、并發(fā)、基于類(lèi)且面向?qū)ο蟮恼Z(yǔ)言。Java編程語(yǔ)言與C和C+相關(guān),但是在組織方式上有差別,Java具有C和C+遺漏的許多優(yōu)點(diǎn),同時(shí)兼有其他語(yǔ)言包括的一些思想。它旨在成為一種生產(chǎn)語(yǔ)言,而不是一種研究語(yǔ)言,并且正是如此7。(2) Servlet技術(shù)概述Servlet技術(shù)主要是為了使用Web上的HTTP協(xié)議而設(shè)計(jì)的。Servlet是在Web服務(wù)器上運(yùn)行的程序,Java Servlet可以用于處理客戶請(qǐng)求或生成動(dòng)態(tài)Web網(wǎng)頁(yè)。T

23、omcat是支持Java Servlet和JSP的Web服務(wù)器8。(3) JSP技術(shù)概述JSP (Java Server Pages)是由Sun 公司倡導(dǎo),許多公司參與,共同建立人一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),JSP技術(shù)是在Servlet技術(shù)基礎(chǔ)上發(fā)展起來(lái)的。它正在飛速發(fā)展中,現(xiàn)在已經(jīng)成為Java服務(wù)器編程的重要組成部分。(4) JavaScript技術(shù)概述JavaScript是一種基于對(duì)象(Object)和事件驅(qū)動(dòng)(Event Driver)并具有安全性能的腳本語(yǔ)言,它所能提供的功能非常強(qiáng)大。JavaScript是一種簡(jiǎn)潔的面向?qū)ο蟮拿枋稣Z(yǔ)言,是專(zhuān)門(mén)用來(lái)開(kāi)發(fā)Internet客戶端和服務(wù)器端的應(yīng)用程序

24、,它可以被輕易的嵌入到HTML文件中,使用JavaScript瀏覽器以回應(yīng)使用者的需求事件而不用通過(guò)網(wǎng)絡(luò)來(lái)回傳資料,這樣,使用者的資料就可以直接被客戶端應(yīng)用程序所處理,它的出現(xiàn)彌補(bǔ)了HTML語(yǔ)言的缺陷,它是Java與HTML折衷的選擇9(5) XML技術(shù)概述從1998年2月W3C正式推出XML(eXtensible Markup Language的縮寫(xiě),意為可擴(kuò)展的標(biāo)記語(yǔ)言)后短短的三年間,XML以驚人的速度在廣大的設(shè)計(jì)人員中傳播開(kāi)來(lái)。隨著Internet的飛速發(fā)展,HTML開(kāi)始對(duì)更多的網(wǎng)絡(luò)設(shè)計(jì)要求顯露出疲態(tài)。XML也就是在這種大環(huán)境下孕育而生的10。(6) Struts 概述Struts使用

25、Model2體系結(jié)構(gòu)。 ActionServlet 負(fù)責(zé)控制流程。另外一個(gè)Struts類(lèi),Action,負(fù)責(zé)存取業(yè)務(wù)邏輯類(lèi)。當(dāng)ActionServlet類(lèi)從窗口中獲得一個(gè)請(qǐng)求時(shí),它使用請(qǐng)求的URI(也稱(chēng)為路徑)來(lái)決定是哪一個(gè)Action來(lái)處理該請(qǐng)求。一個(gè)Action可以檢驗(yàn)輸入的合法性、通過(guò)業(yè)務(wù)邏輯層來(lái)讀取數(shù)據(jù)庫(kù)或者其他數(shù)據(jù)服務(wù)中的信息。要校驗(yàn)輸入的合法性或者是使用該輸入來(lái)修改數(shù)據(jù)庫(kù)中的內(nèi)容,Action需要用戶提交給它處理數(shù)據(jù)。為了避免每一個(gè)Action都要處理從請(qǐng)求中輸入數(shù)據(jù)的操作,Struts將這些輸入數(shù)據(jù)綁定到JavaBean中。每一個(gè)這樣的Bean都是Struts中ActionFor

26、m類(lèi)的子類(lèi)。ActionServlet通過(guò)查看請(qǐng)求的路徑就可以決定哪一個(gè)ActionForm用來(lái)包含輸入數(shù)據(jù)。這些ActionFormod 類(lèi)都應(yīng)該是org.apache.struts.action.ActionForm的子類(lèi)。每一個(gè)HTTP請(qǐng)求都必須有一個(gè)HTTP響應(yīng)。一般而言,Struts自已并不生成響應(yīng),而是將請(qǐng)求轉(zhuǎn)發(fā)到其他的資源上去例如JSP頁(yè)面。Struts提供一個(gè)名為ActionForward的類(lèi)來(lái)將邏輯名保存到每個(gè)面的路徑。當(dāng)業(yè)務(wù)邏輯部分已經(jīng)執(zhí)行完成后,Action會(huì)選擇一個(gè)ActionForward,并且將它返回給每個(gè)總控servlet??偪豐ervlet 會(huì)使用在該Actio

27、n Forward中存儲(chǔ)的物理路徑來(lái)調(diào)用對(duì)應(yīng)的頁(yè)面來(lái)完成HTTP響應(yīng)部分。Struts將所有這些方面的細(xì)節(jié)信息都定義在ActionMapping對(duì)象中。每一個(gè)ActionMapping對(duì)象都對(duì)應(yīng)于一個(gè)指定的路徑。當(dāng)該路徑被請(qǐng)求時(shí),總控servlet會(huì)獲取對(duì)應(yīng)的ActionMapp world wide webing對(duì)象。該對(duì)象會(huì)告訴總控servlet該使用哪些Action,ActionForm和ActionForward對(duì)象。全部有關(guān) Action,ActionForm,ActionForward以及ActionMapping的信息和其他的配置信息都在Struts-config.xml文件中聲

28、明。ActionServlet在啟動(dòng)的時(shí)候會(huì)讀取該文件,并且創(chuàng)建包含所有這些配置對(duì)象的數(shù)據(jù)庫(kù)。在運(yùn)行時(shí)刻,Struts會(huì)使用這些對(duì)象,而不是文件本身11。(1) Spring 概述Spring 是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開(kāi)發(fā)提供集成的框架。Spring提供了一種輕量級(jí)的解決方案,用于建立“快裝式企業(yè)應(yīng)用”。在此基礎(chǔ)上,Spring還提供了包括聲明式事務(wù)管理,RMI或Web Service 遠(yuǎn)程訪問(wèn)業(yè)務(wù)邏輯,以及可以多種方法進(jìn)行的持久化數(shù)據(jù)庫(kù)的解決方案。另外,Spring

29、 還有一個(gè)全功能的MVC柜架,并能透明地把AOP集成到用戶的軟件中去12。2.4系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)流圖即DFD(Data Flow Diagram)圖。是用于分析系統(tǒng)數(shù)據(jù)流程的圖形,意在讓用戶理解系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲(chǔ)等。BBS系統(tǒng)的第一層數(shù)據(jù)流圖如圖2-1所示,描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系13。管理員用戶BBS系統(tǒng)管理用戶管理版塊管理主題管理用戶組登錄發(fā)送短信發(fā)表回復(fù)發(fā)表主題注冊(cè)圖2-1 BBS系統(tǒng)的數(shù)據(jù)流圖(第一層)注銷(xiāo)登錄管理用戶組權(quán)限管理版塊權(quán)限增加好友刪除好友增加黑名單刪除黑名單2.5用例圖用例是系統(tǒng)、子系統(tǒng)或類(lèi)和外部的參與者(actor)交互的動(dòng)作序列的說(shuō)

30、明,包括可選的動(dòng)作序列和會(huì)出現(xiàn)異常的動(dòng)作序列。用例是代表系統(tǒng)中各個(gè)項(xiàng)目相關(guān)人員之間就系統(tǒng)的行為所達(dá)成的契約。在UML中,用例用一個(gè)橢圓表示,用例名往往用動(dòng)賓結(jié)構(gòu)或主謂結(jié)構(gòu)命名14。參與者是指用戶在系統(tǒng)中的扮演的角色,其圖形化表示是一個(gè)小人。BBS系統(tǒng)的用例有用戶注冊(cè)、登錄、注銷(xiāo)、瀏覽主題、發(fā)表主題、發(fā)表回復(fù)、查看短信、發(fā)送短信息、刪除短信;管理員管理用戶、管理主題、管理用戶組、版塊權(quán)限、管理用戶組權(quán)限。用例圖如圖2-2所示。注冊(cè)登錄注銷(xiāo)瀏覽主題發(fā)表回復(fù)發(fā)表主題發(fā)送短信查看短信刪除短信管理用戶管理版塊管理主題管理用戶組管理用戶組權(quán)限圖2-2 BBS系統(tǒng)的用例圖管理員用戶管理版塊權(quán)限增加好友刪除好

31、友增加黑名單刪除黑名單修改個(gè)人資料3總體設(shè)計(jì)3.1功能分析后臺(tái)管理模塊BBS系統(tǒng)功能模塊前臺(tái)顯示模塊圖3-1 BBS系統(tǒng)功能模塊圖BBS系統(tǒng)分為前臺(tái)和后臺(tái)兩個(gè)模塊。系統(tǒng)的功能模塊圖如圖3-1所示。前臺(tái)模塊的使用對(duì)象包括了所有用戶(管理員、用戶、游客),提供的功能包括注冊(cè)帳號(hào)、用戶登錄、用戶注銷(xiāo)、瀏覽文章、發(fā)表新主題、回復(fù)主題、增加好友、刪除好友、增加黑名單、刪除黑名單、查看短信息、發(fā)送短信息、刪除短信息、修改個(gè)人信息。如圖3-2所示。前臺(tái)顯示模塊發(fā)表主題發(fā)表回復(fù)刪除短信息用戶注銷(xiāo)瀏覽主題用戶登錄用戶注冊(cè)增加黑名單修改個(gè)人信息增加好友刪除好友刪除黑名單發(fā)送短信息查看短信息圖3-2 BBS系統(tǒng)前臺(tái)

32、功能模塊圖后臺(tái)模塊的使用對(duì)象為管理人員(版主、管理員、超級(jí)管理員),提供的功能包括管理用戶、管理版塊、管理主題、管理用戶組、功能權(quán)限管理、版塊權(quán)限管理。后臺(tái)功能模塊如圖3-3所示。后臺(tái)管理模塊版塊管理用戶管理主題管理用戶組管理功能權(quán)限管理版塊權(quán)限管理查詢(xún)版塊新增版塊刪除版塊修改用戶刪除用戶修改主題屬性刪除主題增加用戶組查詢(xún)用戶組刪除用戶組新增版塊權(quán)限查詢(xún)功能權(quán)限刪除功能權(quán)限新增功能權(quán)限查詢(xún)版塊權(quán)限刪除版塊權(quán)限圖3-3 BBS后臺(tái)功能模塊圖3.2數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)前面的需求描述,本系統(tǒng)中可以抽象出來(lái)的數(shù)據(jù)模型有:用戶(user)、模塊(module)、主題(topic)、回復(fù)(retopic)、好友

33、關(guān)系(friends)、用戶短信息(note)、用戶組(groud)、功能(function)、功能權(quán)限(group_has_function)、模塊權(quán)限(modright)模塊版主(user_has_module)、積分(integral)。根據(jù)需求分析,可設(shè)計(jì)如下表:(1) 用戶信息表:用戶ID、用戶名、密碼、E-mail地址、密碼提示問(wèn)題、提示問(wèn)題答案、是否公開(kāi)注冊(cè)信息、真實(shí)姓名、性別、出生年月日、聯(lián)系電話、詳細(xì)地址、郵政編碼、用戶簽名檔、用戶頭像、QQ、注冊(cè)時(shí)間、用戶組、用戶積分、用戶登錄次數(shù)、最后登錄時(shí)間、發(fā)表的帖子數(shù)、被推薦的精華帖數(shù)、用戶最后登錄的IP(2) 論壇模塊表:模塊ID

34、、模塊名、上級(jí)模塊ID、模塊介紹、模塊一天的總主題數(shù)、模塊主題總數(shù)、模塊回復(fù)總數(shù)、模塊狀態(tài)(1普通模塊、2會(huì)員論壇、3嘉賓論壇、4加密論壇、5關(guān)閉論壇)、是否審核(false否、true是)、加密論壇的密碼、模塊創(chuàng)建時(shí)間論壇主題表:主題ID、主題名、主題內(nèi)容、主題發(fā)布者、所屬模塊、主題狀(3) 表示在審核中、1表示審核通過(guò)、2表示草稿)、訪問(wèn)限制積分、點(diǎn)擊數(shù)、是否為精華帖子、是否置頂、被創(chuàng)建時(shí)間(4) 主題回復(fù)表:回復(fù)帖子ID、回復(fù)主題ID、回復(fù)標(biāo)題、回復(fù)內(nèi)容、回復(fù)者ID、回復(fù)時(shí)間、是否屏蔽(false否、true是)(5) 關(guān)系表:好友ID、用戶名、申請(qǐng)的好友用戶名,好友標(biāo)記(0黑名單、1好

35、友、2未確認(rèn)好友)(6) 用戶短信息表:短信ID、發(fā)信者、收信者、短信標(biāo)題、短信內(nèi)容、發(fā)信時(shí)間、發(fā)信標(biāo)記(0已刪除1已發(fā)送2草稿)、收信標(biāo)記(0已刪除、1已讀,2未讀)(7) 用戶組表:組ID、用戶組名、組描述(8) 功能表:功能ID、功能名、功能信息(9) 功能權(quán)限表:用戶組ID、功能ID(10) 模塊權(quán)限表:權(quán)限ID、用戶組名(外鍵)、訪問(wèn)模塊ID,訪問(wèn)權(quán)限(11) 模塊版主表:用戶ID、模塊ID(12) 積分表:積分ID、積分、等級(jí)4詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1數(shù)據(jù)庫(kù)連接系統(tǒng)采用JSPStruts+Spring架構(gòu),數(shù)據(jù)庫(kù)采用MySQL,使用Spring的配置文件beans.xml連接數(shù)據(jù)庫(kù),其

36、連接數(shù)據(jù)庫(kù)的配置信息如下:使用注入Dao的形式進(jìn)行數(shù)據(jù)庫(kù)操作,在Dao中實(shí)現(xiàn)對(duì)數(shù)據(jù)表的增加、刪除、查詢(xún)、修改操作,Dao不進(jìn)行其他的邏輯操作。前臺(tái)JSP頁(yè)面產(chǎn)生的請(qǐng)求交由對(duì)應(yīng)的Action進(jìn)行邏輯操作,當(dāng)其要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),通過(guò)WebApplicationContext 對(duì)象獲取Dao,將要操作的對(duì)象的相關(guān)參數(shù)傳給Dao即可。這就是對(duì)接口編程,使各個(gè)模塊之間低耦合,有利于程序的可擴(kuò)展性。4.2前臺(tái)顯示模塊前臺(tái)顯示模塊包括用戶的一些功能,具體的可分為用戶注冊(cè)、用戶登錄、用戶注銷(xiāo)、修改個(gè)人信息、增加好友、刪除好友、增加黑名單、刪除黑名單、查看短信息、發(fā)送短信息、刪除短信息、查看版面、查看主題、

37、查看回復(fù)、發(fā)表主題和發(fā)表回復(fù)等功能。由于主題是在版塊下存在的,所以在版塊下的任何地方都可以發(fā)表主題,而回復(fù)只能是針對(duì)主題進(jìn)行回復(fù),所以必須在主題下才能發(fā)表回復(fù),也就是在主題頁(yè)面下才能點(diǎn)擊發(fā)表回復(fù)?,F(xiàn)將部分功能說(shuō)明如下:(1) 用戶注冊(cè):新用戶在login.jsp頁(yè)面中輸入用戶名,密碼,密碼提示問(wèn)題、提示問(wèn)題答案、安全郵箱,點(diǎn)擊提交按鈕,數(shù)據(jù)提交到LoginAction.java中進(jìn)行處理,在LoginAction.java中,如果用戶名已經(jīng)有人使用則返回注冊(cè)頁(yè)面,否則提示用戶注冊(cè)成功,并跳轉(zhuǎn)到登錄頁(yè)面entry.jsp。(2) 用戶登錄:用戶在有帳號(hào)的前提下,可以在登錄頁(yè)面entry.jsp或

38、主頁(yè)bbs.jsp中輸入用戶名和密碼點(diǎn)擊登錄,系統(tǒng)將用戶名和密碼提交到LoginAction.java中的entry()方法,將用戶提交的用戶名和密碼再轉(zhuǎn)交給后臺(tái)的Dao進(jìn)行查詢(xún),如果有這樣的一條記錄存在則登錄成功,將用戶的個(gè)人信息保存在瀏覽器端的Session中,否則返回登錄頁(yè)面,并提示用戶名或密碼錯(cuò)誤。(3) 用戶注銷(xiāo):已登錄用戶在退出網(wǎng)站時(shí)注銷(xiāo)登錄狀態(tài),系統(tǒng)將請(qǐng)求交給LoginAction.java的loginOut()方法處理,在loginOut()方法中修改用戶最后離線時(shí)間,將修改保存到數(shù)據(jù)庫(kù)中,并將瀏覽器端的Session的user屬性移除,系統(tǒng)返回主頁(yè)。用戶同時(shí)失去登錄用戶的權(quán)限

39、,以游客身份訪問(wèn)網(wǎng)站,只能瀏覽主題,不能發(fā)表主題,也不能發(fā)表回復(fù)。(4) 查看版面:首頁(yè)顯示BBS的版塊及主要信息,點(diǎn)擊版塊名進(jìn)入版塊下會(huì)顯示主題列表,點(diǎn)擊主題名可以進(jìn)入主題頁(yè)面。首頁(yè)index.jsp采用 方法將請(qǐng)求交給BbsAction.java處理,在BbsAction中從數(shù)據(jù)庫(kù)取出所有版塊的信息及每個(gè)版塊下的最新主題信息,并將取出的數(shù)據(jù)保存在JSP的Session對(duì)象中,數(shù)據(jù)取出后交給bbs.jsp頁(yè)面,在bbs.jsp頁(yè)面中將取出的結(jié)果顯示出來(lái)。(5) 查看主題:當(dāng)用戶在主頁(yè)上點(diǎn)擊版塊名時(shí),會(huì)產(chǎn)生一個(gè)動(dòng)作,向服務(wù)器產(chǎn)生一個(gè)請(qǐng)求,服務(wù)器將程序交給TopicAction.java處理,在

40、TopicAction.java中取出模塊下的所有主題及最后發(fā)表回復(fù)的作者的信息并將其存入request對(duì)象中,處理完之后返回到版塊下的主題顯示頁(yè)面。(6) 查看回復(fù):用戶在主題顯示頁(yè)面點(diǎn)擊主題名時(shí)會(huì)產(chǎn)生查找主題信息動(dòng)作,系統(tǒng)將這個(gè)動(dòng)作交給ReTopicAction.java來(lái)處理,在ReTopicAction.java中請(qǐng)求交給后臺(tái)DAO,從DAO中取出數(shù)據(jù)表中的項(xiàng),要取的內(nèi)容有該主題所在的版塊信息、該主題信息、該主題下的回復(fù)信息,該主題和其回復(fù)的作者的部分信息。4.3后臺(tái)管理模塊管理員又可分為版主、管理員、超級(jí)管理員。版主的權(quán)限最小,只能維護(hù)自己版面的主題,包括刪除主題、將主題置頂、設(shè)置精

41、華帖等。管理員的功能比版主的功能要多,管理員可以刪除用戶,修改用戶權(quán)限、增加用戶組、刪除用戶組、增加版塊、刪除版塊、查詢(xún)版塊、刪除主題、修改主題屬性、新增功能權(quán)限、查詢(xún)功能權(quán)限、刪除功能權(quán)限、新增版塊權(quán)限、查詢(xún)版塊權(quán)限、刪除版塊權(quán)限。管理員不能刪除其他的管理員,管理員只有超級(jí)管理員才能夠設(shè)置和刪除。超級(jí)管理員具有網(wǎng)站的一切功能?,F(xiàn)將部分功能介紹如下:管理員作為特殊的用戶,通過(guò)bbs.jsp或entry.jsp頁(yè)面進(jìn)行登錄到主頁(yè),在主頁(yè)上如果是管理員則顯示后臺(tái)管理超鏈接,管理員點(diǎn)擊后臺(tái)管理,進(jìn)入管理界面manage.jsp,在管理頁(yè)面有版塊管理、主題管理、用戶管理、用戶組管理、用戶組權(quán)限管理、版

42、塊權(quán)限管理。用戶點(diǎn)擊版塊管理,系統(tǒng)將請(qǐng)求提交給ModuleAction.java的manage方法,在manage方法中取出所有的版塊,跳轉(zhuǎn)到manageModule.jsp,在這個(gè)頁(yè)面將所有的版塊都顯示出來(lái),管理員可以在這個(gè)頁(yè)面直接點(diǎn)擊刪除鏈接,將所在版塊ID提交到后臺(tái),在ModuleAction.java的delete方法中將版塊及該版塊下的主題刪除,同時(shí)也將該版塊下的主題的回復(fù)全部刪除。ModuleAction.java 的delete方法的關(guān)鍵代碼如下:public ActionForward delete(ActionMapping mapping, ActionForm form,

43、HttpServletRequest request, HttpServletResponse response) / TODO Auto-generated method stubWebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();ModuleDao moduleDao = (ModuleDao) ctx.getBean(moduleDao);TopicDao topicDao = (TopicDao) ctx.getB

44、ean(topicDao);ReTopicDao reTopicDao = (ReTopicDao) ctx.getBean(reTopicDao);String moduleId = request.getParameter(id);String check = request.getParameterValues(id);if (moduleId != null) List listTopic = topicDao.getTopicByModId(Integer.parseInt(moduleId);if (listTopic != null & !listTopic.isEmpty()

45、for (Topic topic : listTopic) reTopicDao.deleteReTopicsByTopicId(topic.getId();System.out.println(topic.getId()+刪除回復(fù)成功);topicDao.deleteTopics(Integer.parseInt(moduleId);System.out.println(刪除主題成功);if (moduleDao.deleteModule(Integer.parseInt(moduleId) quest.setAttribute(returnMessage, 刪除模塊成功!);request

46、.setAttribute(returnMessage, 刪除模塊失??!); else if (check != null) System.out.println(check.length);for (int i = 0; i check.length; i+) if (checki != null) if (moduleDao.deleteModule(Integer.parseInt(checki) List listTopic = topicDao.getTopicByModId(Integer.parseInt(checki);if (listTopic != null & !list

47、Topic.isEmpty() for (Topic topic : listTopic) if (reTopicDao.deleteReTopicsByTopicId(topic.getId();topicDao.deleteTopics(Integer.parseInt(checki);request.setAttribute(returnInfo, 刪除模塊成功!); else request.setAttribute(returnInfo, 刪除模塊失??!);return mapping.findForward(deleteModuleSuccess);增加版塊頁(yè)面是insertMod

48、ule.jsp,用戶輸入版塊類(lèi)型和版塊信息,點(diǎn)擊提交,系統(tǒng)將數(shù)據(jù)交給ModuleAction.java 的insert方法處理,在insert方法中,將版塊信息再轉(zhuǎn)交給后臺(tái)的ModuleDao,在ModuleDao中將版塊信息插入到數(shù)據(jù)庫(kù)中。如果數(shù)據(jù)庫(kù)中沒(méi)有這個(gè)版塊的類(lèi)型且插入成功,則返回1,如果有這個(gè)類(lèi)型的版塊則返回-1,其他情況返回0,根據(jù)返回值不同,相應(yīng)的顯示不同的提示信息。處理完成后,頁(yè)面跳轉(zhuǎn)到版塊管理頁(yè)面,顯示系統(tǒng)中的所有版塊信息。ModuleAction.java的insert方法的代碼如下:public ActionForward insert(ActionMapping map

49、ping, ActionForm form,HttpServletRequest request, HttpServletResponse response) WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();ModuleDao moduleDao = (ModuleDao) ctx.getBean(moduleDao);String modType = request.getParameter(modType);Str

50、ing modInfo = request.getParameter(modInfo);User user=(User)request.getSession().getAttribute(user);Module module = new Module();module.setType(modType);module.setInfo(modInfo);module.setUserId(user.getId();int returnValue = moduleDao.insertModule(module);if (returnValue = 1) request.setAttribute(re

51、turnInfo, 新增版塊成功!); else if (returnValue = -1) request.setAttribute(returnInfo, 新增的版塊已經(jīng)存在!); else request.setAttribute(returnInfo, 新增失敗!);List listModule = moduleDao.getModule();request.setAttribute(listModule, listModule);return mapping.findForward(manageModule);主題管理manageTopic.jsp中有刪除主題,置頂,精華帖三種功能

52、。點(diǎn)擊刪除主題,系統(tǒng)將主題id傳給TopicAction.java的delete方法,在delete方法中查詢(xún)?nèi)绻撝黝}下有回復(fù)opicDao的deleteTopic(int id)方法將該主題刪除。TopicAction.java的delete方法如下:public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) / TODO Auto-generated method stubWebApplication

53、Context ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();TopicDao topicDao = (TopicDao) ctx.getBean(topicDao);ReTopicDao reTopicDao = (ReTopicDao) ctx.getBean(reTopicDao);int topicId = Integer.parseInt(request.getParameter(id);if (reTopicDao.getReTopicsByTopicId(topicId).size()0) if(!reTopicDao.deleteReTopicsByTopicId(topicId)request.setAttribute(returnInfo, 刪除主題失??!

溫馨提示

  • 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)論