軟件技術(shù)畢業(yè)論文基于JSP的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
軟件技術(shù)畢業(yè)論文基于JSP的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
軟件技術(shù)畢業(yè)論文基于JSP的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
軟件技術(shù)畢業(yè)論文基于JSP的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
軟件技術(shù)畢業(yè)論文基于JSP的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、天津工業(yè)大學(xué)天津工業(yè)大學(xué) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 基于基于 jspjsp 的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 姓姓 名名 xxx 學(xué)學(xué) 院院 計(jì)算機(jī)科學(xué)與軟件計(jì)算機(jī)科學(xué)與軟件 專專 業(yè)業(yè) 軟件技術(shù)軟件技術(shù) 指導(dǎo)教師指導(dǎo)教師 xx 職職 稱稱 講師講師 2011 年年 05 月月 07 日日 目目 錄錄 前前 言言.i i 第第 1 1 章章 概概 述述.1 1 1.1 課題研究的背景和來源.1 1.2 課題研究成果應(yīng)用的實(shí)際意義.1 1.3 本文的內(nèi)容及主要工作.2 第第 2 2 章章 相關(guān)技術(shù)簡介相關(guān)技術(shù)簡介.3 3 2.1 b/s 架構(gòu)的介紹 .3 2.2 js

2、p 技術(shù)的介紹 .3 2.3 jsp 技術(shù)的優(yōu)勢與劣勢 .4 2.4 struts 框架 .4 2.5 本章小結(jié).7 第第 3 3 章章 需求分析需求分析.8 8 3.1 系統(tǒng)實(shí)現(xiàn)目標(biāo).8 3.2 系統(tǒng)運(yùn)行環(huán)境.8 3.3 系統(tǒng)的開發(fā)環(huán)境.9 3.4 功能性需求描述.9 3.5 文件夾組織結(jié)構(gòu).13 3.6 非功能性需求描述.13 3.7 本章小結(jié).14 第第 4 4 章章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì).1515 4.1 系統(tǒng)設(shè)計(jì)原則.15 4.2 數(shù)據(jù)庫設(shè)計(jì).15 4.3 用戶發(fā)布主題模塊設(shè)計(jì).19 4.4 本章小結(jié).20 第第 5 5 章章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn).2222 5.1 發(fā)布主題實(shí)現(xiàn)過程.22

3、5.2 本章小結(jié).29 第第 6 6 章章 系統(tǒng)測試系統(tǒng)測試.3030 6.1 測試的概念.30 6.2 本系統(tǒng)的測試方法.30 6.3 本章小結(jié).31 第第 7 7 章章 總總 結(jié)結(jié).3232 7.1 工作總結(jié).32 7.2 系統(tǒng)的完善和心得.32 參考文獻(xiàn)參考文獻(xiàn).3333 致致 謝謝.3535 前前 言言 隨著網(wǎng)絡(luò)時(shí)代的來臨和沖擊,全球經(jīng)濟(jì)一體化的趨勢加強(qiáng),各國都面臨著 前所未有的機(jī)遇和挑戰(zhàn)。論壇作為一種先進(jìn)的交流方式和管理技術(shù),被廣泛認(rèn) 為是企業(yè)和網(wǎng)站在運(yùn)作中一種新型和快捷的交流形式,提高了用戶對企業(yè)和網(wǎng) 站的認(rèn)知,方便了用戶回饋意見,在企業(yè)的競爭和發(fā)展中發(fā)揮著重要作用。論 壇作為網(wǎng)絡(luò)

4、時(shí)代的代表性標(biāo)志之一,越來越多的被人們喜歡上了這種新的研究 問題的形式。隨著論壇的熱度逐漸升高,網(wǎng)絡(luò)論壇進(jìn)入戰(zhàn)國時(shí)代,大大小小的 網(wǎng)絡(luò)論壇生長著消亡著,而隨著網(wǎng)絡(luò)的迅猛發(fā)展,網(wǎng)民們也逐漸分野細(xì)化,分 類細(xì)化的網(wǎng)絡(luò)社區(qū)呼之欲出。在對如今如此激烈的各種論壇中,結(jié)合不同的的 要求和業(yè)務(wù)需要,設(shè)計(jì)了一個(gè)適合于各種企業(yè)需要的,具有較強(qiáng)擴(kuò)展性的論壇 系統(tǒng)。 系統(tǒng)的主要功能是建立一個(gè)可以討論各種問題的專區(qū),可以讓用戶和游客 發(fā)表自己的意見和建議,通過這樣不斷的完善企業(yè)或者網(wǎng)站的建設(shè),同時(shí)也給 用戶提供了一個(gè)交流的平臺。本論壇同時(shí)具備管理員管理系統(tǒng),方便專門負(fù)責(zé) 的管理員管理用戶的信息、權(quán)限,發(fā)表的主題等。系

5、統(tǒng)采用 b/s 架構(gòu),易于論 壇擁有者要求的不同進(jìn)行擴(kuò)展。論壇的用戶可以到自己喜歡的論壇欄目下進(jìn)行 討論,極大的方便了企業(yè)公司或者其他網(wǎng)站等同用戶間的聯(lián)系,更好的了解用 戶的想法。同時(shí)對于企業(yè)或網(wǎng)站的宣傳起到了極大的促進(jìn)作用。 目前活躍的網(wǎng)絡(luò)論壇有強(qiáng)國論壇、中青論壇、球迷一家等。強(qiáng)國論壇是人 民網(wǎng)開設(shè)的論壇,目的是為那些愛國無門又有一腔熱血堵在心頭的愛國志士們 設(shè)立的。中青論壇是中青在線的論壇,其中的青年話題是人氣最旺的論壇,由 中青報(bào)編輯李方主持,以為文學(xué)女青年排憂解難和抒發(fā)小資情調(diào)為宗旨。球迷 一家和前面提到的天涯社區(qū)都屬于海南在線,主要收容當(dāng)年從新浪體育沙龍?zhí)?亡的散兵游勇。 還有一些人

6、氣未必很高但聲望不低的專業(yè)類論壇。it方面有新浪it業(yè)界論 壇和donewsit寫作社區(qū),攝影類有第三只眼和江湖色論壇,文學(xué)類有橄欖樹 和詩生活等。這些論壇有個(gè)共同的特點(diǎn):在喧鬧的網(wǎng)絡(luò)背景下,慘淡經(jīng)營,低 調(diào)運(yùn)作。而混跡于其中的網(wǎng)民圖的是,有朝一日,能脫穎而出,在業(yè)界找到自 己的一席之地,所以論壇系統(tǒng)對于企業(yè)和用戶的作用都是巨大的??傊?,隨著 論壇技術(shù)的發(fā)展,論壇領(lǐng)域的不斷擴(kuò)大,越來越多的網(wǎng)站如雨后春筍一樣出現(xiàn) 在網(wǎng)絡(luò)上,這些論壇不僅能提供給用戶一個(gè)交流的平臺,更為企業(yè)和一些知名 網(wǎng)站提高了影響力和知名度。在這個(gè)信息化的時(shí)代中,論壇逐漸成為了一種引 領(lǐng)企業(yè)進(jìn)步,甚至是整個(gè)社會(huì)進(jìn)步的標(biāo)志性文化

