版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、旅游論壇BBS系統(tǒng)設(shè)計與實現(xiàn)學 生 姓 名 肖雄 指 導(dǎo) 教 師 楊洋 專 業(yè) 計算機科學與技術(shù) 學 院 信息技術(shù)工程學院 2016年3月8日畢業(yè)設(shè)計(論文)任務(wù)書姓名: 肖雄學院:信息技術(shù)工程學院班級:12計科專業(yè):計算機科學與技術(shù)畢業(yè)設(shè)計(論文)題目:旅游論壇BBS系統(tǒng)設(shè)計與實現(xiàn)立題目的和意義:目的:設(shè)計的首要目的是運用已經(jīng)學習到的MyEclipse工具和MySQL數(shù)據(jù)庫知識自主實現(xiàn)一個實用的系統(tǒng),使得現(xiàn)有知識得到更好的鞏固,更加熟練的操作MyEclipse工具和MySQL數(shù)據(jù)庫。同時在實現(xiàn)中學習到更多的知識,能更深入掌握JSP和了解軟件開發(fā)的全過程,為以后的學習與工作打下堅實的基礎(chǔ)。意義
2、:BBS(電子布告欄系統(tǒng))是在網(wǎng)上提供交流的手段。它可以用于公告、群組討論、社區(qū)內(nèi)通信、聯(lián)系、在線聊天、找工作等,利用網(wǎng)絡(luò)實時、便捷的特點來方便人們的交流、聯(lián)系和娛樂.技術(shù)要求與工作計劃:技術(shù)要求:本設(shè)計所做的網(wǎng)站采用三層結(jié)構(gòu),以MySQL數(shù)據(jù)庫為后臺數(shù)據(jù)庫,以JSP網(wǎng)頁作為表現(xiàn)層實現(xiàn),以Struts整合Spring進行模型控制,因此,要求開發(fā)人員熟悉數(shù)據(jù)庫的基本知識,通曉MySQL數(shù)據(jù)庫的特點和用法,掌握Java語言的基本知識,能熟練運用JSP進行網(wǎng)站開發(fā),以及對Struts和Spring框架有所掌握。熟練使用MyEclipse開發(fā)工具,了解Tomcat服務(wù)器的工程部署.工作計劃:利用一個月
3、來學習Java語言,JSP語言,Struts及Spring框架,MySQL數(shù)據(jù)庫,同時進行需求分析。利用大約一個半月的時間進行系統(tǒng)設(shè)計和編碼。利用十天左右進行系統(tǒng)調(diào)試和測試.利用半個月時間完成論文編寫和審定。時間安排:2015.7.12015。12.1 學習Java語言,JSP語言,Struts及Spring框架,MySQL數(shù)據(jù)庫。2015。12.5-2016.2.1 進行系統(tǒng)的概要設(shè)計,詳細設(shè)計,代碼的編寫。2016。2.22016。2.15 進行系統(tǒng)的調(diào)試與測試。2016.2。152016。3。11 論文的編寫和審定.摘要通用論壇BBS系統(tǒng)是按照MVC模式進行設(shè)計實現(xiàn)的,采用Tomcat作
4、為后臺服務(wù)器,以MySQL數(shù)據(jù)庫作為數(shù)據(jù)服務(wù)器,使用Struts和Spring進行邏輯控制,表現(xiàn)層用JSP頁面顯示,用于在網(wǎng)絡(luò)上為網(wǎng)民提供一個信息發(fā)布、獲取的場所。實現(xiàn)了查看、發(fā)表、刪除帖子功能,論壇帖子版塊控制,注冊用戶可以修改自己的個人信息、增加好友與黑名單以及用戶之間發(fā)送短信息,管理員可以對用戶、帖子,版塊、用戶組、版塊權(quán)限和用戶組權(quán)限進行管理。論文從問題的提出、基本設(shè)計思想、數(shù)據(jù)的流向到具體的設(shè)計過程都做出了詳細論述。關(guān)鍵詞:BBS;論壇;主題;回復(fù)1緒論1.1課題研究的目的及意義設(shè)計的首要目的是運用已經(jīng)學習到的MyEclipse工具和MySQL數(shù)據(jù)庫知識自主實現(xiàn)一個實用的系統(tǒng),使得現(xiàn)
5、有知識得到更好的鞏固,更加熟練的操作MyEclipse工具和MySQL數(shù)據(jù)庫。同時在實現(xiàn)中學習到更多新的知識,能更深入掌握JSP、Java語言,了解軟件開發(fā)的全過程,為以后的學習與工作打下堅實的基礎(chǔ).BBS(電子布告欄系統(tǒng))是在網(wǎng)上提供交流的手段。它可以用于公告、群組討論、社區(qū)內(nèi)通信、聯(lián)系、在線聊天、找工作等,利用網(wǎng)絡(luò)實時、便捷的特點來方便人們的交流、聯(lián)系和娛樂。1。2國內(nèi)外研究動態(tài)進入二十一世紀,計算機技術(shù)迅速向著網(wǎng)絡(luò)化、集成化方向發(fā)展.傳統(tǒng)的單機版應(yīng)用軟件正在逐漸退出舞臺,取而代之的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中似乎存在著兩種不同的趨勢,一
6、種是稱為客戶端服務(wù)器的C/S結(jié)構(gòu)應(yīng)用系統(tǒng),這類軟件具有結(jié)構(gòu)嚴謹,運行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點,被廣泛運用于局域網(wǎng)中。而另一種,也是本畢業(yè)設(shè)計所采用的,是稱為瀏覽器服務(wù)器的B/S結(jié)構(gòu)應(yīng)用系統(tǒng),它的特點是在客戶端直接采用了功能強大的瀏覽器軟件作為界面,其優(yōu)點在于軟件開發(fā)效率高,客戶端不受操作平臺的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見效快,用戶可以不必進行服務(wù)器方面的投資,而是去租用,甚至是免費使用ISP的服務(wù)器資源,因而受到越來越多中小型單位的青睞.Internet起源于20世紀60年代末、70年代初,當時,美國國防部為了將充
7、斥于軍事基地內(nèi)各種廠商的電腦主機互連,讓它們可以進行數(shù)據(jù)交換以便研究工作順利進行,于是成立了ARPA網(wǎng)絡(luò)計劃。ARPA計劃嘗試建設(shè)一個網(wǎng)絡(luò)系統(tǒng),它可將各種不同廠商的電腦連接起來。隨著這個計劃的成功,各學術(shù)單位,研究機構(gòu)也紛紛與ARPA計劃所建立的ARPANet連接。到了20世紀80年代,Internet這個名詞因勢產(chǎn)生,它代表著這十年來所構(gòu)建涵蓋全球各地的網(wǎng)絡(luò)系統(tǒng)。從1990年起,商業(yè)使用的Internet在美國急速地擴大,而Internet也從原來屬于少數(shù)人使用的網(wǎng)絡(luò)系統(tǒng)轉(zhuǎn)變?yōu)槠胀ò傩找材軌蚴褂玫木W(wǎng)絡(luò)系統(tǒng).最初的Internet資源服務(wù)都還停留在文本模式,1989年,量子物理實驗室(CERN
8、)下的一個研究小組著手開發(fā)一種全新的Internet服務(wù),它可以在網(wǎng)絡(luò)上傳送圖片、文本、影像、聲音等多媒體數(shù)據(jù).于是由Tim Berners Lee領(lǐng)導(dǎo)的小組開發(fā)出了一種主從、分布式的網(wǎng)絡(luò)服務(wù)系統(tǒng),這就是WWW(World Wide Web),俗稱“萬維網(wǎng)"。所謂WWW其實就是連上Web服務(wù)器訪問資源,取得的內(nèi)容就是所謂的“主頁”(HomePage)。進入的網(wǎng)頁通常不會只有一頁,而是整個網(wǎng)站的內(nèi)容?!熬W(wǎng)站”是一種呈現(xiàn)在網(wǎng)絡(luò)上的新興媒體,通過Internet已經(jīng)成為一個實時的,多媒體的信息傳播渠道。它的載體主要是電腦,范圍覆蓋全球各地,沒有國界,不分人種,時時刻刻地提供服務(wù).目前,人們
9、漸漸開始把網(wǎng)站稱之為廣播、電視、報刊以外的第四新聞媒體,以“共享、公平、公正、創(chuàng)新、國際化、團隊精神”為特征的網(wǎng)絡(luò)文明也已逐漸成為這個時代的標志,人們越來越習慣于通過Internet網(wǎng)絡(luò)獲取信息,通過Internet在網(wǎng)站上發(fā)表自己對社會對生活的理解和建議。隨著網(wǎng)絡(luò)的普及,論壇的內(nèi)容越來越豐富,論壇也由此深受廣大網(wǎng)民的喜愛,因此商業(yè)網(wǎng)站對論壇也重視起來,提供與網(wǎng)民交流的平臺,同時在線技術(shù)支持也在論壇中開展起來。1。3本文的工作BBS系統(tǒng)就是提供給注冊用戶一個平臺,會員用戶可以通過Internet接入,登錄論壇,在這個平臺上發(fā)表文章、閱讀文章、回復(fù)文章等等。此類系統(tǒng)通常有以下四種類型的操作用戶:
10、匿名用戶、普通用戶、版主、管理員、超級管理員。每類用戶有其不同的操作集,系統(tǒng)通常提供一個統(tǒng)一的登錄頁面,此頁面應(yīng)能自動識別不同級別的用戶,并提供不同的操作界面.與之相應(yīng),此類系統(tǒng)通常應(yīng)具有以下功能:用戶注冊、用戶登錄、發(fā)表文章、閱讀文章、回復(fù)文章、分頁查找、主題查找、作者查找、個人資料維護、找回密碼、版面管理、版主管理、用戶管理、友情鏈接管理等等,所有操作都可以由用戶在客戶端瀏覽器中完成,而服務(wù)器端程序會按用戶的要求來完成對系統(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/Server(
11、瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。C/S結(jié)構(gòu),即Client/Server(客戶機/服務(wù)器)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開銷,可以充分利用兩端硬件環(huán)境的優(yōu)勢。早期的軟件系統(tǒng)多以此作為首選設(shè)計標準。B/S結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),形成所謂NTier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript)和Activ
12、eX技術(shù),用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當今應(yīng)用軟件的首選體系結(jié)構(gòu)。結(jié)合BBS論壇系統(tǒng)實際需要,本BBS系統(tǒng)采用B/S結(jié)構(gòu)。論文設(shè)計開發(fā)的系統(tǒng)為通用BBS系統(tǒng),系統(tǒng)應(yīng)該具備較大的可伸縮性,應(yīng)該能適應(yīng)最基本應(yīng)用最廣泛的Web平臺。另外,通用系統(tǒng)應(yīng)該具備較大的可擴展性,而Java 語言是面向?qū)ο蟮?,面向?qū)ο缶幊套⒅爻绦虻目蓴U展性,且Java 語言是跨平臺執(zhí)行的,JSP相對其他網(wǎng)頁編程語言有更多的優(yōu)點,所以本系統(tǒng)采用Java+JSP作為編程語言。2系統(tǒng)分析2。1
13、可行性分析商業(yè)軟件是根據(jù)客戶的根本目的和需要而設(shè)計和開發(fā)的,可行性是開發(fā)的系統(tǒng)具有使用價值和生命力的保證。2.1.1社會可行性當前社會是一個網(wǎng)絡(luò)化的社會,網(wǎng)絡(luò)就在人們周圍,人們從網(wǎng)絡(luò)上獲取并發(fā)布信息,而本系統(tǒng)正是應(yīng)這一需求而產(chǎn)生,為企業(yè),個人發(fā)布,獲取有價值的信息提供場所。所以本系統(tǒng)具有社會可行性.2.1.2技術(shù)可行性本系統(tǒng)采用三層結(jié)構(gòu),用MySQL數(shù)據(jù)庫作為后臺數(shù)據(jù)庫,安裝和使用簡單易學,方便操作;前臺頁面采用JSP動態(tài)頁面,JSP相比ASP、PHP都有很大的優(yōu)勢;控制層采用Struts+Spring框架,Struts和Spring都是Java Web開發(fā)中使用的比較熱門的技術(shù).服務(wù)器采用T
14、omcat服務(wù)器,它是一個開源軟件。開發(fā)人員在學習了這些語言或工具之后,有能力開發(fā)本系統(tǒng)。2。1。3經(jīng)濟可行性經(jīng)濟可行性是指軟件所帶來的經(jīng)濟效益與開發(fā)設(shè)計所需要的投資費用相比較是否適當,軟件是否會給使用者帶來經(jīng)濟效益。首先隨著計算機軟件和硬件技術(shù)的飛速發(fā)展,計算機軟、硬件價格不斷下降,設(shè)計本系統(tǒng)所投入的資金下降.與使用本系統(tǒng)為企業(yè)發(fā)布、獲取信息所節(jié)省的價值相比,應(yīng)用本系統(tǒng)帶來的收益較大,經(jīng)濟效益可觀,所以在經(jīng)濟上是可行的。2。2需求分析需求分析雖處于軟件開發(fā)過程的開始階段,但它對于整個軟件開發(fā)過程以及軟件產(chǎn)品質(zhì)量是至關(guān)重要的。隨著軟件系統(tǒng)復(fù)雜性的提高及規(guī)模的擴大,需求分析在軟件開發(fā)中所處的地位
15、愈加突出1.所謂需求,是指用戶對目標軟件系統(tǒng)在功能、行為、性能設(shè)計約束等方面的要求.在需求分析工作中,系統(tǒng)分析人員對用戶的需求進行調(diào)查和分析,確定現(xiàn)有環(huán)境的特征,正確定義目標軟件的特征 .因此,需求分析工作是對應(yīng)用環(huán)境及其問題進行理解和分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化。通用論壇BBS系統(tǒng)設(shè)計實現(xiàn)以下功能:用戶中心:包括用戶注冊、用戶登錄、用戶注銷、增加好友、刪除好友、增加黑名單、刪除黑名單、發(fā)送短信息、查看短信息、刪除短信息、修改個人資料等功能.主題中心:包括主題分類(論壇版塊)、查看主題、查看回復(fù)、發(fā)表主題、發(fā)表回復(fù)、對主題或回復(fù)進行搜索等功能.管理員中心:管
16、理員對論壇進行一些基本的維護,包括對帖子的刪除、置頂、設(shè)為精華帖,對用戶的刪除、授權(quán),對版塊的權(quán)限管理,對用戶組及用戶組的權(quán)限的管理等2。統(tǒng)計功能:對論壇的相關(guān)參數(shù)進行統(tǒng)計。2.2。1用戶中心當用戶進入網(wǎng)站首頁時,會有一個登錄窗口,已經(jīng)注冊的會員用戶可以在這個窗口中登錄.沒有登錄的用戶只能查看主題,不能發(fā)表主題或評論.登錄之后,用戶就可以發(fā)表主題或回復(fù);查看或修改自己個人信息,包括修改用戶頭像,可以選擇自己喜歡的圖片作為自己的頭像;可以給好友發(fā)送短信息,查看或刪除自己收到的信息;用戶可以在好友與黑名單里設(shè)置自己的關(guān)系網(wǎng),讓用戶與自己的好友交流更加方便,也可在讓用戶不接收不愿意見到的人的信息。沒
17、有注冊的用戶可以在登錄窗口中點擊注冊超鏈接進入新用戶注冊頁面,輸入用戶名、密碼、密碼提示問題、提示問題答案及安全郵箱,即可注冊成為網(wǎng)站的會員.密碼提示問題是為找密碼設(shè)置的,當用戶忘記密碼或密碼丟失后可以通過輸入提示問題答案來找回密碼,如果用戶回答正確,系統(tǒng)會自動發(fā)送一封郵件到用戶的安全郵箱里,提示用戶修改密碼。2。2。2主題中心系統(tǒng)有版塊,主題和回復(fù),其中版塊是對主題的分類,回復(fù)是在主題下發(fā)表的,是用戶對主題的評論。當用戶進入首頁時會顯示論壇的所有版塊及每個版塊下的主題數(shù),帖子總數(shù),最后發(fā)表主題的用戶、時間。進入版塊之后顯示該版塊下的主題及該主題下的回復(fù)數(shù),點擊數(shù),最后發(fā)表評論的用戶、時間。點
18、擊主題名進入主題頁面,該頁面有主題內(nèi)容,發(fā)表該主題的用戶的用戶名、積分、用戶組、注冊時間,該主題下的回復(fù)及發(fā)表回復(fù)的用戶的個人信息.已登錄用戶可以在版塊下發(fā)表主題,在主題下發(fā)表回復(fù),還可以按關(guān)鍵字對主題或回復(fù)進行搜索,并支持模糊查詢。匿名用戶只能查看主題內(nèi)容,對主題或回復(fù)進行搜索,但不能發(fā)表主題,不能發(fā)表回復(fù)。2。2。3管理員功能管理員作為一個特殊的用戶,除了擁有普通用戶擁有的功能外,還可以修改用戶權(quán)限,管理用戶組,管理版面,設(shè)置版主,控制用戶組權(quán)限。版主作為權(quán)限最少的管理者只能對自己所管理的版面的主題進行刪除、置頂,設(shè)置精華貼,屏蔽用戶的回復(fù),編輯版面說明等。2。2.4統(tǒng)計功能顯示論壇當前注
19、冊總?cè)藬?shù)、當前帖子總數(shù)、論壇點擊總數(shù)、當前在線人數(shù),會員人數(shù)以及游客人數(shù).用戶表現(xiàn)積分排行,調(diào)動用戶積極性.用戶每次上線、發(fā)表主題或回復(fù)都會得到相應(yīng)的積分,并以此來體現(xiàn)用戶的活躍程度。系統(tǒng)會對主題按點擊數(shù)進行排序,對版面按主題數(shù)進行排序,帖子點擊統(tǒng)計,方便了解熱點話題。本日版面排行榜,本日作者排行榜。2.3開發(fā)工具及相關(guān)技術(shù)簡介本系統(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)工具簡介(1) JDK 1。5.0JDK是Sun
20、公司Java應(yīng)用程序和組件的開發(fā)環(huán)境,是編譯和測試工具,也是提供java程序的Java虛擬機平臺,是調(diào)試和運行JSP所不可缺少的工具。本系統(tǒng)采用JDK1.5。0版本3.(2) Tomcat 5。0Tomcat是開源的servlet和JSP容器(Sun官方推薦容器),它是Jakarta項目中一個重要的組成,由Apache、Sun和其他一些公司及個人開發(fā).Tomcat內(nèi)部實現(xiàn)了Servlet和JSP引擎,而且擴展了一些應(yīng)用服務(wù)器的功能,例如JNDI、數(shù)據(jù)庫連接池、用戶事務(wù)處理等.目Tomcat被廣泛地應(yīng)用于中小規(guī)模的Java web應(yīng)用中4。(3) Eclipse/MyEclipse 5。5Ecl
21、ipse 是基于Java 的開放源代碼的可擴展開發(fā)平臺,Eclipse平臺提供軟件開發(fā)工具的集成服務(wù),所有開發(fā)工具(包括JDE和PDE)都是用插件的形式提供的.這種設(shè)計使得Eclipse具有開放式可擴充的結(jié)構(gòu)5。MyEclipse是在Eclipse集成開發(fā)環(huán)境中提供Web應(yīng)用程序開發(fā)的插件,在目前軟件開發(fā)的Java領(lǐng)域中,MyEclipse是一個使用非常廣泛的工具。MyEclipse是Eclipse軟件的一個插件,Eclipse軟件是免費的,但MyEclipse不是一個完全免費的產(chǎn)品,需要購買。(4) MySQL 5。0MySQL數(shù)據(jù)庫是一個較小型的數(shù)據(jù)庫系統(tǒng),同時是一個多用戶、多線程強壯的S
22、QL數(shù)據(jù)庫服務(wù)器,并提供免費的安裝軟件6。由于它對平臺環(huán)境要求不高,安裝方便,適合中小型系統(tǒng)的開發(fā)。2.3。2相關(guān)技術(shù)概述(1) Java語言概述Java編程語言是一種通用、并發(fā)、基于類且面向?qū)ο蟮恼Z言。Java編程語言與C和C+相關(guān),但是在組織方式上有差別,Java具有C和C+遺漏的許多優(yōu)點,同時兼有其他語言包括的一些思想。它旨在成為一種生產(chǎn)語言,而不是一種研究語言,并且正是如此7。(2) Servlet技術(shù)概述Servlet技術(shù)主要是為了使用Web上的HTTP協(xié)議而設(shè)計的。Servlet是在Web服務(wù)器上運行的程序,Java Servlet可以用于處理客戶請求或生成動態(tài)Web網(wǎng)頁。Tomc
23、at是支持Java Servlet和JSP的Web服務(wù)器8.(3) JSP技術(shù)概述JSP (Java Server Pages)是由Sun 公司倡導(dǎo),許多公司參與,共同建立人一種動態(tài)網(wǎng)頁技術(shù)標準,JSP技術(shù)是在Servlet技術(shù)基礎(chǔ)上發(fā)展起來的。它正在飛速發(fā)展中,現(xiàn)在已經(jīng)成為Java服務(wù)器編程的重要組成部分。(4) JavaScript技術(shù)概述JavaScript是一種基于對象(Object)和事件驅(qū)動(Event Driver)并具有安全性能的腳本語言,它所能提供的功能非常強大。JavaScript是一種簡潔的面向?qū)ο蟮拿枋稣Z言,是專門用來開發(fā)Internet客戶端和服務(wù)器端的應(yīng)用程序,它可
24、以被輕易的嵌入到HTML文件中,使用JavaScript瀏覽器以回應(yīng)使用者的需求事件而不用通過網(wǎng)絡(luò)來回傳資料,這樣,使用者的資料就可以直接被客戶端應(yīng)用程序所處理,它的出現(xiàn)彌補了HTML語言的缺陷,它是Java與HTML折衷的選擇9(5) XML技術(shù)概述從1998年2月W3C正式推出XML(eXtensible Markup Language的縮寫,意為可擴展的標記語言)后短短的三年間,XML以驚人的速度在廣大的設(shè)計人員中傳播開來。隨著Internet的飛速發(fā)展,HTML開始對更多的網(wǎng)絡(luò)設(shè)計要求顯露出疲態(tài)。XML也就是在這種大環(huán)境下孕育而生的10.(6) Struts 概述Struts使用Mod
25、el2體系結(jié)構(gòu)。 ActionServlet 負責控制流程。另外一個Struts類,Action,負責存取業(yè)務(wù)邏輯類。當ActionServlet類從窗口中獲得一個請求時,它使用請求的URI(也稱為路徑)來決定是哪一個Action來處理該請求.一個Action可以檢驗輸入的合法性、通過業(yè)務(wù)邏輯層來讀取數(shù)據(jù)庫或者其他數(shù)據(jù)服務(wù)中的信息。要校驗輸入的合法性或者是使用該輸入來修改數(shù)據(jù)庫中的內(nèi)容,Action需要用戶提交給它處理數(shù)據(jù)。為了避免每一個Action都要處理從請求中輸入數(shù)據(jù)的操作,Struts將這些輸入數(shù)據(jù)綁定到JavaBean中.每一個這樣的Bean都是Struts中ActionForm類的
26、子類。ActionServlet通過查看請求的路徑就可以決定哪一個ActionForm用來包含輸入數(shù)據(jù)。這些ActionFormod 類都應(yīng)該是org。apache。struts.action.ActionForm的子類。每一個HTTP請求都必須有一個HTTP響應(yīng)。一般而言,Struts自已并不生成響應(yīng),而是將請求轉(zhuǎn)發(fā)到其他的資源上去例如JSP頁面.Struts提供一個名為ActionForward的類來將邏輯名保存到每個面的路徑。當業(yè)務(wù)邏輯部分已經(jīng)執(zhí)行完成后,Action會選擇一個ActionForward,并且將它返回給每個總控servlet??偪豐ervlet 會使用在該Action F
27、orward中存儲的物理路徑來調(diào)用對應(yīng)的頁面來完成HTTP響應(yīng)部分.Struts將所有這些方面的細節(jié)信息都定義在ActionMapping對象中。每一個ActionMapping對象都對應(yīng)于一個指定的路徑。當該路徑被請求時,總控servlet會獲取對應(yīng)的ActionMapp world wide webing對象.該對象會告訴總控servlet該使用哪些Action,ActionForm和ActionForward對象.全部有關(guān) Action,ActionForm,ActionForward以及ActionMapping的信息和其他的配置信息都在Strutsconfig。xml文件中聲明。Ac
28、tionServlet在啟動的時候會讀取該文件,并且創(chuàng)建包含所有這些配置對象的數(shù)據(jù)庫.在運行時刻,Struts會使用這些對象,而不是文件本身11。(1) Spring 概述Spring 是一個開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的.框架的主要優(yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個組件,同時為J2EE應(yīng)用程序開發(fā)提供集成的框架。Spring提供了一種輕量級的解決方案,用于建立“快裝式企業(yè)應(yīng)用”。在此基礎(chǔ)上,Spring還提供了包括聲明式事務(wù)管理,RMI或Web Service 遠程訪問業(yè)務(wù)邏輯,以及可以多種方法進行的持久化數(shù)據(jù)庫的解決方案。另外,Spring 還有一
29、個全功能的MVC柜架,并能透明地把AOP集成到用戶的軟件中去12。2.4系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)流圖即DFD(Data Flow Diagram)圖.是用于分析系統(tǒng)數(shù)據(jù)流程的圖形,意在讓用戶理解系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲等。BBS系統(tǒng)的第一層數(shù)據(jù)流圖如圖2-1所示,描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系13。管理員用戶BBS系統(tǒng)管理用戶管理版塊管理主題管理用戶組登錄發(fā)送短信發(fā)表回復(fù)發(fā)表主題注冊圖2-1 BBS系統(tǒng)的數(shù)據(jù)流圖(第一層)注銷登錄管理用戶組權(quán)限管理版塊權(quán)限增加好友刪除好友增加黑名單刪除黑名單2.5用例圖用例是系統(tǒng)、子系統(tǒng)或類和外部的參與者(actor)交互的動作序列的說明,包括
30、可選的動作序列和會出現(xiàn)異常的動作序列.用例是代表系統(tǒng)中各個項目相關(guān)人員之間就系統(tǒng)的行為所達成的契約。在UML中,用例用一個橢圓表示,用例名往往用動賓結(jié)構(gòu)或主謂結(jié)構(gòu)命名14.參與者是指用戶在系統(tǒng)中的扮演的角色,其圖形化表示是一個小人。BBS系統(tǒng)的用例有用戶注冊、登錄、注銷、瀏覽主題、發(fā)表主題、發(fā)表回復(fù)、查看短信、發(fā)送短信息、刪除短信;管理員管理用戶、管理主題、管理用戶組、版塊權(quán)限、管理用戶組權(quán)限。用例圖如圖2-2所示.注冊登錄注銷瀏覽主題發(fā)表回復(fù)發(fā)表主題發(fā)送短信查看短信刪除短信<<use>>管理用戶管理版塊管理主題管理用戶組管理用戶組權(quán)限<<use>&g
31、t;<<use>>圖2-2 BBS系統(tǒng)的用例圖管理員用戶管理版塊權(quán)限<<use>>增加好友刪除好友增加黑名單刪除黑名單修改個人資料3總體設(shè)計3。1功能分析后臺管理模塊BBS系統(tǒng)功能模塊前臺顯示模塊圖3-1 BBS系統(tǒng)功能模塊圖BBS系統(tǒng)分為前臺和后臺兩個模塊。系統(tǒng)的功能模塊圖如圖3-1所示。前臺模塊的使用對象包括了所有用戶(管理員、用戶、游客),提供的功能包括注冊帳號、用戶登錄、用戶注銷、瀏覽文章、發(fā)表新主題、回復(fù)主題、增加好友、刪除好友、增加黑名單、刪除黑名單、查看短信息、發(fā)送短信息、刪除短信息、修改個人信息。如圖32所示。前臺顯示模塊發(fā)表主題
32、發(fā)表回復(fù)刪除短信息用戶注銷瀏覽主題用戶登錄用戶注冊增加黑名單修改個人信息增加好友刪除好友刪除黑名單發(fā)送短信息查看短信息圖3-2 BBS系統(tǒng)前臺功能模塊圖后臺模塊的使用對象為管理人員(版主、管理員、超級管理員),提供的功能包括管理用戶、管理版塊、管理主題、管理用戶組、功能權(quán)限管理、版塊權(quán)限管理。后臺功能模塊如圖33所示。后臺管理模塊版塊管理用戶管理主題管理用戶組管理功能權(quán)限管理版塊權(quán)限管理查詢版塊新增版塊刪除版塊修改用戶刪除用戶修改主題屬性刪除主題增加用戶組查詢用戶組刪除用戶組新增版塊權(quán)限查詢功能權(quán)限刪除功能權(quán)限新增功能權(quán)限查詢版塊權(quán)限刪除版塊權(quán)限圖3-3 BBS后臺功能模塊圖3。2數(shù)據(jù)庫設(shè)計根
33、據(jù)前面的需求描述,本系統(tǒng)中可以抽象出來的數(shù)據(jù)模型有:用戶(user)、模塊(module)、主題(topic)、回復(fù)(retopic)、好友關(guān)系(friends)、用戶短信息(note)、用戶組(groud)、功能(function)、功能權(quán)限(group_has_function)、模塊權(quán)限(modright)模塊版主(user_has_module)、積分(integral)。根據(jù)需求分析,可設(shè)計如下表:(1) 用戶信息表:用戶ID、用戶名、密碼、Email地址、密碼提示問題、提示問題答案、是否公開注冊信息、真實姓名、性別、出生年月日、聯(lián)系電話、詳細地址、郵政編碼、用戶簽名檔、用戶頭像、Q
34、Q、注冊時間、用戶組、用戶積分、用戶登錄次數(shù)、最后登錄時間、發(fā)表的帖子數(shù)、被推薦的精華帖數(shù)、用戶最后登錄的IP(2) 論壇模塊表:模塊ID、模塊名、上級模塊ID、模塊介紹、模塊一天的總主題數(shù)、模塊主題總數(shù)、模塊回復(fù)總數(shù)、模塊狀態(tài)(1普通模塊、2會員論壇、3嘉賓論壇、4加密論壇、5關(guān)閉論壇)、是否審核(false否、true是)、加密論壇的密碼、模塊創(chuàng)建時間論壇主題表:主題ID、主題名、主題內(nèi)容、主題發(fā)布者、所屬模塊、主題狀(3) 表示在審核中、1表示審核通過、2表示草稿)、訪問限制積分、點擊數(shù)、是否為精華帖子、是否置頂、被創(chuàng)建時間(4) 主題回復(fù)表:回復(fù)帖子ID、回復(fù)主題ID、回復(fù)標題、回復(fù)內(nèi)
35、容、回復(fù)者ID、回復(fù)時間、是否屏蔽(false否、true是)(5) 關(guān)系表:好友ID、用戶名、申請的好友用戶名,好友標記(0黑名單、1好友、2未確認好友)(6) 用戶短信息表:短信ID、發(fā)信者、收信者、短信標題、短信內(nèi)容、發(fā)信時間、發(fā)信標記(0已刪除1已發(fā)送2草稿)、收信標記(0已刪除、1已讀,2未讀)(7) 用戶組表:組ID、用戶組名、組描述(8) 功能表:功能ID、功能名、功能信息(9) 功能權(quán)限表:用戶組ID、功能ID(10) 模塊權(quán)限表:權(quán)限ID、用戶組名(外鍵)、訪問模塊ID,訪問權(quán)限(11) 模塊版主表:用戶ID、模塊ID(12) 積分表:積分ID、積分、等級4詳細設(shè)計與實現(xiàn)4.
36、1數(shù)據(jù)庫連接系統(tǒng)采用JSPStruts+Spring架構(gòu),數(shù)據(jù)庫采用MySQL,使用Spring的配置文件beans。xml連接數(shù)據(jù)庫,其連接數(shù)據(jù)庫的配置信息如下:<bean id=”dataSource” destroy-method=”close” class= ”mons.dbcp。BasicDataSource"property name="driverClassName" value=”com.mysql.jdbc。Driver”/>property name=”url” value="jdbc:mysq
37、l:/:3306/bbs?autoReconnect=true”/property name=”username” value="root"/><property name=”password" value="123"/</bean>使用注入Dao的形式進行數(shù)據(jù)庫操作,在Dao中實現(xiàn)對數(shù)據(jù)表的增加、刪除、查詢、修改操作,Dao不進行其他的邏輯操作.前臺JSP頁面產(chǎn)生的請求交由對應(yīng)的Action進行邏輯操作,當其要對數(shù)據(jù)庫進行操作時,通過WebApplicationContext 對象獲取Dao,將要操作
38、的對象的相關(guān)參數(shù)傳給Dao即可.這就是對接口編程,使各個模塊之間低耦合,有利于程序的可擴展性。4.2前臺顯示模塊前臺顯示模塊包括用戶的一些功能,具體的可分為用戶注冊、用戶登錄、用戶注銷、修改個人信息、增加好友、刪除好友、增加黑名單、刪除黑名單、查看短信息、發(fā)送短信息、刪除短信息、查看版面、查看主題、查看回復(fù)、發(fā)表主題和發(fā)表回復(fù)等功能。由于主題是在版塊下存在的,所以在版塊下的任何地方都可以發(fā)表主題,而回復(fù)只能是針對主題進行回復(fù),所以必須在主題下才能發(fā)表回復(fù),也就是在主題頁面下才能點擊發(fā)表回復(fù)?,F(xiàn)將部分功能說明如下:(1) 用戶注冊:新用戶在login.jsp頁面中輸入用戶名,密碼,密碼提示問題、
39、提示問題答案、安全郵箱,點擊提交按鈕,數(shù)據(jù)提交到LoginAction.java中進行處理,在LoginAction。java中,如果用戶名已經(jīng)有人使用則返回注冊頁面,否則提示用戶注冊成功,并跳轉(zhuǎn)到登錄頁面entry。jsp。(2) 用戶登錄:用戶在有帳號的前提下,可以在登錄頁面entry.jsp或主頁bbs.jsp中輸入用戶名和密碼點擊登錄,系統(tǒng)將用戶名和密碼提交到LoginAction。java中的entry()方法,將用戶提交的用戶名和密碼再轉(zhuǎn)交給后臺的Dao進行查詢,如果有這樣的一條記錄存在則登錄成功,將用戶的個人信息保存在瀏覽器端的Session中,否則返回登錄頁面,并提示用戶名或密
40、碼錯誤。(3) 用戶注銷:已登錄用戶在退出網(wǎng)站時注銷登錄狀態(tài),系統(tǒng)將請求交給LoginAction.java的loginOut()方法處理,在loginOut()方法中修改用戶最后離線時間,將修改保存到數(shù)據(jù)庫中,并將瀏覽器端的Session的user屬性移除,系統(tǒng)返回主頁。用戶同時失去登錄用戶的權(quán)限,以游客身份訪問網(wǎng)站,只能瀏覽主題,不能發(fā)表主題,也不能發(fā)表回復(fù)。(4) 查看版面:首頁顯示BBS的版塊及主要信息,點擊版塊名進入版塊下會顯示主題列表,點擊主題名可以進入主題頁面.首頁index.jsp采用<jsp:forward page="/bbs。do"/ 方法將請求
41、交給BbsAction。java處理,在BbsAction中從數(shù)據(jù)庫取出所有版塊的信息及每個版塊下的最新主題信息,并將取出的數(shù)據(jù)保存在JSP的Session對象中,數(shù)據(jù)取出后交給bbs.jsp頁面,在bbs.jsp頁面中將取出的結(jié)果顯示出來。(5) 查看主題:當用戶在主頁上點擊版塊名時,會產(chǎn)生一個動作,向服務(wù)器產(chǎn)生一個請求,服務(wù)器將程序交給TopicAction。java處理,在TopicAction。java中取出模塊下的所有主題及最后發(fā)表回復(fù)的作者的信息并將其存入request對象中,處理完之后返回到版塊下的主題顯示頁面。(6) 查看回復(fù):用戶在主題顯示頁面點擊主題名時會產(chǎn)生查找主題信息動
42、作,系統(tǒng)將這個動作交給ReTopicAction.java來處理,在ReTopicAction。java中請求交給后臺DAO,從DAO中取出數(shù)據(jù)表中的項,要取的內(nèi)容有該主題所在的版塊信息、該主題信息、該主題下的回復(fù)信息,該主題和其回復(fù)的作者的部分信息.4.3后臺管理模塊管理員又可分為版主、管理員、超級管理員。版主的權(quán)限最小,只能維護自己版面的主題,包括刪除主題、將主題置頂、設(shè)置精華帖等.管理員的功能比版主的功能要多,管理員可以刪除用戶,修改用戶權(quán)限、增加用戶組、刪除用戶組、增加版塊、刪除版塊、查詢版塊、刪除主題、修改主題屬性、新增功能權(quán)限、查詢功能權(quán)限、刪除功能權(quán)限、新增版塊權(quán)限、查詢版塊權(quán)限
43、、刪除版塊權(quán)限.管理員不能刪除其他的管理員,管理員只有超級管理員才能夠設(shè)置和刪除.超級管理員具有網(wǎng)站的一切功能?,F(xiàn)將部分功能介紹如下:管理員作為特殊的用戶,通過bbs。jsp或entry.jsp頁面進行登錄到主頁,在主頁上如果是管理員則顯示后臺管理超鏈接,管理員點擊后臺管理,進入管理界面manage。jsp,在管理頁面有版塊管理、主題管理、用戶管理、用戶組管理、用戶組權(quán)限管理、版塊權(quán)限管理.用戶點擊版塊管理,系統(tǒng)將請求提交給ModuleAction.java的manage方法,在manage方法中取出所有的版塊,跳轉(zhuǎn)到manageModule.jsp,在這個頁面將所有的版塊都顯示出來,管理員可
44、以在這個頁面直接點擊刪除鏈接,將所在版塊ID提交到后臺,在ModuleAction。java的delete方法中將版塊及該版塊下的主題刪除,同時也將該版塊下的主題的回復(fù)全部刪除。ModuleAction.java 的delete方法的關(guān)鍵代碼如下:public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) / TODO Autogenerated method stubWebApplicationConte
45、xt ctx = WebApplicationContextUtils。getWebApplicationContext(this。servlet。getServletContext());ModuleDao moduleDao = (ModuleDao) ctx。getBean("moduleDao”);TopicDao topicDao = (TopicDao) ctx.getBean(”topicDao”);ReTopicDao reTopicDao = (ReTopicDao) ctx.getBean("reTopicDao");String module
46、Id = request。getParameter("id”);String check = request.getParameterValues(”id");if (moduleId != null) List<Topic> listTopic = topicDao。getTopicByModId(Integer。parseInt(moduleId);if (listTopic != null !listTopic.isEmpty() for (Topic topic : listTopic) reTopicDao.deleteReTopicsByTopicI
47、d(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.setAttribute(”return
48、Message”, "刪除模塊失??!"); 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))) ListTopic listTopic = topicDao.getTopicByModId(Integer.parseInt(checki);if (listTopic != null !l
49、istTopic。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(”de
50、leteModuleSuccess");增加版塊頁面是insertModule。jsp,用戶輸入版塊類型和版塊信息,點擊提交,系統(tǒng)將數(shù)據(jù)交給ModuleAction.java 的insert方法處理,在insert方法中,將版塊信息再轉(zhuǎn)交給后臺的ModuleDao,在ModuleDao中將版塊信息插入到數(shù)據(jù)庫中。如果數(shù)據(jù)庫中沒有這個版塊的類型且插入成功,則返回1,如果有這個類型的版塊則返回-1,其他情況返回0,根據(jù)返回值不同,相應(yīng)的顯示不同的提示信息。處理完成后,頁面跳轉(zhuǎn)到版塊管理頁面,顯示系統(tǒng)中的所有版塊信息.ModuleAction.java的insert方法的代碼如下:publ
51、ic ActionForward insert(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) WebApplicationContext ctx = WebApplicationContextUtils。getWebApplicationContext(this。servlet.getServletContext();ModuleDao moduleDao = (ModuleDao) ctx.getBean(”moduleDao”);String
52、modType = request。getParameter(”modType");String 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 = modul
53、eDao。insertModule(module);if (returnValue = 1) request。setAttribute(”returnInfo", ”新增版塊成功!"); else if (returnValue = 1) request。setAttribute(”returnInfo", ”新增的版塊已經(jīng)存在!”); else request.setAttribute(”returnInfo", "新增失敗!");List<Module listModule = moduleDao.getModule();r
54、equest。setAttribute(”listModule", listModule);return mapping.findForward(”manageModule");主題管理manageTopic.jsp中有刪除主題,置頂,精華帖三種功能。點擊刪除主題,系統(tǒng)將主題id傳給TopicAction。java的delete方法,在delete方法中查詢?nèi)绻撝黝}下有回復(fù)opicDao的deleteTopic(int id)方法將該主題刪除.TopicAction.java的delete方法如下:public ActionForward delete(ActionMap
55、ping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) / TODO Autogenerated method stubWebApplicationContext ctx = WebApplicationContextUtils。getWebApplicationContext(this。servlet。getServletContext();TopicDao topicDao = (TopicDao) ctx.getBean("topicDao");Re
56、TopicDao 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”, "刪除主題失敗!”);return mapping。findForward("deleteTopicSuccess"); if(topicDao。deleteTopic(topicId)request.setAttribute("returnInfo", ”刪除主題成功!");elserequest.setAttribute("returnInfo", ”刪除主題失??!");return mapping。findForward(”dele
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)村自建房承建與農(nóng)村新能源利用合作合同
- 二零二五年度形婚雙方婚姻關(guān)系協(xié)議及婚后財產(chǎn)分割與子女撫養(yǎng)安排3篇
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)場地轉(zhuǎn)租合同3篇
- 2025年度高新技術(shù)研發(fā)貸款擔保協(xié)議3篇
- 2025年度消防安全設(shè)施設(shè)備安裝與驗收協(xié)議3篇
- 2025年度內(nèi)墻粉刷施工與室內(nèi)空氣凈化技術(shù)合作合同3篇
- 二零二五年度生豬養(yǎng)殖與農(nóng)產(chǎn)品市場銷售合作合同范本3篇
- 2025年度公司對個人創(chuàng)業(yè)團隊對賭合同3篇
- 二零二五年度企業(yè)車輛共享平臺使用服務(wù)合同3篇
- 2025年度公司與公司簽訂的體育產(chǎn)業(yè)合作發(fā)展協(xié)議2篇
- 肌骨超聲簡介
- 神經(jīng)外科臨床實習教學計劃
- 基本光刻工藝流程
- 胸腔閉式引流護理-2023年中華護理學會團體標準
- 高中體育足球教學教案 全冊
- 藝術(shù)概論PPT完整全套教學課件
- 社團啦啦操訓(xùn)練計劃
- 2023-2024學年四川省雅安市小學語文二年級期末評估試題詳細參考答案解析
- UPS維護保養(yǎng)檢查表
- 英語人教新目標七年級上冊微課PPT
- 2023年安全生產(chǎn)先進集體申報表
評論
0/150
提交評論