版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 基于jsp的學(xué)生論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 姓 名 xxx </p><p> 學(xué) 院 計(jì)算機(jī)科學(xué)與軟件</p><p> 專 業(yè) 軟件技術(shù) </p><
2、p> 指導(dǎo)教師 xx </p><p> 職 稱 講師 </p><p> 2011 年 05月07日</p><p><b> 目 錄</b></p><p><b> 前 言I</b></p><p&
3、gt;<b> 第1章 概 述1</b></p><p> 1.1 課題研究的背景和來源1</p><p> 1.2 課題研究成果應(yīng)用的實(shí)際意義1</p><p> 1.3 本文的內(nèi)容及主要工作2</p><p> 第2章 相關(guān)技術(shù)簡(jiǎn)介3</p><p> 2.1 B/S架構(gòu)
4、的介紹3</p><p> 2.2 JSP技術(shù)的介紹3</p><p> 2.3 JSP技術(shù)的優(yōu)勢(shì)與劣勢(shì)4</p><p> 2.4 Struts 框架4</p><p> 2.5 本章小結(jié)7</p><p> 第3章 需求分析8</p><p> 3.1 系統(tǒng)實(shí)現(xiàn)目標(biāo)
5、8</p><p> 3.2 系統(tǒng)運(yùn)行環(huán)境8</p><p> 3.3 系統(tǒng)的開發(fā)環(huán)境9</p><p> 3.4 功能性需求描述9</p><p> 3.5 文件夾組織結(jié)構(gòu)13</p><p> 3.6 非功能性需求描述13</p><p> 3.7 本章小結(jié)14<
6、;/p><p> 第4章 系統(tǒng)設(shè)計(jì)15</p><p> 4.1 系統(tǒng)設(shè)計(jì)原則15</p><p> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)15</p><p> 4.3 用戶發(fā)布主題模塊設(shè)計(jì)19</p><p> 4.4 本章小結(jié)20</p><p> 第5章 系統(tǒng)實(shí)現(xiàn)22</p>
7、<p> 5.1 發(fā)布主題實(shí)現(xiàn)過程22</p><p> 5.2 本章小結(jié)29</p><p> 第6章 系統(tǒng)測(cè)試30</p><p> 6.1 測(cè)試的概念30</p><p> 6.2 本系統(tǒng)的測(cè)試方法30</p><p> 6.3 本章小結(jié)31</p><p
8、> 第7章 總 結(jié)32</p><p> 7.1 工作總結(jié)32</p><p> 7.2 系統(tǒng)的完善和心得32</p><p><b> 參考文獻(xiàn)33</b></p><p><b> 致 謝35</b></p><p><b> 前
9、 言</b></p><p> 隨著網(wǎng)絡(luò)時(shí)代的來臨和沖擊,全球經(jīng)濟(jì)一體化的趨勢(shì)加強(qiáng),各國(guó)都面臨著前所未有的機(jī)遇和挑戰(zhàn)。論壇作為一種先進(jìn)的交流方式和管理技術(shù),被廣泛認(rèn)為是企業(yè)和網(wǎng)站在運(yùn)作中一種新型和快捷的交流形式,提高了用戶對(duì)企業(yè)和網(wǎng)站的認(rèn)知,方便了用戶回饋意見,在企業(yè)的競(jìng)爭(zhēng)和發(fā)展中發(fā)揮著重要作用。論壇作為網(wǎng)絡(luò)時(shí)代的代表性標(biāo)志之一,越來越多的被人們喜歡上了這種新的研究問題的形式。隨著論壇的熱度逐漸
10、升高,網(wǎng)絡(luò)論壇進(jìn)入戰(zhàn)國(guó)時(shí)代,大大小小的網(wǎng)絡(luò)論壇生長(zhǎng)著消亡著,而隨著網(wǎng)絡(luò)的迅猛發(fā)展,網(wǎng)民們也逐漸分野細(xì)化,分類細(xì)化的網(wǎng)絡(luò)社區(qū)呼之欲出。在對(duì)如今如此激烈的各種論壇中,結(jié)合不同的的要求和業(yè)務(wù)需要,設(shè)計(jì)了一個(gè)適合于各種企業(yè)需要的,具有較強(qiáng)擴(kuò)展性的論壇系統(tǒng)。</p><p> 系統(tǒng)的主要功能是建立一個(gè)可以討論各種問題的專區(qū),可以讓用戶和游客發(fā)表自己的意見和建議,通過這樣不斷的完善企業(yè)或者網(wǎng)站的建設(shè),同時(shí)也給用戶提供了一個(gè)
11、交流的平臺(tái)。本論壇同時(shí)具備管理員管理系統(tǒng),方便專門負(fù)責(zé)的管理員管理用戶的信息、權(quán)限,發(fā)表的主題等。系統(tǒng)采用B/S架構(gòu),易于論壇擁有者要求的不同進(jìn)行擴(kuò)展。論壇的用戶可以到自己喜歡的論壇欄目下進(jìn)行討論,極大的方便了企業(yè)公司或者其他網(wǎng)站等同用戶間的聯(lián)系,更好的了解用戶的想法。同時(shí)對(duì)于企業(yè)或網(wǎng)站的宣傳起到了極大的促進(jìn)作用。</p><p> 目前活躍的網(wǎng)絡(luò)論壇有強(qiáng)國(guó)論壇、中青論壇、球迷一家等。強(qiáng)國(guó)論壇是人民網(wǎng)開設(shè)的論壇
12、,目的是為那些愛國(guó)無門又有一腔熱血堵在心頭的愛國(guó)志士們?cè)O(shè)立的。中青論壇是中青在線的論壇,其中的青年話題是人氣最旺的論壇,由中青報(bào)編輯李方主持,以為文學(xué)女青年排憂解難和抒發(fā)小資情調(diào)為宗旨。球迷一家和前面提到的天涯社區(qū)都屬于海南在線,主要收容當(dāng)年從新浪體育沙龍?zhí)油龅纳⒈斡隆?lt;/p><p> 還有一些人氣未必很高但聲望不低的專業(yè)類論壇。IT方面有新浪IT業(yè)界論壇和DONEWSIT寫作社區(qū),攝影類有第三只眼和江湖色
13、論壇,文學(xué)類有橄欖樹和詩(shī)生活等。這些論壇有個(gè)共同的特點(diǎn):在喧鬧的網(wǎng)絡(luò)背景下,慘淡經(jīng)營(yíng),低調(diào)運(yùn)作。而混跡于其中的網(wǎng)民圖的是,有朝一日,能脫穎而出,在業(yè)界找到自己的一席之地,所以論壇系統(tǒng)對(duì)于企業(yè)和用戶的作用都是巨大的??傊S著論壇技術(shù)的發(fā)展,論壇領(lǐng)域的不斷擴(kuò)大,越來越多的網(wǎng)站如雨后春筍一樣出現(xiàn)在網(wǎng)絡(luò)上,這些論壇不僅能提供給用戶一個(gè)交流的平臺(tái),更為企業(yè)和一些知名網(wǎng)站提高了影響力和知名度。在這個(gè)信息化的時(shí)代中,論壇逐漸成為了一種引領(lǐng)企業(yè)進(jìn)步,
14、甚至是整個(gè)社會(huì)進(jìn)步的標(biāo)志性文化</p><p><b> 概 述</b></p><p> 課題研究的背景和來源</p><p> BBS的英文全稱是Bulletin Board System,翻譯為中文就是“電子公告板”。BBS最早是用來公布股市價(jià)格等類信息的,當(dāng)時(shí)BBS連文件傳輸?shù)墓δ芏紱]有,而且只能在蘋果計(jì)算機(jī)上運(yùn)行。早期的BBS與
15、一般街頭和校園內(nèi)的公告板性質(zhì)相同,只不過是通過電腦來傳播或獲得消息而已。一直到個(gè)人計(jì)算機(jī)開始普及之后,有些人嘗試將蘋果計(jì)算機(jī)上的BBS轉(zhuǎn)移到個(gè)人計(jì)算機(jī)上,BBS才開始漸漸普及開來。近些年來,由于愛好者們的努力,BBS的功能得到了很大的擴(kuò)充。目前,通過BBS系統(tǒng)可隨時(shí)取得國(guó)際最新的軟件及信息,也可以通過BBS系統(tǒng)來和別人討論計(jì)算機(jī)軟件、硬件、Internet、多媒體、程序設(shè)計(jì)以及醫(yī)學(xué)等等各種有趣的話題,更可以利用BBS系統(tǒng)來刊登一些“征友
16、”、“廉價(jià)轉(zhuǎn)讓”及“公司產(chǎn)品”等啟事,而且這個(gè)園地就在你我的身旁。只要您擁有1臺(tái)計(jì)算機(jī)、1只調(diào)制解調(diào)器和1條電話線,就能夠進(jìn)入這個(gè)“超時(shí)代”的領(lǐng)域,進(jìn)而去享用它無比的威力!</p><p> 從構(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í)候,
17、隨著ChinaNet的全面開通,越來越多的人用上了Internet,并從中體會(huì)到了使用它的方便與樂趣。建立在Internet基礎(chǔ)上的BBS,也就是Internet BBS,已經(jīng)開始發(fā)展。但是,由于目前構(gòu)建Internet BBS的費(fèi)用較高,所以還沒有形成較大的規(guī)模。相信隨著Internet使用費(fèi)用的下降,這種類型的BBS將會(huì)越來越多。</p><p> BBS的發(fā)展過程中,也出現(xiàn)了一些問題。由于國(guó)內(nèi)使用的BBS
18、架站軟件,都是從國(guó)外引進(jìn)的,因此沒有必要的中文說明。雖然一些熱心的站長(zhǎng)翻譯了一些資料,但是僅靠這些是遠(yuǎn)遠(yuǎn)不夠的。另外,有些站臺(tái)的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有雷同之處。 </p><p> 1999年是中國(guó)網(wǎng)絡(luò)的發(fā)展年。但是,我們應(yīng)該清醒地認(rèn)識(shí)到,目前一些BBS站并沒有走上“簡(jiǎn)單、易用”這一層次。包括一些廠商架設(shè)的BBS站,實(shí)用性還需要加強(qiáng)。今后,國(guó)內(nèi)的BBS站將向著個(gè)性化和專業(yè)化的方向發(fā)展。</p&
19、gt;<p> 綜上所述,一套好的BBS站臺(tái)對(duì)于一個(gè)企業(yè)或者網(wǎng)站是十分重要,它與整個(gè)企業(yè)或者網(wǎng)站的發(fā)展息息相關(guān),所以本人制作了一個(gè)擴(kuò)展性極強(qiáng),操作簡(jiǎn)便的BBS論壇站臺(tái)。</p><p> 課題研究成果應(yīng)用的實(shí)際意義</p><p> 本文研究的主要目的是實(shí)現(xiàn)一個(gè)BBS論壇,能使用戶發(fā)表自己的想法,同時(shí)管理員可以管理論壇的情況,并在此基礎(chǔ)上實(shí)現(xiàn)企業(yè)與用戶之間溝通的功能。&
20、lt;/p><p> 由于各個(gè)企業(yè)和網(wǎng)站有各自的項(xiàng)目和產(chǎn)品的不同,各式各樣的的論壇不斷的如雨后春筍滋生出來。平時(shí)對(duì)于企業(yè)的宣傳開發(fā)的過程中,需要對(duì)不同的企業(yè)實(shí)現(xiàn)不同的設(shè)計(jì)。而在論壇系統(tǒng)開發(fā)的時(shí)候,只需要把該企業(yè)的需要的模塊添加到論壇設(shè)置好的模塊中即可。這種形式的論壇開發(fā)方式偏重于應(yīng)用和擴(kuò)展性,極大的方便了企業(yè)的管理和規(guī)劃。普通的廣告形式如果需求有了變化,往往要大面積地修改代碼,甚至是重新開發(fā)。這樣就浪費(fèi)了大量的人力
21、物力。要達(dá)到降低開發(fā)成本的目的,最直接的方法就是復(fù)用以前的系統(tǒng)。論壇系統(tǒng)只需要管理員不斷的對(duì)已經(jīng)形成好的模塊形式進(jìn)行更新就可以達(dá)到需要的目的,這就是論壇系統(tǒng)相對(duì)于其他的形式的網(wǎng)站的優(yōu)越性。 </p><p> 本課題研究的系統(tǒng),就是要通過Web服務(wù)器在企業(yè)的不同網(wǎng)站間架設(shè)屬于本企業(yè)的論壇。為企業(yè)與用戶間搭建起一個(gè)橋梁,并在此基礎(chǔ)上添加注冊(cè)用戶,管理用戶等功能,實(shí)現(xiàn)企業(yè)中的技術(shù)討論,社區(qū)建設(shè),更好的為企業(yè)服務(wù)。&
22、lt;/p><p> 本文的內(nèi)容及主要工作</p><p> 本文在分析介紹了B/S結(jié)構(gòu)下,Struts框架和JSP的基礎(chǔ)上,基于論壇系統(tǒng)的需求特點(diǎn),介紹了JSP模式的優(yōu)點(diǎn),并且實(shí)現(xiàn)了論壇系統(tǒng)的基本功能。</p><p> 各章的內(nèi)容組織如下:</p><p> 第1章介紹了課題研究的背景及實(shí)際的應(yīng)用意義;</p><
23、p> 第2章介紹了B/S結(jié)構(gòu),JSP技術(shù)優(yōu)越性以及Struts框架技術(shù);</p><p> 第3章分析了系統(tǒng)的開發(fā)環(huán)境,利用用例建模分析系統(tǒng)的功能需求,并且根據(jù)實(shí)際情況補(bǔ)充了部分需求,提出了非功能性需求,并描述了系統(tǒng)術(shù)語表;</p><p> 第4章對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì),并對(duì)服務(wù)層、Web服務(wù)層、數(shù)據(jù)訪問層、消息處理部分等進(jìn)行詳細(xì)設(shè)計(jì),對(duì)系統(tǒng)中用戶注冊(cè)、用戶登陸、權(quán)限控制、發(fā)表言
24、論等功能進(jìn)行了詳細(xì)設(shè)計(jì),對(duì)介紹了系統(tǒng)中數(shù)據(jù)庫(kù)表;</p><p> 第 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)介紹了用戶注冊(cè)、用戶登陸、發(fā)表貼子、管理員與用戶之間進(jìn)行操作等的處理流程;</p><
25、;p> 第6章測(cè)試部分主要講解測(cè)試的概念以及本論文所需要的測(cè)試</p><p> 第7章結(jié)論部分是對(duì)整個(gè)論文工作的總結(jié)以及下一步工作的展望,指出我們工作中有待改進(jìn)的地方,同時(shí)指明了下一步的研究方向。</p><p><b> 相關(guān)技術(shù)簡(jiǎn)介</b></p><p><b> B/S架構(gòu)的介紹</b></p
26、><p> 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ù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用。 客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Infor
27、mix或 SQL Server等數(shù)據(jù)庫(kù)。瀏覽器通過Web Server 同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互?! /S最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易?! /S結(jié)構(gòu)的使用越來越多,特別是由需求推動(dòng)了AJAX技術(shù)的發(fā)展,它的程序也能在客戶端電腦上進(jìn)行部分處理,從而大大的減輕了服務(wù)器的負(fù)擔(dān);并增加了交互性,能進(jìn)行局部實(shí)時(shí)刷新。</p><
28、;p><b> JSP技術(shù)的介紹</b></p><p> JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)
29、的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。 </p><p> JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 </p><p> JSP的1.0規(guī)范的最后版本是
30、1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺(tái)。 </p><p> JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配
31、合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 </p><p> 自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。 </p><p> JSP可用一種簡(jiǎn)單易懂的等式表示為:HTML+Java=JSP。 </p>
32、<p> JSP技術(shù)的優(yōu)勢(shì)與劣勢(shì)</p><p> JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無關(guān)
33、性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn),這是JSP的天然優(yōu)勢(shì)。</p><p><b> JSP的優(yōu)勢(shì):</b></p><p> (1)一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。</p><p> (2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任
34、意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。</p><p> (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。</p><p> (4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)
35、有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。</p><p><b> JSP的劣勢(shì):</b></p><p> (1) 與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。</p><p> (2) Java
36、的運(yùn)行速度是用class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤空間來儲(chǔ)存一系列的java文件和class文件,以及對(duì)應(yīng)的版本文件。</p><p><b> Struts 框架</b></p><p> Struts框架介紹</p><p> Struts最早是
37、作為Apache Jakarta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過對(duì)該項(xiàng)目的研究,改進(jìn)和提高JavaServer Pages 、Servlet、標(biāo)簽庫(kù)以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。Struts這個(gè)名字來源于在建筑和舊式飛機(jī)中使用的支持金屬架。這個(gè)框架之所以叫"Struts",是為了提醒我們記住那些支撐我們房屋,建筑,橋梁,甚至我們踩高蹺時(shí)候的基礎(chǔ)支撐。這也是一個(gè)解釋Struts在開發(fā)Web應(yīng)用程序中所扮演的角色的精彩描述
38、。當(dāng)建立一個(gè)物理建筑時(shí),建筑工程師使用支柱為建筑的每一層提供支持。同樣,軟件工程師使用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ò)的選擇。</p><p> Struts框架具有組件的模塊化,靈活
39、性和重用性的優(yōu)點(diǎn),同時(shí)簡(jiǎn)化了基于MVC的web應(yīng)用程序的開發(fā)</p><p> 本章詳細(xì)討論struts架構(gòu)。我們將看到struts是如何清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡(jiǎn)化了開發(fā)應(yīng)用程序過程的。我們還將介紹struts提供的類如何使得開發(fā)工作更加簡(jiǎn)單,這些類包括: </p><p> (1)控制程序流程的類。</p><p> (2)實(shí)現(xiàn)和執(zhí)行程序事務(wù)邏
40、輯的類。</p><p> (3)自定義的標(biāo)記庫(kù)使得創(chuàng)建和驗(yàn)證HTML表單更加容易。</p><p> Struts壓縮包內(nèi)容</p><p> 文件夾jakarta-struts-1.0.2包含兩個(gè)目錄,lib和webapps。在lib目錄中有使用struts創(chuàng)建應(yīng)用程序是所需的文件: </p><p><b> 文件描述
41、</b></p><p> jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API類。如果我們要使用struts提供的數(shù)據(jù)資源,就需要將這個(gè)文件拷貝到WEB-INF\lib下 </p><p> Struts.jar 包含struts中所有的java類。同樣也需要拷貝到WEB-INF\lib下 </p><p&
42、gt; *.tld 標(biāo)記庫(kù)描述器文件,描述了多個(gè)struts標(biāo)記庫(kù)中的自定義標(biāo)記。同樣要拷貝到WEB-INF\lib下 </p><p> 在webapps目錄下有如下文件: </p><p> Web應(yīng)用程序描述 </p><p> Struts-blank.war 一個(gè)簡(jiǎn)單的web應(yīng)用程序 </p><p> Struts-do
43、cumentation.war 包含struts站點(diǎn)上所有struts文檔 </p><p> Struts-example.war Struts很多特性的示范 </p><p> Struts-exercisetaglib.war 主要用于對(duì)自定義標(biāo)簽庫(kù)進(jìn)行增加而使用的測(cè)試頁(yè),但也可以示范如何使用struts標(biāo)記 </p><p> Struts-templ
44、ate.war 包含struts模板標(biāo)記的介紹和范例 </p><p> Struts-upload.war 一個(gè)簡(jiǎn)單的例子,示范如何使用struts框架上傳文件</p><p> Struts體系結(jié)構(gòu)</p><p> 讓我們從MVC角度觀察struts框架中的組件 </p><p> 框架中三個(gè)部分:模型,視窗和控制器。 <
45、/p><p><b> ◆模型 </b></p><p> 在struts框架中,模型分為兩個(gè)部分: </p><p><b> 系統(tǒng)的內(nèi)部狀態(tài) </b></p><p> (1)可以改變狀態(tài)的操作(事務(wù)邏輯) </p><p> (2)內(nèi)部狀態(tài)通常由一組Acti
46、nForm JavaBean表示。根據(jù)設(shè)計(jì)或應(yīng)用程序復(fù)雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時(shí)才獲得數(shù)據(jù)(從某個(gè)數(shù)據(jù)庫(kù))。 </p><p> 大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調(diào)用。比如購(gòu)物車bean,它擁有用戶購(gòu)買商品的信息,可能還有checkOut()方法用來檢查用戶的信用卡,并向倉(cāng)庫(kù)發(fā)定貨信息。 </p><
47、;p> 小型程序中,操作可能會(huì)被內(nèi)嵌在Action類,它是struts框架中控制器角色的一部分。當(dāng)邏輯簡(jiǎn)單時(shí)這個(gè)方法很適合。 </p><p> 建議用戶將事務(wù)邏輯(要做什么)與Action類所扮演的角色(決定做什么)分開。 </p><p><b> ◆視窗 </b></p><p> 由JSP建立,struts包含擴(kuò)展自定義標(biāo)
48、簽庫(kù),可以簡(jiǎn)化創(chuàng)建完全國(guó)際化用戶界面的過程。 </p><p><b> ◆控制器 </b></p><p> struts中,基本的控制器組件是ActionServlet類中的實(shí)例servelt,實(shí)際使用的servlet在配置文件中由一組映射(由ActionMapping類進(jìn)行描述)進(jìn)行定義。</p><p> Struts框架中的組件
49、</p><p> 框架中所使用的組件: </p><p> ActionServlet 控制器 </p><p> ActionClass 包含事務(wù)邏輯 </p><p> ActionForm 顯示模塊數(shù)據(jù) </p><p> ActionMapping 幫助控制器將請(qǐng)求映射到操作 </p>
50、<p> ActionForward 用來指示操作轉(zhuǎn)移的對(duì)象 </p><p> ActionError 用來存儲(chǔ)和回收錯(cuò)誤 </p><p> Struts標(biāo)記庫(kù) 可以減輕開發(fā)顯示層次的工作 </p><p><b> 本章小結(jié)</b></p><p> 本章首先對(duì)B/S結(jié)構(gòu)進(jìn)行了介紹,然后對(duì)JS
51、P技術(shù)以及JSP優(yōu)點(diǎn)和缺點(diǎn)的概述;同時(shí)介紹了Struts框架的結(jié)構(gòu)、內(nèi)容、體系等。</p><p> 由本章的分析可知, Struts是一種非常規(guī)范的構(gòu)建網(wǎng)站論壇框架,有利于網(wǎng)站系統(tǒng)的開發(fā)和修改,所以本人選用了在Ecplice平臺(tái)下進(jìn)行開發(fā),以支持Struts強(qiáng)大的架構(gòu)和需要的插件。</p><p><b> 需求分析</b></p><p&g
52、t; 需求分析是軟件開發(fā)流程中重要的一個(gè)環(huán)節(jié),需求分析的基本任務(wù)是根據(jù)用戶的需求,準(zhǔn)確定義要完成的系統(tǒng)的目標(biāo),回答系統(tǒng)必須“做什么”的問題。它的主要用途是明確系統(tǒng)需求,是用戶和開發(fā)人員之間進(jìn)行討論的基礎(chǔ),并作為系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)以及測(cè)試的依據(jù)。</p><p> 只有準(zhǔn)確全面的需求獲取與分析才能保證系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)的順利進(jìn)行,為后期測(cè)試提供必要的支持。在參考了現(xiàn)有的BBS論壇系統(tǒng)的功能,并且考慮到了系統(tǒng)的擴(kuò)展性
53、和成本的基礎(chǔ)上,最后制定了本系統(tǒng)的具體需求。</p><p><b> 系統(tǒng)實(shí)現(xiàn)目標(biāo)</b></p><p> 校園架設(shè)論壇,首先需要用戶在此論壇注冊(cè),用戶注冊(cè)了以后管理員才能進(jìn)行管理,了解用戶的情況和發(fā)帖的情況,同時(shí)要求游客只能夠?yàn)g覽論壇,不能發(fā)表主題或回復(fù),只有在論壇內(nèi)注冊(cè)的用戶才可以發(fā)表主題。管理員具有管理整個(gè)論壇的權(quán)限,可以管理已注冊(cè)用戶和論壇模塊等。&l
54、t;/p><p> 為保證物論壇系統(tǒng)能夠有效地為企業(yè)和網(wǎng)站服務(wù),從功能上必須達(dá)到以下目標(biāo):</p><p> (1) 必須實(shí)現(xiàn)論壇所有必需功能。作為論壇系統(tǒng),系統(tǒng)必需能夠?qū)崿F(xiàn)用戶注冊(cè),用戶登陸,發(fā)表主題,發(fā)表回復(fù)等功能,保證論壇實(shí)現(xiàn)交流信息技術(shù)的功能。</p><p> (2) 必須保證管理員得到用戶信息的準(zhǔn)確性和真實(shí)性。管理員作為整個(gè)系統(tǒng)的調(diào)度者,系統(tǒng)的信息必須
55、能夠清楚顯示給管理員。對(duì)于發(fā)表的不良信息,管理員應(yīng)及時(shí)刪除,保證論壇內(nèi)部模塊的秩序,防止有人惡意損壞論壇的形象。</p><p> (3) 必須保證管理員能和用戶之間通信。對(duì)于論壇系統(tǒng)來說,系統(tǒng)的實(shí)時(shí)管理是十分重要的,管理員可以設(shè)立某個(gè)模塊的版主,來幫助管理員管理其中的內(nèi)容和調(diào)動(dòng)論壇的活躍度。所以,要保證管理員和用戶間通信聯(lián)系的及時(shí)性,提高論壇的知名度與效率。</p><p><b
56、> 系統(tǒng)運(yùn)行環(huán)境</b></p><p> 為了能使學(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)境。</p><p><b> 網(wǎng)絡(luò)環(huán)境:</b></p><p> 服務(wù)器的終端和操作主機(jī)都需要連接到Internet。</p&g
57、t;<p><b> 硬件環(huán)境:</b></p><p> (1) 服務(wù)器主機(jī)配置:CPU使用Intel P 4 Xeon, 雙CPU,內(nèi)存為2GB,選用2塊120GB的SCSI硬盤進(jìn)行同時(shí)讀寫。</p><p> (2) 操作主機(jī)配置:CPU最低Intel P4 2.0GHz以上,內(nèi)存1GB以上。</p><p> (3
58、) 用戶端配置:無嚴(yán)格要求,可以登陸Internet訪問此網(wǎng)站便可。</p><p><b> 軟件環(huán)境:</b></p><p> 服務(wù)器: Windows 2000 服務(wù)器版操作系統(tǒng),Tomcat5.5服務(wù)器,MyEcplice5.5開發(fā)工具,MySql 5.0數(shù)據(jù)庫(kù)。</p><p> 管理員操作端:Windows 98操作系統(tǒng)以上
59、,IE6.0以上。 </p><p> 用戶端:Windows 98 操作系統(tǒng)以上,IE6.0以上。</p><p><b> 系統(tǒng)的開發(fā)環(huán)境</b></p><p> 考慮到系統(tǒng)成本問題,全部采用開源軟件和框架來構(gòu)建此系統(tǒng)。相對(duì)來說,開源軟件成本低,功能相對(duì)簡(jiǎn)單。</p><p> 服務(wù)器端軟件環(huán)境:Web服務(wù)
60、器采用Tomcat5.5,它部署和使用起來都很方便,支持的功能對(duì)本系統(tǒng)來說已經(jīng)足夠。論壇的制作方面選用MyEcplice 5.5開發(fā),它是一個(gè)全面的多語言環(huán)境的編程軟件,能夠?qū)崿F(xiàn)實(shí)用多種語言同時(shí)更好的編寫程序。數(shù)據(jù)庫(kù)服務(wù)器采用的PowerDesinger完成建模工作,并將其導(dǎo)入MySql中,為了節(jié)省本系統(tǒng)的資源,所以采用了小型數(shù)據(jù)庫(kù)MySql。在實(shí)際應(yīng)用中,企業(yè)可以根據(jù)自己的需要更換其他的的數(shù)據(jù)庫(kù)管理。</p><p
61、> 開發(fā)工具與支持環(huán)境:系統(tǒng)開發(fā)采用MyEclipse??紤]到系統(tǒng)的擴(kuò)展性和實(shí)體類的獨(dú)立性,采用Struts作為J2EE實(shí)現(xiàn)的服務(wù)器端容器,數(shù)據(jù)庫(kù)訪問則采用JDBC組件實(shí)現(xiàn)。這些開源軟件的采用,降低了系統(tǒng)開發(fā)難度,提高了軟件的可復(fù)用性。</p><p><b> 功能性需求描述</b></p><p> 在面向?qū)ο蟮南到y(tǒng)分析中,獲取功能需求的最常用的技術(shù)就
62、是用例建模技術(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)的用例描述
63、如下。</p><p> 圖 3.1 論壇系統(tǒng)流程圖</p><p><b> 用戶注冊(cè)</b></p><p> 用例標(biāo)識(shí):1.0參與者: 瀏覽本論壇的游客</p><p> 簡(jiǎn)要說明:游客在瀏覽本論壇系統(tǒng)的時(shí)候可以注冊(cè)成為本論壇的用戶。</p><p><b>
64、基本事件流:</b></p><p> (1) 先單擊論壇右上方“注冊(cè)用戶”導(dǎo)航按鈕,進(jìn)入注冊(cè)界面。</p><p> (2) 客進(jìn)入注冊(cè)界面填寫個(gè)人的基本信息,包括用戶名、密碼、真實(shí)姓名、性別、OICQ、頭像等信息。</p><p> (3) 提交注冊(cè)信息,必填項(xiàng)目必須填寫,如果用戶名重復(fù),兩次密碼輸入不同,則系統(tǒng)顯示請(qǐng)從新填寫。</p&g
65、t;<p> (4)注冊(cè)成功,頁(yè)面自動(dòng)跳轉(zhuǎn)回論壇首頁(yè)。</p><p><b> 瀏覽論壇</b></p><p> 用例標(biāo)識(shí):2.0參與者:管理員,注冊(cè)用戶,游客</p><p> 簡(jiǎn)要說明:此用例中操作者為管理員,注冊(cè)用戶,游客均可,系統(tǒng)以列表的方式顯示論壇的當(dāng)前狀態(tài)以及其他基本信息。</p>
66、<p><b> 基本事件流:</b></p><p> (1) 凡登陸本論壇者,都可以可以隨意瀏覽本論壇基本信息。</p><p> (2) 管理論壇的信息只有管理員登陸后可見。</p><p> (3) 論壇模塊信息只有注冊(cè)用戶或管理員可見。</p><p><b> 發(fā)表回復(fù)</
67、b></p><p> 用例標(biāo)識(shí):3.0參與者:管理員,注冊(cè)用戶</p><p> 簡(jiǎn)要說明:瀏覽本站的用戶可以在自己感興趣的論壇區(qū)中查看主題貼子并發(fā)表回復(fù)。</p><p><b> 基本事件流:</b></p><p> (1) 登陸網(wǎng)站首頁(yè),在首頁(yè)的右上方的登陸框內(nèi)登陸用戶的用戶名和密碼。&
68、lt;/p><p> (2) 登陸成功后,可選擇相關(guān)的論壇模塊,點(diǎn)擊即可進(jìn)入。</p><p> (3) 進(jìn)入相應(yīng)的論壇模塊后,可以查看已發(fā)的主題貼子并進(jìn)行回復(fù)。</p><p><b> 發(fā)表主題</b></p><p> 用例標(biāo)識(shí):4.0參與者: 管理員,注冊(cè)用戶</p><p>
69、; 簡(jiǎn)要說明:管理人員通過輸入要查詢項(xiàng)和查詢條件,來完成對(duì)系統(tǒng)中某類信息的查詢,結(jié)果采用列表的方式顯示。</p><p><b> 基本事件流:</b></p><p> (1) 登陸網(wǎng)站首頁(yè),在首頁(yè)的右上方的登陸框內(nèi)登陸用戶的用戶名和密碼。</p><p> (2) 登陸成功后,可選擇相關(guān)的論壇模塊,點(diǎn)擊即可進(jìn)入。</p>
70、<p> (3) 進(jìn)入相應(yīng)的論壇模塊后,點(diǎn)擊論壇右上角的發(fā)布主題選項(xiàng)即可發(fā)布新主題。</p><p><b> 用戶管理</b></p><p> 用例標(biāo)識(shí):5.0參與者:管理員</p><p> 簡(jiǎn)要說明:管理員可以對(duì)已經(jīng)在本論壇的注冊(cè)的用戶進(jìn)行管理,根據(jù)不同的需求和形式,進(jìn)行不同的管理。</p>
71、<p><b> 基本事件流:</b></p><p> (1) 點(diǎn)擊網(wǎng)頁(yè)右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)如管理員管理頁(yè)面。</p><p> (2) 進(jìn)入管理員操作界面以后,單擊左側(cè)的“用戶管理”按鈕。</p><p> (3) 可以根據(jù)用戶對(duì)論壇的貢獻(xiàn)進(jìn)行提升為管理員或刪除。</p><p&g
72、t;<b> 主題管理</b></p><p> 用例標(biāo)識(shí):6.0參與者:管理員</p><p> 簡(jiǎn)要說明:管理員可以通過管理員登陸系統(tǒng)進(jìn)入主題管理系統(tǒng),查看并管理用戶發(fā)表的主題。</p><p><b> 基本事件流:</b></p><p> (1)點(diǎn)擊網(wǎng)頁(yè)右上方的的“管理員登
73、陸”導(dǎo)航按鈕,然后進(jìn)入管理員管理頁(yè)面。</p><p> (2 進(jìn)入管理員操作界面以后,單擊左側(cè)的“主題管理”按鈕。</p><p> (3) 可對(duì)不文明的主題或惡意宣傳的主題進(jìn)行刪除。</p><p><b> 欄目管理</b></p><p> 用例標(biāo)識(shí):7.0參與者:管理員</p>
74、<p> 簡(jiǎn)要說明:管理員可以對(duì)某個(gè)欄目做出杰出貢獻(xiàn)者進(jìn)行任命,將其設(shè)為版主。</p><p><b> 基本事件流:</b></p><p> (1) 點(diǎn)擊網(wǎng)頁(yè)右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)入管理員管理頁(yè)面。</p><p> (2) 進(jìn)入管理員操作界面以后,單擊左側(cè)的“欄目管理”按鈕。</p>&l
75、t;p> (3) 進(jìn)入欄目管理頁(yè)面后,可以將用戶設(shè)置為某個(gè)欄目模塊的版主,其名字會(huì)顯示在論壇首頁(yè)欄目名字的下方。</p><p><b> 回復(fù)管理</b></p><p> 用例標(biāo)識(shí):8.0參與者:管理員</p><p> 簡(jiǎn)要說明:管理員可以通過管理員登陸系統(tǒng)進(jìn)入主題管理系統(tǒng),查看并管理用戶發(fā)表的主題。</p&
76、gt;<p><b> 基本事件流:</b></p><p> (1)點(diǎn)擊網(wǎng)頁(yè)右上方的的“管理員登陸”導(dǎo)航按鈕,然后進(jìn)入管理員管理頁(yè)面。</p><p> (2 進(jìn)入管理員操作界面以后,單擊左側(cè)的“回復(fù)管理”按鈕。</p><p> (3) 可對(duì)不文明的回復(fù)或惡意宣攻擊他人,傳播不良文化等的回復(fù)進(jìn)行刪除。</p>
77、;<p><b> 用戶注銷</b></p><p> 用例標(biāo)識(shí):9.0參與者:注冊(cè)用戶,管理員</p><p> 簡(jiǎn)要說明:注冊(cè)用戶和管理員在結(jié)束操作以后可以點(diǎn)擊“注銷”按鈕退出登錄。</p><p><b> 基本事件流:</b></p><p> (1) 用戶
78、或管理員已經(jīng)登陸本論壇系統(tǒng)。</p><p> (2) 確定執(zhí)行的所有操作均已完成。</p><p> (3) 點(diǎn)擊論壇首頁(yè)左上方的“注銷”按鈕,安全退出。</p><p><b> 文件夾組織結(jié)構(gòu)</b></p><p> 在開發(fā)系統(tǒng)前,將可能用到的文件夾創(chuàng)建出來,可以方便以后的開發(fā)工作,還可以規(guī)范論壇的整體架
79、構(gòu),BBS系統(tǒng)的文件夾組織結(jié)構(gòu)如圖3.2所示。</p><p> 圖 3.2 論壇組織文件夾結(jié)構(gòu)圖</p><p><b> 非功能性需求描述</b></p><p> 非功能性需求在整個(gè)系統(tǒng)中占有非常重要的位置,對(duì)系統(tǒng)的非功能性需求的滿足是系統(tǒng)成功的基礎(chǔ),下面列出本系統(tǒng)的非功能性需求:</p><p> (1)
80、 系統(tǒng)能夠長(zhǎng)時(shí)間的持續(xù)工作。</p><p> 對(duì)于企業(yè)應(yīng)用級(jí)的系統(tǒng)來說,系統(tǒng)的穩(wěn)定性與正確性一樣重要。考慮到本系統(tǒng)的實(shí)際情況,服務(wù)器端必須能夠在24*7小時(shí)內(nèi)不間斷地穩(wěn)定運(yùn)行。</p><p> (2) 客戶端信息更新更新等待時(shí)間不能大于5秒。</p><p> (3) 系統(tǒng)要采用B/S架構(gòu)進(jìn)行構(gòu)建。</p><p> 考慮到B/S
81、架構(gòu)部署以及升級(jí)的簡(jiǎn)單化,所以要求采用B/S架構(gòu)進(jìn)行構(gòu)建。</p><p><b> 本章小結(jié)</b></p><p> 本章首先介紹了系統(tǒng)的實(shí)現(xiàn)目標(biāo)、運(yùn)行環(huán)境和開發(fā)環(huán)境。然后通過用例分析的方式獲取和分析了系統(tǒng)的功能性需求,對(duì)需求進(jìn)行了補(bǔ)充,提出了系統(tǒng)的非功能性需求。從而對(duì)系統(tǒng)的整體需求有了完整的了解。</p><p> 從本章的需求分析
82、中可以得出,系統(tǒng)的功能性需求相對(duì)來說比較易于實(shí)現(xiàn),而非功能性需求比較嚴(yán)格。對(duì)于非功能性需求影響最大的就是系統(tǒng)的架構(gòu),所以在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)時(shí),要在對(duì)系統(tǒng)的架構(gòu)給予充分重視的前提下,實(shí)現(xiàn)功能性需求。</p><p><b> 系統(tǒng)設(shè)計(jì)</b></p><p><b> 系統(tǒng)設(shè)計(jì)原則</b></p><p> (一)低成本
83、。隨著技術(shù)的進(jìn)步和系統(tǒng)復(fù)雜性的增加,論壇成本在整個(gè)系統(tǒng)中所占的比重越來越大,企業(yè)應(yīng)用中已經(jīng)達(dá)到80%左右擁有屬于自己的論壇,而且有繼續(xù)增加的趨勢(shì)。為了降低系統(tǒng)的成本,系統(tǒng)中各個(gè)模塊都采用開源項(xiàng)目中的組件完成。它們不僅能夠提供比較完善的功能,而且還能根據(jù)系統(tǒng)需求進(jìn)行適當(dāng)擴(kuò)展。</p><p> (二) 規(guī)范性。從使用周期上來考慮,論壇系統(tǒng)維護(hù)階段在軟件生命周期或生存期中占較大比重,有的可達(dá)系統(tǒng)生存周期的50-70
84、%。所以需要系統(tǒng)在設(shè)計(jì)的過程中積極遵循各種規(guī)范,保證后期維護(hù)和開發(fā)人員能夠快速整理和修改。</p><p> (三) 易擴(kuò)展。系統(tǒng)的設(shè)計(jì)直接決定可擴(kuò)展性??蓴U(kuò)展性是軟件工程追求的目標(biāo),能夠大大提高系統(tǒng)的復(fù)用程度,較低開發(fā)成本。本系統(tǒng)中采用標(biāo)準(zhǔn)的Struts 框架作為服務(wù)器端的容器,其中的提供了可擴(kuò)展的Action類,用戶處理特定的HTTP請(qǐng)求。另外系統(tǒng)采用分層機(jī)制設(shè)計(jì),建立專門的數(shù)據(jù)訪問層、服務(wù)層、業(yè)務(wù)邏輯層等
85、,采用設(shè)計(jì)模式中的思想優(yōu)化設(shè)計(jì),從而最大程度上提高系統(tǒng)可擴(kuò)展性。</p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 數(shù)據(jù)是系統(tǒng)的基礎(chǔ),數(shù)據(jù)庫(kù)設(shè)計(jì)關(guān)系到系統(tǒng)開發(fā)的成敗,所以數(shù)據(jù)庫(kù)設(shè)計(jì)這一環(huán)節(jié)在系統(tǒng)開發(fā)中顯得尤為重要。數(shù)據(jù)庫(kù)設(shè)計(jì)就像一座建筑的地基一樣,如果設(shè)計(jì)不合理,將會(huì)影響到整個(gè)系統(tǒng)開發(fā)的全過程,甚至?xí)o后期維護(hù)帶來極大的不便。</p>
86、<p><b> 數(shù)據(jù)庫(kù)分析</b></p><p> 本系統(tǒng)采用MySql數(shù)據(jù)庫(kù),相對(duì)于Oracle等大型數(shù)據(jù)庫(kù)來講,MySql數(shù)據(jù)庫(kù)更適用于中小型系統(tǒng),其存取數(shù)據(jù)的方便、快捷為系統(tǒng)開發(fā)帶來了便利。由于本系統(tǒng)數(shù)據(jù)量并不算龐大,為了減少工程成本,所以選擇使用MySql數(shù)據(jù)庫(kù)。</p><p><b> 數(shù)據(jù)庫(kù)概念設(shè)計(jì)</b><
87、;/p><p> 根據(jù)以上對(duì)系統(tǒng)所做的需求分析、流程設(shè)計(jì)及功能結(jié)構(gòu)的確定,每個(gè)功能模塊可以抽象出一個(gè)或多個(gè)實(shí)體對(duì)象,例如用戶、論壇、主題、回復(fù)主題實(shí)體對(duì)象等。這些實(shí)體對(duì)象彼此互相聯(lián)系,并且最重將被創(chuàng)建成數(shù)據(jù)表結(jié)構(gòu)。</p><p> (1) 用戶實(shí)體對(duì)象</p><p> 用戶實(shí)體包括用戶編號(hào)、用戶名、用戶簽名、用戶頭像、用戶級(jí)別等用戶相關(guān)屬性。用戶編號(hào)是識(shí)別用戶
88、實(shí)體的唯一編號(hào),也就是數(shù)據(jù)表的主鍵,它的數(shù)據(jù)類型為int型,并且具有自增特性;用戶級(jí)別屬性是標(biāo)明用戶在本系統(tǒng)中的功能管線;其他屬性都是描述此用戶相關(guān)信息的屬性,例如用戶頭像、用戶聯(lián)系地址、用戶個(gè)人主業(yè)等。用戶實(shí)體E-R圖如圖4.1所示。</p><p> 圖4.1 用戶實(shí)體E-R圖</p><p> (2) 論壇實(shí)體對(duì)象</p><p> 論壇實(shí)體對(duì)象包括論
89、壇編號(hào)、論壇名稱、版主、創(chuàng)建時(shí)間等相關(guān)屬性。論壇實(shí)體對(duì)象中的論壇編號(hào)屬性與用戶實(shí)體對(duì)象中的用戶編號(hào)屬性類型相同,都為int型,并具有自增特性;其他屬性都是描述此論壇的相關(guān)信息。論壇實(shí)體E-R圖如圖4.2所示。</p><p> 圖4.2 論壇實(shí)體E-R圖</p><p> (3) 主題實(shí)體對(duì)象</p><p> 主題實(shí)體包括主題編號(hào)、主題標(biāo)題、主題內(nèi)容、主題作
90、者、發(fā)表時(shí)間、論壇編號(hào)、論壇名稱、人氣等相關(guān)屬性。主題編號(hào)屬性類型為int型,并且具有自增特性;論壇編號(hào)屬性標(biāo)明此主題發(fā)表在哪個(gè)論壇中;由于在使用主題實(shí)體對(duì)象時(shí),頻繁用到論壇實(shí)體對(duì)象中的論壇名稱屬性,所以在這里將論壇名稱屬性定義到主題實(shí)體中;人氣屬性用于標(biāo)明此主題被訪問過的次數(shù);其他屬性都是描述主題實(shí)體對(duì)象的相關(guān)信息。主題實(shí)體E-R圖如圖4.3所示。</p><p> 圖4.3 主題實(shí)體E-R圖</p&g
91、t;<p> (4) 回復(fù)主題實(shí)體對(duì)象</p><p> 回復(fù)主題實(shí)體對(duì)象包括回復(fù)主題編號(hào)、回復(fù)主題標(biāo)題、回復(fù)主題內(nèi)容、回復(fù)主題作者、回復(fù)主題時(shí)間、主題編號(hào)、主題名稱、回復(fù)作者心情等屬性。除了主題編號(hào)與主題名稱屬性之外,其余屬性都是描述回復(fù)主題實(shí)體對(duì)象相關(guān)信息。回復(fù)主題實(shí)體E-R圖如圖4.4所示。</p><p> 圖4.4 回復(fù)主題實(shí)體E-R圖</p>
92、<p> PowerDesigner數(shù)據(jù)庫(kù)建模</p><p> 在數(shù)據(jù)庫(kù)概念設(shè)計(jì)中已經(jīng)分析了用戶、論壇、主題、回復(fù)主題等主要數(shù)據(jù)庫(kù)實(shí)體對(duì)象,這些實(shí)體對(duì)象最終將被定義為數(shù)據(jù)表,形成整體的數(shù)據(jù)結(jié)構(gòu)。在這里,本人使用PowerDesigner軟件完成數(shù)據(jù)庫(kù)建模工作。建模結(jié)構(gòu)如圖4.5所示。</p><p> 圖4.5 數(shù)據(jù)庫(kù)模型圖</p><p> 圖
93、9.5中的數(shù)據(jù)庫(kù)模型描述了整個(gè)BBS系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),包括用戶、論壇、主題、主題回復(fù)等實(shí)體,這4個(gè)實(shí)體之間沒有直接關(guān)聯(lián)關(guān)系,這就意味著開發(fā)過程比較簡(jiǎn)單。</p><p><b> 創(chuàng)建數(shù)據(jù)庫(kù)</b></p><p> 通過PowerDesigner建模后,可以使用此軟件生成相應(yīng)的數(shù)據(jù)庫(kù)腳本,本人將本系統(tǒng)數(shù)據(jù)庫(kù)腳本命名為db_bbs.sql,然后使用腳本在MySql中
94、創(chuàng)建數(shù)據(jù)庫(kù)。具體步驟如下:</p><p> (1) 選擇“開始”/“程序”/MySQL/MySQL Server 5.0/MySQL Command Line Client命令,彈出窗口,輸入root用戶密碼,窗口提示符變?yōu)椤癿ysql>”,這表示已經(jīng)正確連接了MySQL數(shù)據(jù)庫(kù)。</p><p> (2) 在提示符“mysql>”后輸入如下命令:</p>&
95、lt;p> use db_bbs;</p><p> 然后按回車鍵,此時(shí)使用的數(shù)據(jù)庫(kù)為db_bbs。</p><p> (3) 將db_bbs.sql放入MySQL根目錄中的bin路徑下,在提示符“mysql>”后輸入如下命令:</p><p> source db_bbs.sql;</p><p> 按回車鍵,這樣數(shù)據(jù)
96、庫(kù)就建立完成。</p><p> 用戶發(fā)布主題模塊設(shè)計(jì)</p><p><b> 發(fā)布主題概述</b></p><p> 發(fā)布主題模塊包括發(fā)布新主題與回復(fù)主題兩個(gè)功能。發(fā)布新主題即用戶發(fā)表一篇新的文章,回復(fù)主題即用戶回復(fù)已發(fā)表的文章,兩者雖然功能不同,但都提交到相同的Action控制器。發(fā)布主題頁(yè)面如圖4.6所示。</p>
97、<p> 圖4.6 發(fā)表主題頁(yè)面</p><p><b> 發(fā)布主題技術(shù)分析</b></p><p> 當(dāng)在導(dǎo)航欄中單擊右側(cè)的“發(fā)布主題”連接時(shí),將發(fā)出newtopic.do請(qǐng)求,進(jìn)入發(fā)表主題頁(yè)面,此時(shí)實(shí)現(xiàn)的是“發(fā)布新主題”功能。另外,“發(fā)布新主題”功能只提供給登錄用戶,普通用戶沒有“發(fā)布新主題”的權(quán)限。</p><p> 當(dāng)
98、用戶在主題瀏覽頁(yè)面單擊“回復(fù)”鏈接時(shí),同樣將發(fā)出newtopic.do請(qǐng)求,為了在Action控制器中區(qū)別兩種功能,本人為回復(fù)請(qǐng)求加上一個(gè)參數(shù)type,系統(tǒng)自動(dòng)根據(jù)struts-config.xml配置信息將參數(shù)type值提交到Action控制器中,然后根據(jù)type的值在控制器中調(diào)用相應(yīng)的業(yè)務(wù)邏輯處理。</p><p> 當(dāng)用戶輸入主題相關(guān)信息后,發(fā)送newAticle.do請(qǐng)求,在指定控制器中調(diào)用相應(yīng)的業(yè)務(wù)邏
99、輯處理,將用戶發(fā)表的文章插入數(shù)據(jù)庫(kù)。</p><p><b> 本章小結(jié)</b></p><p> 本章介紹了論壇系統(tǒng)設(shè)計(jì)的過程,根據(jù)系統(tǒng)設(shè)計(jì)所提出的三個(gè)原則對(duì)系統(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ì)理念和主要功能需要。</p><p
100、> 考慮到論壇系統(tǒng)的可擴(kuò)展性,大部分系統(tǒng)設(shè)計(jì)的可復(fù)用性較強(qiáng),提升了整個(gè)系統(tǒng)的復(fù)用性和可擴(kuò)展性,為以后系統(tǒng)升級(jí)奠定了基礎(chǔ)。</p><p><b> 系統(tǒng)實(shí)現(xiàn)</b></p><p> 根據(jù)對(duì)系統(tǒng)分析與設(shè)計(jì),本章對(duì)系統(tǒng)中相關(guān)部分的實(shí)現(xiàn)情況做了詳細(xì)的介紹。</p><p><b> 發(fā)布主題實(shí)現(xiàn)過程</b><
101、;/p><p> 發(fā)布主題功能模塊主要通過如下組件實(shí)現(xiàn):</p><p> 視圖組件:newaticle.jsp。</p><p> 控制器組件:NewtopicAction.java、NewAticleAction.java。</p><p> FormBeanAction:NewTopicForm.java、NewAticleForm
102、.java。</p><p> 業(yè)務(wù)邏輯類:TopicListBean.java、LoginBean.java、umlChange.java。</p><p> 配置發(fā)布主題模塊組件</p><p> 在struts-config.xml配置文件中,有機(jī)地將這4個(gè)組件結(jié)合起來。關(guān)鍵代碼如下:</p><p> <form-bea
103、n name="newtopicForm" type="com.wsy.struts.form.NewtopicForm" /> <form-bean name="NewtopicForm" type="com.wsy.struts.form.NewAticleForm" /></p><p><b>
104、<action</b></p><p> attribute="newtopicForm"</p><p> input="/newarticle.jsp"</p><p> name="newtopicForm"</p><p> path="/
105、newtopic"</p><p> scope="request"</p><p> type="com.wsy.struts.action.NewtopicAction" /></p><p> <action path="/newAticle" </p>&l
106、t;p> type="com.wsy.struts.action.NewAticleAction" </p><p> input="/newarticle.jsp"</p><p> name="newtopicForm"</p><p> attribute="newtopicF
107、orm"</p><p> scope="request" ></p><p> <forward name="success" path="/topicList.jsp" /> </p><p> <forward name="responsesucce
108、ss" path="/responselist.jsp" /></p><p><b> </action></b></p><p><b> 創(chuàng)建視圖組件</b></p><p> 在發(fā)布主題功能模塊中,視圖組件為newarticle.jsp文件,newarticle
109、.jsp文件中包括發(fā)布主題表單,其中本人為用戶輸入主題內(nèi)容提供了相應(yīng)的模式選擇,例如字體、字體大小設(shè)置等,這一功能由JavaScript代碼來實(shí)現(xiàn)。點(diǎn)擊相對(duì)應(yīng)的設(shè)置時(shí),會(huì)彈出消息框,用戶可在消息框中填寫內(nèi)容,如圖5.1所示:</p><p> 圖5.1 設(shè)置字體消息框</p><p><b> 關(guān)鍵代碼如下:</b></p><p> f
110、unction change_B(){</p><p> var text=window.prompt("請(qǐng)輸入要加粗顯示的文字!","");</p><p> if(text!="") {</p><p> text1="[_[strong]_]"+text+"[_[
111、/strong]_]";</p><p> if(text!=null) newtopicForm.content.value=newtopicForm.content.value+text1;</p><p><b> } </b></p><p><b> }</b></p&g
112、t;<p> function change_I(){</p><p> var text=window.prompt("請(qǐng)輸入要斜體顯示的文字!","");</p><p> if(text!="") {</p><p> text1="[_[em]_]"+tex
113、t+"[_[/em]_]";</p><p> if(text!=null)</p><p> newtopicForm.content.value=newtopicForm.content.value+text1;</p><p><b> } </b></p><p><b>
114、}</b></p><p> function change_U() {</p><p> var text=window.prompt("請(qǐng)輸入要以下劃線顯示的文字!","");</p><p> if(text!="") {</p><p> text1=&q
115、uot;[_[u]_]"+text+"[_[/u]_]";</p><p> if(text!=null)</p><p> newtopicForm.content.value=newtopicForm.content.value+text1;</p><p><b> } </b></p>
116、<p><b> }</b></p><p> 上述代碼將用戶輸入主題內(nèi)容以“"[_[u]_]"+text+"[_[/u]_]"”樣式傳入ActionForm Bean中,然后提交到Action控制器中將數(shù)據(jù)插入數(shù)據(jù)庫(kù)中,當(dāng)用戶從數(shù)據(jù)庫(kù)中取這些數(shù)據(jù)時(shí),“[_[u]_]”不是有效的HTML代碼,此時(shí)需要對(duì)這個(gè)字符串進(jìn)行轉(zhuǎn)換操作,用到輔助類c
117、om.wsy.struts.util.umlChange.java。關(guān)鍵代碼如下:</p><p> public class umlChange {</p><p> public String Change(String str){</p><p> String s=str.replaceAll("\\[\\_\\[", "
118、<").replaceAll("\\]\\_\\]", ">").replaceAll("\\|\\_\\|", " ");</p><p> return s.trim();</p><p><b> }</b></p><p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于jsp的bbs論壇的設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- jsp論壇畢業(yè)論文--jsp技術(shù)實(shí)現(xiàn)論壇及優(yōu)化
- 基于jsp的bbs論壇管理系統(tǒng) 畢業(yè)論文
- 畢業(yè)論文——學(xué)生論壇的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文——學(xué)生論壇的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文——學(xué)生論壇的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--基于jsp的學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- jsp論壇畢業(yè)論文
- 基于jsp的個(gè)人博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[畢業(yè)論文
- 基于jsp的個(gè)人博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[畢業(yè)論文]
- 基于jsp的個(gè)人博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 基于jsp的網(wǎng)絡(luò)商店系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- 基于jsp網(wǎng)上購(gòu)物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于jsp的倉(cāng)儲(chǔ)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于jsp的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 論壇系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 論壇管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文范文——基于jsp的bbs專題論壇系統(tǒng)
- 基于jsp的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 基于jsp技術(shù)的學(xué)生網(wǎng)上選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(畢業(yè)論文)
評(píng)論
0/150
提交評(píng)論