7、第 1 章 概 述 1.1 課題研究的背景和來源 bbs 的英文全稱是 bulletin board system,翻譯為中文就是“電子公告板” 。bbs 最早是用來公布股市價(jià)格等類信息的,當(dāng)時(shí) bbs 連文件傳輸?shù)墓δ芏紱] 有,而且只能在蘋果計(jì)算機(jī)上運(yùn)行。早期的 bbs 與一般街頭和校園內(nèi)的公告板 性質(zhì)相同,只不過是通過電腦來傳播或獲得消息而已。一直到個(gè)人計(jì)算機(jī)開始 普及之后,有些人嘗試將蘋果計(jì)算機(jī)上的 bbs 轉(zhuǎn)移到個(gè)人計(jì)算機(jī)上,bbs 才開 始漸漸普及開來。近些年來,由于愛好者們的努力,bbs 的功能得到了很大的 擴(kuò)充。目前,通過 bbs 系統(tǒng)可隨時(shí)取得國際最新的軟件及信息,也可以通過

8、bbs 系統(tǒng)來和別人討論計(jì)算機(jī)軟件、硬件、internet、多媒體、程序設(shè)計(jì)以及 醫(yī)學(xué)等等各種有趣的話題,更可以利用 bbs 系統(tǒng)來刊登一些“征友”、“廉價(jià) 轉(zhuǎn)讓”及“公司產(chǎn)品”等啟事,而且這個(gè)園地就在你我的身旁。只要您擁有 1 臺計(jì)算機(jī)、1 只調(diào)制解調(diào)器和 1 條電話線,就能夠進(jìn)入這個(gè)“超時(shí)代”的領(lǐng)域, 進(jìn)而去享用它無比的威力! 從構(gòu)建的方式上分,bbs 可以分為 pc bbs 和 internet bbs。pc bbs 是利 用現(xiàn)有的電話網(wǎng)組成的 bbs 系統(tǒng),由于構(gòu)建費(fèi)用較少,所以上面所說的 bbs 一 般都是基于這種方式構(gòu)建的。當(dāng)業(yè)余 bbs 站的發(fā)展如火如荼的時(shí)候,隨著 chinan

9、et 的全面開通,越來越多的人用上了 internet,并從中體會(huì)到了使用它 的方便與樂趣。建立在 internet 基礎(chǔ)上的 bbs,也就是 internet bbs,已經(jīng)開 始發(fā)展。但是,由于目前構(gòu)建 internet bbs 的費(fèi)用較高,所以還沒有形成較大 的規(guī)模。相信隨著 internet 使用費(fèi)用的下降,這種類型的 bbs 將會(huì)越來越多。 bbs 的發(fā)展過程中,也出現(xiàn)了一些問題。由于國內(nèi)使用的 bbs 架站軟件, 都是從國外引進(jìn)的,因此沒有必要的中文說明。雖然一些熱心的站長翻譯了一 些資料,但是僅靠這些是遠(yuǎn)遠(yuǎn)不夠的。另外,有些站臺的設(shè)立是相互抄襲,所 以在結(jié)構(gòu)上難免有雷同之處。 19

10、99 年是中國網(wǎng)絡(luò)的發(fā)展年。但是,我們應(yīng)該清醒地認(rèn)識到,目前一些 bbs 站并沒有走上“簡單、易用”這一層次。包括一些廠商架設(shè)的 bbs 站,實(shí) 用性還需要加強(qiáng)。今后,國內(nèi)的 bbs 站將向著個(gè)性化和專業(yè)化的方向發(fā)展。 綜上所述,一套好的 bbs 站臺對于一個(gè)企業(yè)或者網(wǎng)站是十分重要,它與整 個(gè)企業(yè)或者網(wǎng)站的發(fā)展息息相關(guān),所以本人制作了一個(gè)擴(kuò)展性極強(qiáng),操作簡便 的 bbs 論壇站臺。 1.2 課題研究成果應(yīng)用的實(shí)際意義 本文研究的主要目的是實(shí)現(xiàn)一個(gè)bbs論壇,能使用戶發(fā)表自己的想法,同時(shí) 管理員可以管理論壇的情況,并在此基礎(chǔ)上實(shí)現(xiàn)企業(yè)與用戶之間溝通的功能。 由于各個(gè)企業(yè)和網(wǎng)站有各自的項(xiàng)目和產(chǎn)品的

11、不同,各式各樣的的論壇不斷 的如雨后春筍滋生出來。平時(shí)對于企業(yè)的宣傳開發(fā)的過程中,需要對不同的企 業(yè)實(shí)現(xiàn)不同的設(shè)計(jì)。而在論壇系統(tǒng)開發(fā)的時(shí)候,只需要把該企業(yè)的需要的模塊 添加到論壇設(shè)置好的模塊中即可。這種形式的論壇開發(fā)方式偏重于應(yīng)用和擴(kuò)展 性,極大的方便了企業(yè)的管理和規(guī)劃。普通的廣告形式如果需求有了變化,往 往要大面積地修改代碼,甚至是重新開發(fā)。這樣就浪費(fèi)了大量的人力物力。要 達(dá)到降低開發(fā)成本的目的,最直接的方法就是復(fù)用以前的系統(tǒng)。論壇系統(tǒng)只需 要管理員不斷的對已經(jīng)形成好的模塊形式進(jìn)行更新就可以達(dá)到需要的目的,這 就是論壇系統(tǒng)相對于其他的形式的網(wǎng)站的優(yōu)越性。 本課題研究的系統(tǒng),就是要通過 web

12、 服務(wù)器在企業(yè)的不同網(wǎng)站間架設(shè)屬于 本企業(yè)的論壇。為企業(yè)與用戶間搭建起一個(gè)橋梁,并在此基礎(chǔ)上添加注冊用戶, 管理用戶等功能,實(shí)現(xiàn)企業(yè)中的技術(shù)討論,社區(qū)建設(shè),更好的為企業(yè)服務(wù)。 1.3 本文的內(nèi)容及主要工作 本文在分析介紹了 b/s 結(jié)構(gòu)下,struts 框架和 jsp 的基礎(chǔ)上,基于論壇系 統(tǒng)的需求特點(diǎn),介紹了 jsp 模式的優(yōu)點(diǎn),并且實(shí)現(xiàn)了論壇系統(tǒng)的基本功能。 各章的內(nèi)容組織如下: 第 1 章介紹了課題研究的背景及實(shí)際的應(yīng)用意義; 第 2 章介紹了 b/s 結(jié)構(gòu),jsp 技術(shù)優(yōu)越性以及 struts 框架技術(shù); 第 3 章分析了系統(tǒng)的開發(fā)環(huán)境,利用用例建模分析系統(tǒng)的功能需求,并且 根據(jù)實(shí)際情

13、況補(bǔ)充了部分需求,提出了非功能性需求,并描述了系統(tǒng)術(shù)語表; 第 4 章對系統(tǒng)進(jìn)行總體設(shè)計(jì),并對服務(wù)層、web 服務(wù)層、數(shù)據(jù)訪問層、消 息處理部分等進(jìn)行詳細(xì)設(shè)計(jì),對系統(tǒng)中用戶注冊、用戶登陸、權(quán)限控制、發(fā)表 言論等功能進(jìn)行了詳細(xì)設(shè)計(jì),對介紹了系統(tǒng)中數(shù)據(jù)庫表; 第 5 章主要介紹了javascript語言的面向?qū)ο蠛褪录?qū)動(dòng)的實(shí)現(xiàn),展示了 web客戶端根據(jù)相關(guān)協(xié)議與服務(wù)器交互的流程,并介紹了客戶端框架的實(shí)現(xiàn)以及 定時(shí)更新機(jī)制的實(shí)現(xiàn)。最后是服務(wù)器端的具體實(shí)現(xiàn),展示了安全控制機(jī)制下用 戶訪問服務(wù)器的流程,重點(diǎn)介紹了用戶注冊、用戶登陸、發(fā)表貼子、管理員與 用戶之間進(jìn)行操作等的處理流程; 第 6 章測試部分

14、主要講解測試的概念以及本論文所需要的測試 第 7 章結(jié)論部分是對整個(gè)論文工作的總結(jié)以及下一步工作的展望,指出我 們工作中有待改進(jìn)的地方,同時(shí)指明了下一步的研究方向。 第 2 章 相關(guān)技術(shù)簡介 2.1 b/s 架構(gòu)的介紹 b/s 結(jié)構(gòu):(browser/server,瀏覽器/服務(wù)器模式):是 web 興起后的 一種網(wǎng)絡(luò)結(jié)構(gòu)模式,web 瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了 客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維 護(hù)和使用。 客戶機(jī)上只要安裝一個(gè)瀏覽器(browser),如 netscape navigator 或 internet explorer,服務(wù)器

15、安裝 oracle、sybase、informix 或 sql server 等數(shù)據(jù)庫。瀏覽器通過 web server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。 b/s 最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。 只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易。 b/s 結(jié)構(gòu)的使用越來越多,特別是由需求推動(dòng)了 ajax 技術(shù)的發(fā)展,它的程 序也能在客戶端電腦上進(jìn)行部分處理,從而大大的減輕了服務(wù)器的負(fù)擔(dān);并增 加了交互性,能進(jìn)行局部實(shí)時(shí)刷新。 2.2 jsp 技術(shù)的介紹 jsp 技術(shù)使用 java 編程語言編寫類 xml 的 tags 和 scriptlets,來封裝產(chǎn) 生

16、動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過 tags 和 scriptlets 訪問存在于服務(wù)端 的資源的應(yīng)用邏輯。jsp 將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基 于組件的設(shè)計(jì),使基于 web 的應(yīng)用程序的開發(fā)變得迅速和容易。web 服務(wù)器在 遇到訪問 jsp 網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同 jsp 文件中的 html 代碼一起返回給客戶。插入的 java 程序段可以操作數(shù)據(jù)庫、 重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。 jsp 與 java servlet 一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就 是一個(gè) html 文本,因此客戶端只要有瀏覽器就能瀏覽。

17、jsp 的 1.0 規(guī)范的最后版本是 1999 年 9 月推出的,12 月又推出了 1.1 規(guī)范。 目前較新的是 jsp1.2 規(guī)范,jsp2.0 規(guī)范的征求意見稿也已出臺。 jsp 頁面由 html 代碼和嵌入其中的 java 代碼所組成。服務(wù)器在頁面被客 戶端請求以后對這些 java 代碼進(jìn)行處理,然后將生成的 html 頁面返回給客戶 端的瀏覽器。java servlet 是 jsp 的技術(shù)基礎(chǔ),而且大型的 web 應(yīng)用程序的開 發(fā)需要 java servlet 和 jsp 配合才能完成。jsp 具備了 java 技術(shù)的簡單易用, 完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)

18、的所有特點(diǎn)。 自 jsp 推出后,眾多大公司都支持 jsp 技術(shù)的服務(wù)器,如 ibm、oracle、bea 公司等,所以 jsp 迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。 jsp 可用一種簡單易懂的等式表示為:html+java=jsp。 2.3 jsp 技術(shù)的優(yōu)勢與劣勢 jsp 頁面由 html 代碼和嵌入其中的 java 代碼所組成。服務(wù)器在頁面被客 戶端請求以后對這些 java 代碼進(jìn)行處理,然后將生成的 html 頁面返回給客戶 端的瀏覽器。java servlet 是 jsp 的技術(shù)基礎(chǔ),而且大型的 web 應(yīng)用程序的開 發(fā)需要 java servlet 和 jsp 配合才能完成。jsp 具

19、備了 java 技術(shù)的簡單易用, 完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn), 這是 jsp 的天然優(yōu)勢。 jsp 的優(yōu)勢: (1)一次編寫,到處運(yùn)行。在這一點(diǎn)上 java 比 php 更出色,除了系統(tǒng)之外, 代碼不用做任何更改。 (2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任 意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比 asp/php 的局限性是顯而易 見的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的 jar 文件就可以運(yùn)行 servlet/jsp, 到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺 application 進(jìn)行事務(wù)處理,消 息處理,一臺服

20、務(wù)器到無數(shù)臺服務(wù)器,java 顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與 asp 很像,java 已經(jīng)有 了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以 順利的運(yùn)行于多種平臺之下。 jsp 的劣勢: (1) 與 asp 一樣,java 的一些優(yōu)勢正是它致命的問題所在。正是由于為了 跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。 (2) java 的運(yùn)行速度是用 class 常駐內(nèi)存來完成的,所以它在一些情況下 所使用的內(nèi)存比起用戶數(shù)量來說確實(shí)是“最低性能價(jià)格比”了。從另一方面, 它還需要硬盤空間來儲存一系列的 java 文件

21、和 class 文件,以及對應(yīng)的版本文 件。 2.4 struts 框架 2.4.1 struts 框架介紹 struts 最早是作為 apache jakarta 項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過 對該項(xiàng)目的研究,改進(jìn)和提高 javaserver pages 、servlet、標(biāo)簽庫以及面向?qū)ο?的技術(shù)水準(zhǔn)。struts 這個(gè)名字來源于在建筑和舊式飛機(jī)中使用的支持金屬架。這 個(gè)框架之所以叫struts,是為了提醒我們記住那些支撐我們房屋,建筑,橋梁, 甚至我們踩高蹺時(shí)候的基礎(chǔ)支撐。這也是一個(gè)解釋 struts 在開發(fā) web 應(yīng)用程序 中所扮演的角色的精彩描述。當(dāng)建立一個(gè)物理建筑時(shí),建筑

22、工程師使用支柱為 建筑的每一層提供支持。同樣,軟件工程師使用 struts 為業(yè)務(wù)應(yīng)用的每一層提 供支持。它的目的是為了幫助我們減少在運(yùn)用 mvc 設(shè)計(jì)模型來開發(fā) web 應(yīng)用 的時(shí)間。我們?nèi)匀恍枰獙W(xué)習(xí)和應(yīng)用該架構(gòu),不過它將可以完成其中一些繁重的 工作。如果想混合使用 servlets 和 jsp 的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用,struts 是一 個(gè)不錯(cuò)的選擇。 struts 框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時(shí)簡化了基于 mvc 的 web 應(yīng)用程序的開發(fā) 本章詳細(xì)討論 struts 架構(gòu)。我們將看到 struts 是如何清晰地區(qū)分控制,事務(wù) 邏輯和外觀,從而簡化了開發(fā)應(yīng)用程序過程的

23、。我們還將介紹 struts 提供的類 如何使得開發(fā)工作更加簡單,這些類包括: (1)控制程序流程的類。 (2)實(shí)現(xiàn)和執(zhí)行程序事務(wù)邏輯的類。 (3)自定義的標(biāo)記庫使得創(chuàng)建和驗(yàn)證 html 表單更加容易。 2.4.2 struts 壓縮包內(nèi)容 文件夾 jakarta-struts-1.0.2 包含兩個(gè)目錄,lib 和 webapps。在 lib 目錄中有 使用 struts 創(chuàng)建應(yīng)用程序是所需的文件: 文件描述 jdbc2_0-stdext.jar 包含 jdbc2.0 optional package api 類。如果我們要使用 struts 提供的數(shù)據(jù)資源,就需要將這個(gè)文件拷貝到 web-i

24、nflib 下 struts.jar 包含 struts 中所有的 java 類。同樣也需要拷貝到 web-inflib 下 *.tld 標(biāo)記庫描述器文件,描述了多個(gè) struts 標(biāo)記庫中的自定義標(biāo)記。同樣 要拷貝到 web-inflib 下 在 webapps 目錄下有如下文件: web 應(yīng)用程序描述 struts-blank.war 一個(gè)簡單的 web 應(yīng)用程序 struts-documentation.war 包含 struts 站點(diǎn)上所有 struts 文檔 struts-example.war struts 很多特性的示范 struts-exercisetaglib.war 主要用

25、于對自定義標(biāo)簽庫進(jìn)行增加而使用的測試頁, 但也可以示范如何使用 struts 標(biāo)記 struts-template.war 包含 struts 模板標(biāo)記的介紹和范例 struts-upload.war 一個(gè)簡單的例子,示范如何使用 struts 框架上傳文件 2.4.3 struts 體系結(jié)構(gòu) 讓我們從 mvc 角度觀察 struts 框架中的組件 框架中三個(gè)部分:模型,視窗和控制器。 模型 在 struts 框架中,模型分為兩個(gè)部分: 系統(tǒng)的內(nèi)部狀態(tài) (1)可以改變狀態(tài)的操作(事務(wù)邏輯) (2)內(nèi)部狀態(tài)通常由一組 actinform javabean 表示。根據(jù)設(shè)計(jì)或應(yīng)用程序復(fù) 雜度的不同,

26、這些 bean 可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時(shí)才獲 得數(shù)據(jù)(從某個(gè)數(shù)據(jù)庫)。 大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁 有狀態(tài)信息的 bean 調(diào)用。比如購物車 bean,它擁有用戶購買商品的信息,可能 還有 checkout()方法用來檢查用戶的信用卡,并向倉庫發(fā)定貨信息。 小型程序中,操作可能會(huì)被內(nèi)嵌在 action 類,它是 struts 框架中控制器角 色的一部分。當(dāng)邏輯簡單時(shí)這個(gè)方法很適合。 建議用戶將事務(wù)邏輯(要做什么)與 action 類所扮演的角色(決定做什么) 分開。 視窗 由 jsp 建立,struts 包含擴(kuò)展自定義標(biāo)簽庫,可以簡化創(chuàng)

27、建完全國際化用戶 界面的過程。 控制器 struts 中,基本的控制器組件是 actionservlet 類中的實(shí)例 servelt,實(shí)際使用 的 servlet 在配置文件中由一組映射(由 actionmapping 類進(jìn)行描述)進(jìn)行定義。 2.4.4 struts 框架中的組件 框架中所使用的組件: actionservlet 控制器 actionclass 包含事務(wù)邏輯 actionform 顯示模塊數(shù)據(jù) actionmapping 幫助控制器將請求映射到操作 actionforward 用來指示操作轉(zhuǎn)移的對象 actionerror 用來存儲和回收錯(cuò)誤 struts 標(biāo)記庫 可以減輕開

28、發(fā)顯示層次的工作 2.5 本章小結(jié) 本章首先對 b/s 結(jié)構(gòu)進(jìn)行了介紹,然后對 jsp 技術(shù)以及 jsp 優(yōu)點(diǎn)和缺點(diǎn)的 概述;同時(shí)介紹了 struts 框架的結(jié)構(gòu)、內(nèi)容、體系等。 由本章的分析可知, struts 是一種非常規(guī)范的構(gòu)建網(wǎng)站論壇框架,有利于 網(wǎng)站系統(tǒng)的開發(fā)和修改,所以本人選用了在 ecplice 平臺下進(jìn)行開發(fā),以支持 struts 強(qiáng)大的架構(gòu)和需要的插件。 第 3 章 需求分析 需求分析是軟件開發(fā)流程中重要的一個(gè)環(huán)節(jié),需求分析的基本任務(wù)是根據(jù) 用戶的需求,準(zhǔn)確定義要完成的系統(tǒng)的目標(biāo),回答系統(tǒng)必須“做什么”的問題。 它的主要用途是明確系統(tǒng)需求,是用戶和開發(fā)人員之間進(jìn)行討論的基礎(chǔ),

29、并作 為系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)以及測試的依據(jù)。 只有準(zhǔn)確全面的需求獲取與分析才能保證系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)的順利進(jìn)行, 為后期測試提供必要的支持。在參考了現(xiàn)有的 bbs 論壇系統(tǒng)的功能,并且考慮 到了系統(tǒng)的擴(kuò)展性和成本的基礎(chǔ)上,最后制定了本系統(tǒng)的具體需求。 3.1 系統(tǒng)實(shí)現(xiàn)目標(biāo) 校園架設(shè)論壇,首先需要用戶在此論壇注冊,用戶注冊了以后管理員才能 進(jìn)行管理,了解用戶的情況和發(fā)帖的情況,同時(shí)要求游客只能夠?yàn)g覽論壇,不 能發(fā)表主題或回復(fù),只有在論壇內(nèi)注冊的用戶才可以發(fā)表主題。管理員具有管 理整個(gè)論壇的權(quán)限,可以管理已注冊用戶和論壇模塊等。 為保證物論壇系統(tǒng)能夠有效地為企業(yè)和網(wǎng)站服務(wù),從功能上必須達(dá)到以下 目標(biāo):

30、(1) 必須實(shí)現(xiàn)論壇所有必需功能。作為論壇系統(tǒng),系統(tǒng)必需能夠?qū)崿F(xiàn)用戶 注冊,用戶登陸,發(fā)表主題,發(fā)表回復(fù)等功能,保證論壇實(shí)現(xiàn)交流信息技術(shù)的 功能。 (2) 必須保證管理員得到用戶信息的準(zhǔn)確性和真實(shí)性。管理員作為整個(gè)系 統(tǒng)的調(diào)度者,系統(tǒng)的信息必須能夠清楚顯示給管理員。對于發(fā)表的不良信息, 管理員應(yīng)及時(shí)刪除,保證論壇內(nèi)部模塊的秩序,防止有人惡意損壞論壇的形象。 (3) 必須保證管理員能和用戶之間通信。對于論壇系統(tǒng)來說,系統(tǒng)的實(shí)時(shí) 管理是十分重要的,管理員可以設(shè)立某個(gè)模塊的版主,來幫助管理員管理其中 的內(nèi)容和調(diào)動(dòng)論壇的活躍度。所以,要保證管理員和用戶間通信聯(lián)系的及時(shí)性, 提高論壇的知名度與效率。 3

31、.2 系統(tǒng)運(yùn)行環(huán)境 為了能使學(xué)校更好的應(yīng)用現(xiàn)有軟硬件資源,在保障數(shù)據(jù)信息系統(tǒng)穩(wěn)定、高 效運(yùn)行的前提下,實(shí)現(xiàn)論壇的目的。根據(jù)系統(tǒng)需求,設(shè)定了 bbs 論壇系統(tǒng)的運(yùn) 行環(huán)境。 網(wǎng)絡(luò)環(huán)境: 服務(wù)器的終端和操作主機(jī)都需要連接到 internet。 硬件環(huán)境: (1) 服務(wù)器主機(jī)配置:cpu 使用 intel p 4 xeon, 雙 cpu,內(nèi)存為 2gb,選 用 2 塊 120gb 的 scsi 硬盤進(jìn)行同時(shí)讀寫。 (2) 操作主機(jī)配置:cpu 最低 intel p4 2.0ghz 以上,內(nèi)存 1gb 以上。 (3) 用戶端配置:無嚴(yán)格要求,可以登陸 internet 訪問此網(wǎng)站便可。 軟件環(huán)境: 服

32、務(wù)器: windows 2000 服務(wù)器版操作系統(tǒng),tomcat5.5 服務(wù)器, myecplice5.5 開發(fā)工具,mysql 5.0 數(shù)據(jù)庫。 管理員操作端:windows 98 操作系統(tǒng)以上,ie6.0 以上。 用戶端:windows 98 操作系統(tǒng)以上,ie6.0 以上。 3.3 系統(tǒng)的開發(fā)環(huán)境 考慮到系統(tǒng)成本問題,全部采用開源軟件和框架來構(gòu)建此系統(tǒng)。相對來說, 開源軟件成本低,功能相對簡單。 服務(wù)器端軟件環(huán)境:web 服務(wù)器采用 tomcat5.5,它部署和使用起來都很 方便,支持的功能對本系統(tǒng)來說已經(jīng)足夠。論壇的制作方面選用 myecplice 5.5 開發(fā),它是一個(gè)全面的多語言環(huán)

33、境的編程軟件,能夠?qū)崿F(xiàn)實(shí)用多種語言同時(shí)更 好的編寫程序。數(shù)據(jù)庫服務(wù)器采用的 powerdesinger 完成建模工作,并將其導(dǎo) 入 mysql 中,為了節(jié)省本系統(tǒng)的資源,所以采用了小型數(shù)據(jù)庫 mysql。在實(shí)際 應(yīng)用中,企業(yè)可以根據(jù)自己的需要更換其他的的數(shù)據(jù)庫管理。 開發(fā)工具與支持環(huán)境:系統(tǒng)開發(fā)采用 myeclipse。考慮到系統(tǒng)的擴(kuò)展性和實(shí) 體類的獨(dú)立性,采用 struts 作為 j2ee 實(shí)現(xiàn)的服務(wù)器端容器,數(shù)據(jù)庫訪問則采用 jdbc 組件實(shí)現(xiàn)。這些開源軟件的采用,降低了系統(tǒng)開發(fā)難度,提高了軟件的 可復(fù)用性。 3.4 功能性需求描述 在面向?qū)ο蟮南到y(tǒng)分析中,獲取功能需求的最常用的技術(shù)就是用

34、例建模技 術(shù)。它能夠直觀地向客戶展示系統(tǒng)的功能,方便技術(shù)人員準(zhǔn)確地獲取需求。在 項(xiàng)目開發(fā)的前期,它幫助開發(fā)人員理解系統(tǒng)的需求而不考慮具體的實(shí)現(xiàn)方法。 用例,表示系統(tǒng)的一種行為或者某個(gè)功能。它是在特定條件下,為了達(dá)到某種 目的,系統(tǒng)和用戶之間進(jìn)行交互的一個(gè)序列。用例模型由參與者和用例組成。 參與者是與系統(tǒng)進(jìn)行交互的外部實(shí)體,可能是某個(gè)人或者是某個(gè)事物。圖 3.1 顯示的就是本系統(tǒng)的業(yè)務(wù)流程圖。本系統(tǒng)中,參與者有兩個(gè),管理員和普通用 戶,相關(guān)的用例描述如下。 圖 3.1 論壇系統(tǒng)流程圖 3.4.1 用戶注冊 用例標(biāo)識:1.0參與者: 瀏覽本論壇的游客 簡要說明:游客在瀏覽本論壇系統(tǒng)的時(shí)候可以注冊成

35、為本論壇的用戶。 基本事件流: (1) 先單擊論壇右上方“注冊用戶”導(dǎo)航按鈕,進(jìn)入注冊界面。 (2) 客進(jìn)入注冊界面填寫個(gè)人的基本信息,包括用戶名、密碼、真實(shí)姓名、 性別、oicq、頭像等信息。 (3) 提交注冊信息,必填項(xiàng)目必須填寫,如果用戶名重復(fù),兩次密碼輸入 不同,則系統(tǒng)顯示請從新填寫。 (4)注冊成功,頁面自動(dòng)跳轉(zhuǎn)回論壇首頁。 3.4.2 瀏覽論壇 用例標(biāo)識:2.0參與者:管理員,注冊用戶,游客 簡要說明:此用例中操作者為管理員,注冊用戶,游客均可,系統(tǒng)以列表 的方式顯示論壇的當(dāng)前狀態(tài)以及其他基本信息。 基本事件流: (1) 凡登陸本論壇者,都可以可以隨意瀏覽本論壇基本信息。 (2)

36、管理論壇的信息只有管理員登陸后可見。 (3) 論壇模塊信息只有注冊用戶或管理員可見。 3.4.3 發(fā)表回復(fù) 用例標(biāo)識:3.0參與者:管理員,注冊用戶 簡要說明:瀏覽本站的用戶可以在自己感興趣的論壇區(qū)中查看主題貼子并 發(fā)表回復(fù)。 基本事件流: (1) 登陸網(wǎng)站首頁,在首頁的右上方的登陸框內(nèi)登陸用戶的用戶名和密碼。 (2) 登陸成功后,可選擇相關(guān)的論壇模塊,點(diǎn)擊即可進(jìn)入。 (3) 進(jìn)入相應(yīng)的論壇模塊后,可以查看已發(fā)的主題貼子并進(jìn)行回復(fù)。 3.4.4 發(fā)表主題 用例標(biāo)識:4.0參與者: 管理員,注冊用戶 簡要說明:管理人員通過輸入要查詢項(xiàng)和查詢條件,來完成對系統(tǒng)中某類 信息的查詢,結(jié)果采用列表的方式

37、顯示。 基本事件流: (1) 登陸網(wǎng)站首頁,在首頁的右上方的登陸框內(nèi)登陸用戶的用戶名和密碼。 (2) 登陸成功后,可選擇相關(guān)的論壇模塊,點(diǎn)擊即可進(jìn)入。 (3) 進(jìn)入相應(yīng)的論壇模塊后,點(diǎn)擊論壇右上角的發(fā)布主題選項(xiàng)即可發(fā)布新 主題。 3.4.5 用戶管理 用例標(biāo)識:5.0參與者:管理員 簡要說明:管理員可以對已經(jīng)在本論壇的注冊的用戶進(jìn)行管理,根據(jù)不同 的需求和形式,進(jìn)行不同的管理。 基本事件流: (1) 點(diǎn)擊網(wǎng)頁右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)如管理員管理 頁面。 (2) 進(jìn)入管理員操作界面以后,單擊左側(cè)的“用戶管理”按鈕。 (3) 可以根據(jù)用戶對論壇的貢獻(xiàn)進(jìn)行提升為管理員或刪除。 3.4

38、.6 主題管理 用例標(biāo)識:6.0參與者:管理員 簡要說明:管理員可以通過管理員登陸系統(tǒng)進(jìn)入主題管理系統(tǒng),查看并管 理用戶發(fā)表的主題。 基本事件流: (1)點(diǎn)擊網(wǎng)頁右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)入管理員管理頁 面。 (2 進(jìn)入管理員操作界面以后,單擊左側(cè)的“主題管理”按鈕。 (3) 可對不文明的主題或惡意宣傳的主題進(jìn)行刪除。 3.4.7 欄目管理 用例標(biāo)識:7.0參與者:管理員 簡要說明:管理員可以對某個(gè)欄目做出杰出貢獻(xiàn)者進(jìn)行任命,將其設(shè)為版 主。 基本事件流: (1) 點(diǎn)擊網(wǎng)頁右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)入管理員管理 頁面。 (2) 進(jìn)入管理員操作界面以后,單擊左側(cè)的“欄

39、目管理”按鈕。 (3) 進(jìn)入欄目管理頁面后,可以將用戶設(shè)置為某個(gè)欄目模塊的版主,其名 字會(huì)顯示在論壇首頁欄目名字的下方。 3.4.8 回復(fù)管理 用例標(biāo)識:8.0參與者:管理員 簡要說明:管理員可以通過管理員登陸系統(tǒng)進(jìn)入主題管理系統(tǒng),查看并管 理用戶發(fā)表的主題。 基本事件流: (1)點(diǎn)擊網(wǎng)頁右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)入管理員管理頁 面。 (2 進(jìn)入管理員操作界面以后,單擊左側(cè)的“回復(fù)管理”按鈕。 (3) 可對不文明的回復(fù)或惡意宣攻擊他人,傳播不良文化等的回復(fù)進(jìn)行刪 除。 3.4.9 用戶注銷 用例標(biāo)識:9.0參與者:注冊用戶,管理員 簡要說明:注冊用戶和管理員在結(jié)束操作以后可以點(diǎn)擊

40、“注銷”按鈕退出 登錄。 基本事件流: (1) 用戶或管理員已經(jīng)登陸本論壇系統(tǒng)。 (2) 確定執(zhí)行的所有操作均已完成。 (3) 點(diǎn)擊論壇首頁左上方的“注銷”按鈕,安全退出。 3.5 文件夾組織結(jié)構(gòu) 在開發(fā)系統(tǒng)前,將可能用到的文件夾創(chuàng)建出來,可以方便以后的開發(fā)工作, 還可以規(guī)范論壇的整體架構(gòu),bbs 系統(tǒng)的文件夾組織結(jié)構(gòu)如圖 3.2 所示。 圖 3.2 論壇組織文件夾結(jié)構(gòu)圖 3.6 非功能性需求描述 非功能性需求在整個(gè)系統(tǒng)中占有非常重要的位置,對系統(tǒng)的非功能性需求 的滿足是系統(tǒng)成功的基礎(chǔ),下面列出本系統(tǒng)的非功能性需求: (1) 系統(tǒng)能夠長時(shí)間的持續(xù)工作。 對于企業(yè)應(yīng)用級的系統(tǒng)來說,系統(tǒng)的穩(wěn)定性與

41、正確性一樣重要??紤]到本 系統(tǒng)的實(shí)際情況,服務(wù)器端必須能夠在 24*7 小時(shí)內(nèi)不間斷地穩(wěn)定運(yùn)行。 (2) 客戶端信息更新更新等待時(shí)間不能大于 5 秒。 (3) 系統(tǒng)要采用 b/s 架構(gòu)進(jìn)行構(gòu)建。 考慮到 b/s 架構(gòu)部署以及升級的簡單化,所以要求采用 b/s 架構(gòu)進(jìn)行構(gòu)建。 3.7 本章小結(jié) 本章首先介紹了系統(tǒng)的實(shí)現(xiàn)目標(biāo)、運(yùn)行環(huán)境和開發(fā)環(huán)境。然后通過用例分 析的方式獲取和分析了系統(tǒng)的功能性需求,對需求進(jìn)行了補(bǔ)充,提出了系統(tǒng)的 非功能性需求。從而對系統(tǒng)的整體需求有了完整的了解。 從本章的需求分析中可以得出,系統(tǒng)的功能性需求相對來說比較易于實(shí)現(xiàn), 而非功能性需求比較嚴(yán)格。對于非功能性需求影響最大的

42、就是系統(tǒng)的架構(gòu),所 以在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)時(shí),要在對系統(tǒng)的架構(gòu)給予充分重視的前提下,實(shí)現(xiàn)功能 性需求。 第 4 章 系統(tǒng)設(shè)計(jì) 4.1 系統(tǒng)設(shè)計(jì)原則 (一)低成本。隨著技術(shù)的進(jìn)步和系統(tǒng)復(fù)雜性的增加,論壇成本在整個(gè)系統(tǒng) 中所占的比重越來越大,企業(yè)應(yīng)用中已經(jīng)達(dá)到 80%左右擁有屬于自己的論壇, 而且有繼續(xù)增加的趨勢。為了降低系統(tǒng)的成本,系統(tǒng)中各個(gè)模塊都采用開源項(xiàng) 目中的組件完成。它們不僅能夠提供比較完善的功能,而且還能根據(jù)系統(tǒng)需求 進(jìn)行適當(dāng)擴(kuò)展。 (二) 規(guī)范性。從使用周期上來考慮,論壇系統(tǒng)維護(hù)階段在軟件生命周期或 生存期中占較大比重,有的可達(dá)系統(tǒng)生存周期的 50-70%。所以需要系統(tǒng)在設(shè)計(jì) 的過程中積

43、極遵循各種規(guī)范,保證后期維護(hù)和開發(fā)人員能夠快速整理和修改。 (三) 易擴(kuò)展。系統(tǒng)的設(shè)計(jì)直接決定可擴(kuò)展性。可擴(kuò)展性是軟件工程追求的 目標(biāo),能夠大大提高系統(tǒng)的復(fù)用程度,較低開發(fā)成本。本系統(tǒng)中采用標(biāo)準(zhǔn)的 struts 框架作為服務(wù)器端的容器,其中的提供了可擴(kuò)展的 action 類,用戶處理 特定的 http 請求。另外系統(tǒng)采用分層機(jī)制設(shè)計(jì),建立專門的數(shù)據(jù)訪問層、服 務(wù)層、業(yè)務(wù)邏輯層等,采用設(shè)計(jì)模式中的思想優(yōu)化設(shè)計(jì),從而最大程度上提高 系統(tǒng)可擴(kuò)展性。 4.2 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)是系統(tǒng)的基礎(chǔ),數(shù)據(jù)庫設(shè)計(jì)關(guān)系到系統(tǒng)開發(fā)的成敗,所以數(shù)據(jù)庫設(shè)計(jì) 這一環(huán)節(jié)在系統(tǒng)開發(fā)中顯得尤為重要。數(shù)據(jù)庫設(shè)計(jì)就像一座建筑的地基一樣

44、, 如果設(shè)計(jì)不合理,將會(huì)影響到整個(gè)系統(tǒng)開發(fā)的全過程,甚至?xí)o后期維護(hù)帶來 極大的不便。 4.2.1 數(shù)據(jù)庫分析 本系統(tǒng)采用 mysql 數(shù)據(jù)庫,相對于 oracle 等大型數(shù)據(jù)庫來講,mysql 數(shù)據(jù) 庫更適用于中小型系統(tǒng),其存取數(shù)據(jù)的方便、快捷為系統(tǒng)開發(fā)帶來了便利。由 于本系統(tǒng)數(shù)據(jù)量并不算龐大,為了減少工程成本,所以選擇使用 mysql 數(shù)據(jù)庫。 4.2.2 數(shù)據(jù)庫概念設(shè)計(jì) 根據(jù)以上對系統(tǒng)所做的需求分析、流程設(shè)計(jì)及功能結(jié)構(gòu)的確定,每個(gè)功能 模塊可以抽象出一個(gè)或多個(gè)實(shí)體對象,例如用戶、論壇、主題、回復(fù)主題實(shí)體 對象等。這些實(shí)體對象彼此互相聯(lián)系,并且最重將被創(chuàng)建成數(shù)據(jù)表結(jié)構(gòu)。 (1) 用戶實(shí)體對

45、象 用戶實(shí)體包括用戶編號、用戶名、用戶簽名、用戶頭像、用戶級別等用戶 相關(guān)屬性。用戶編號是識別用戶實(shí)體的唯一編號,也就是數(shù)據(jù)表的主鍵,它的 數(shù)據(jù)類型為 int 型,并且具有自增特性;用戶級別屬性是標(biāo)明用戶在本系統(tǒng)中的 功能管線;其他屬性都是描述此用戶相關(guān)信息的屬性,例如用戶頭像、用戶聯(lián) 系地址、用戶個(gè)人主業(yè)等。用戶實(shí)體 e-r 圖如圖 4.1 所示。 圖 4.1 用戶實(shí)體 e-r 圖 (2) 論壇實(shí)體對象 論壇實(shí)體對象包括論壇編號、論壇名稱、版主、創(chuàng)建時(shí)間等相關(guān)屬性。論 壇實(shí)體對象中的論壇編號屬性與用戶實(shí)體對象中的用戶編號屬性類型相同,都 為 int 型,并具有自增特性;其他屬性都是描述此論壇

46、的相關(guān)信息。論壇實(shí)體 e-r 圖如圖 4.2 所示。 圖 4.2 論壇實(shí)體 e-r 圖 (3) 主題實(shí)體對象 主題實(shí)體包括主題編號、主題標(biāo)題、主題內(nèi)容、主題作者、發(fā)表時(shí)間、論 壇編號、論壇名稱、人氣等相關(guān)屬性。主題編號屬性類型為 int 型,并且具有自 增特性;論壇編號屬性標(biāo)明此主題發(fā)表在哪個(gè)論壇中;由于在使用主題實(shí)體對 象時(shí),頻繁用到論壇實(shí)體對象中的論壇名稱屬性,所以在這里將論壇名稱屬性 定義到主題實(shí)體中;人氣屬性用于標(biāo)明此主題被訪問過的次數(shù);其他屬性都是 描述主題實(shí)體對象的相關(guān)信息。主題實(shí)體 e-r 圖如圖 4.3 所示。 圖 4.3 主題實(shí)體 e-r 圖 (4) 回復(fù)主題實(shí)體對象 回復(fù)主

47、題實(shí)體對象包括回復(fù)主題編號、回復(fù)主題標(biāo)題、回復(fù)主題內(nèi)容、回 復(fù)主題作者、回復(fù)主題時(shí)間、主題編號、主題名稱、回復(fù)作者心情等屬性。除 了主題編號與主題名稱屬性之外,其余屬性都是描述回復(fù)主題實(shí)體對象相關(guān)信 息?;貜?fù)主題實(shí)體 e-r 圖如圖 4.4 所示。 圖 4.4 回復(fù)主題實(shí)體 e-r 圖 4.2.3 powerdesigner 數(shù)據(jù)庫建模 在數(shù)據(jù)庫概念設(shè)計(jì)中已經(jīng)分析了用戶、論壇、主題、回復(fù)主題等主要數(shù)據(jù) 庫實(shí)體對象,這些實(shí)體對象最終將被定義為數(shù)據(jù)表,形成整體的數(shù)據(jù)結(jié)構(gòu)。在 這里,本人使用 powerdesigner 軟件完成數(shù)據(jù)庫建模工作。建模結(jié)構(gòu)如圖 4.5 所 示。 圖 4.5 數(shù)據(jù)庫模型圖

48、 圖 9.5 中的數(shù)據(jù)庫模型描述了整個(gè) bbs 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),包括用戶、論壇、 主題、主題回復(fù)等實(shí)體,這 4 個(gè)實(shí)體之間沒有直接關(guān)聯(lián)關(guān)系,這就意味著開發(fā) 過程比較簡單。 4.2.4 創(chuàng)建數(shù)據(jù)庫 通過 powerdesigner 建模后,可以使用此軟件生成相應(yīng)的數(shù)據(jù)庫腳本,本 人將本系統(tǒng)數(shù)據(jù)庫腳本命名為 db_bbs.sql,然后使用腳本在 mysql 中創(chuàng)建數(shù)據(jù) 庫。具體步驟如下: (1) 選擇“開始”/“程序”/mysql/mysql server 5.0/mysql command line client 命令,彈出窗口,輸入 root 用戶密碼,窗口提示符變?yōu)椤癿ysql” , 這表示

49、已經(jīng)正確連接了 mysql 數(shù)據(jù)庫。 (2) 在提示符“mysql”后輸入如下命令: use db_bbs; 然后按回車鍵,此時(shí)使用的數(shù)據(jù)庫為 db_bbs。 (3) 將 db_bbs.sql 放入 mysql 根目錄中的 bin 路徑下,在提示符 “mysql”后輸入如下命令: source db_bbs.sql; 按回車鍵,這樣數(shù)據(jù)庫就建立完成。 4.3 用戶發(fā)布主題模塊設(shè)計(jì) 4.3.1 發(fā)布主題概述 發(fā)布主題模塊包括發(fā)布新主題與回復(fù)主題兩個(gè)功能。發(fā)布新主題即用戶發(fā) 表一篇新的文章,回復(fù)主題即用戶回復(fù)已發(fā)表的文章,兩者雖然功能不同,但 都提交到相同的 action 控制器。發(fā)布主題頁面如圖

50、 4.6 所示。 圖 4.6 發(fā)表主題頁面 4.3.2 發(fā)布主題技術(shù)分析 當(dāng)在導(dǎo)航欄中單擊右側(cè)的“發(fā)布主題”連接時(shí),將發(fā)出 newtopic.do 請求, 進(jìn)入發(fā)表主題頁面,此時(shí)實(shí)現(xiàn)的是“發(fā)布新主題”功能。另外, “發(fā)布新主題” 功能只提供給登錄用戶,普通用戶沒有“發(fā)布新主題”的權(quán)限。 當(dāng)用戶在主題瀏覽頁面單擊“回復(fù)”鏈接時(shí),同樣將發(fā)出 newtopic.do 請求, 為了在 action 控制器中區(qū)別兩種功能,本人為回復(fù)請求加上一個(gè)參數(shù) type,系 統(tǒng)自動(dòng)根據(jù) struts-config.xml 配置信息將參數(shù) type 值提交到 action 控制器中, 然后根據(jù) type 的值在控制器

51、中調(diào)用相應(yīng)的業(yè)務(wù)邏輯處理。 當(dāng)用戶輸入主題相關(guān)信息后,發(fā)送 newaticle.do 請求,在指定控制器中調(diào) 用相應(yīng)的業(yè)務(wù)邏輯處理,將用戶發(fā)表的文章插入數(shù)據(jù)庫。 4.4 本章小結(jié) 本章介紹了論壇系統(tǒng)設(shè)計(jì)的過程,根據(jù)系統(tǒng)設(shè)計(jì)所提出的三個(gè)原則對系統(tǒng) 進(jìn)行總體設(shè)計(jì)。剖析了一個(gè)較大型的web項(xiàng)目如何運(yùn)用struts框架來構(gòu)造。bbs 系統(tǒng)是網(wǎng)絡(luò)應(yīng)用系統(tǒng),本章從分析開始,詳細(xì)的介紹了系統(tǒng)的各個(gè)部分的設(shè)計(jì) 理念和主要功能需要。 考慮到論壇系統(tǒng)的可擴(kuò)展性,大部分系統(tǒng)設(shè)計(jì)的可復(fù)用性較強(qiáng),提升了整 個(gè)系統(tǒng)的復(fù)用性和可擴(kuò)展性,為以后系統(tǒng)升級奠定了基礎(chǔ)。 第 5 章 系統(tǒng)實(shí)現(xiàn) 根據(jù)對系統(tǒng)分析與設(shè)計(jì),本章對系統(tǒng)中相關(guān)

52、部分的實(shí)現(xiàn)情況做了詳細(xì)的介 紹。 5.1 發(fā)布主題實(shí)現(xiàn)過程 發(fā)布主題功能模塊主要通過如下組件實(shí)現(xiàn): 視圖組件:newaticle.jsp。 控制器組件:newtopicaction.java、newaticleaction.java。 formbeanaction:newtopicform.java、newaticleform.java。 業(yè)務(wù)邏輯類:topiclistbean.java、loginbean.java、umlchange.java。 5.1.1 配置發(fā)布主題模塊組件 在 struts-config.xml 配置文件中,有機(jī)地將這 4 個(gè)組件結(jié)合起來。關(guān)鍵代碼 如下: 5.1.2

53、 創(chuàng)建視圖組件 在發(fā)布主題功能模塊中,視圖組件為 newarticle.jsp 文件,newarticle.jsp 文 件中包括發(fā)布主題表單,其中本人為用戶輸入主題內(nèi)容提供了相應(yīng)的模式選擇, 例如字體、字體大小設(shè)置等,這一功能由 javascript 代碼來實(shí)現(xiàn)。點(diǎn)擊相對應(yīng) 的設(shè)置時(shí),會(huì)彈出消息框,用戶可在消息框中填寫內(nèi)容,如圖 5.1 所示: 圖 5.1 設(shè)置字體消息框 關(guān)鍵代碼如下: function change_b() var text=mpt(請輸入要加粗顯示的文字!,); if(text!=) text1=_strong_+text+_/strong_; if(

54、text!=null) newtopicform.content.value=newtopicform.content.value+text1; function change_i() var text=mpt(請輸入要斜體顯示的文字!,); if(text!=) text1=_em_+text+_/em_; if(text!=null) newtopicform.content.value=newtopicform.content.value+text1; function change_u() var text=mpt(請輸入要以下劃線顯示的文字!,

55、); if(text!=) text1=_u_+text+_/u_; if(text!=null) newtopicform.content.value=newtopicform.content.value+text1; 上述代碼將用戶輸入主題內(nèi)容以“_u_+text+_/u_”樣式傳入 actionform bean 中,然后提交到 action 控制器中將數(shù)據(jù)插入數(shù)據(jù)庫中,當(dāng)用 戶從數(shù)據(jù)庫中取這些數(shù)據(jù)時(shí),“_u_”不是有效的 html 代碼,此時(shí)需要對 這個(gè)字符串進(jìn)行轉(zhuǎn)換操作,用到輔助類 com.wsy.struts.util.umlchange.java。關(guān)鍵 代碼如下: public

56、class umlchange public string change(string str) string s=str.replaceall(_, ).replaceall(|_|, ); return s.trim(); 5.1.3 創(chuàng)建控制器組件 用戶發(fā)布主題模塊的控制器組件主要包括如下兩個(gè)部分: (1) 用于轉(zhuǎn)入發(fā)布主題頁面 newtopicaction.java 控制器組件。 在 struts-config.xml 配置信息中 newtopic.do 請求發(fā)送到 com.wsy.struts.action .newtopicaction.java 控制器,同時(shí)發(fā)送到這個(gè) actio

57、n 控制器的參數(shù)包括 type、name、forumid、forumname(其中參數(shù) type 標(biāo)識用戶發(fā)表回復(fù)文章還是發(fā) 表新主題,參數(shù) name 為當(dāng)前登陸的用戶名,參數(shù) forumid 為論壇號,參數(shù) forumname 為論壇名稱)。同時(shí)還需要取出發(fā)表文章作者相關(guān)信息,數(shù)據(jù)取出后 以 list 形式表示。這些參數(shù)通過 session 傳入 newarticle.jsp 文件中,待發(fā)送 newaticle.do 請求時(shí),將這些數(shù)據(jù)提交到相應(yīng)的 action 控制器中,然后根據(jù) type 的值來確定調(diào)用哪個(gè)業(yè)務(wù)邏輯類處理這些數(shù)據(jù)。關(guān)鍵代碼如下: public actionforward

58、execute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) datasource datasource = getdatasource(request,datasources);/取 struts 配 置的數(shù)據(jù)源 newtopicform newtopicform = (newtopicform) form;/ todo auto- generated method stub actionmessages error=new actionmes

59、sages(); httpsession session=request.getsession(); string name=newtopicform.getname(); string forumid=newtopicform.getforumid(); string forumname=null; if(forumid=null) forumid=(string)session.getattribute(forumid); forumbean forum=new forumbean(); list forumnlist=forum.getrecord(datasource, forumid

60、); for(int i=0;iforumnlist.size();i+) forumbean forums=(forumbean)forumnlist.get(i); forumname=forums.getforumnname(); string topicname=(string)session.getattribute(title); system.out.println(topicname); system.out.println(name); system.out.println(forumname+forumname); system.out.println(forumid+fo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論