

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 當(dāng)今社會正處在網(wǎng)絡(luò)時代,信息化大潮席卷全球,網(wǎng)絡(luò)正以前所未有的速度在我國普及開來。網(wǎng)站以其獨特的優(yōu)勢在信息化的過程中占有重要的一席。為了方便信息的交流,在結(jié)合JAVA和S.S.H 技術(shù)之下開發(fā)了這個快捷、界面友好的交流系統(tǒng),實現(xiàn)了一個功能相對齊全的論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗。</p&
2、gt;<p> 論壇在Struts+Hibernate+Spring擴展Struts框架的基礎(chǔ)上,用當(dāng)今主流的網(wǎng)站開發(fā)技術(shù)jsp語言進行開發(fā)。論壇將采用B/S體系結(jié)構(gòu),人們通過瀏覽器就可以訪問教學(xué)網(wǎng)站的主頁,保證的服務(wù)器的安全。數(shù)據(jù)庫采用免費,小巧,易用的mysql數(shù)據(jù)庫。該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點和對論壇的主題發(fā)表意見,我們還可以對網(wǎng)友的問題及時地解決,獲取對自己有用的知識。該論壇還有一些特殊的功
3、能,如在線人員顯示、強大的搜索功能。本網(wǎng)站嚴(yán)格按照軟件項目開發(fā)的流程進行開發(fā),對于網(wǎng)站開發(fā)的可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計以及對網(wǎng)站的測試與維護都有詳細(xì)的論述和實現(xiàn)過程。</p><p> 本套論壇的優(yōu)點在于它具有強大的可擴展性和可維護性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><p> 關(guān)鍵詞:BBS ,S.S.H(Struts ,Hibernate ,Sprin
4、g),JAVA , MySQL ,JSP</p><p><b> 目 錄</b></p><p> 摘要.................................................................................................................................
5、.Ⅰ</p><p> Abstract…………………………...………………...…………………………………..Ⅱ</p><p> 目 錄…………….……………………………………………………………………Ⅲ</p><p> 第一章系統(tǒng)概述……...…….…………………………………...……….…….………..1</p><p>
6、 1.1總體概述……...………………………………………………………...……....1</p><p> 1.2開發(fā)背景……………………………………………………....……..….….…..2</p><p> 1.3開發(fā)目的……...……………………………………..…………………….…....3</p><p> 第二章系統(tǒng)分析……......…...……
7、...……………...……….....……………..………….4</p><p> 2.1技術(shù)可行性分析……...………………………………………………………...4</p><p> 2.1.1開發(fā)語言綜述…………………………………………………………....4</p><p> 2.1.2 MySQL數(shù)據(jù)庫的選用……………………………………………….….5&l
8、t;/p><p> 2.1.3 S.S.H框架優(yōu)點…………………………………………………………..6</p><p> 2.1.4系統(tǒng)層次設(shè)計………………………………………...………………….9</p><p> 2.1.5 技術(shù)可行性綜述……………………………………..………………...10</p><p> 2.2時間可行性(項目開
9、發(fā)計劃)…………………………………………….……10</p><p> 2.3系統(tǒng)需求分析…………………………………………………………...…….10</p><p> 2.3.1 系統(tǒng)開發(fā)運行環(huán)境………………………………………………..…...10</p><p> 2.3.2業(yè)務(wù)描述………………………………………………………………..11</p>
10、;<p> 2.3.3 系統(tǒng)功能概述……………………………………………………….....12</p><p> 2.3.4 數(shù)據(jù)流程……………………………………………………………….12</p><p> 2.4系統(tǒng)總體結(jié)構(gòu)分析結(jié)論……………………………………………………....15</p><p> 第三章系統(tǒng)設(shè)計……………………………………
11、………………………………….16</p><p> 3.1數(shù)據(jù)庫設(shè)計……………………….…………………………………………...16</p><p> 3.1.1概念模型設(shè)計(E-R圖)………………………………..………………..16</p><p> 3.1.2數(shù)據(jù)庫表及關(guān)系建立…………………………………..………………18</p><p&
12、gt; 3.1.3詳細(xì)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計…………………………………..………………18</p><p> 3.2系統(tǒng)概要設(shè)計…………………………………………….…….……………..23</p><p> 3.2.1功能模塊設(shè)計……………………………………………..……………23</p><p> 3.2.2系統(tǒng)界面設(shè)計……………………………………………..………
13、……26</p><p> 3.2.3系統(tǒng)的組件設(shè)計…………………………………………..……………28</p><p> 第四章系統(tǒng)的詳細(xì)設(shè)計與實現(xiàn)……………………………………………………….31</p><p> 4.1系統(tǒng)框架實現(xiàn)…………………………………………………….…………...31</p><p> 4.1.1底層數(shù)據(jù)庫的
14、建立……………………………………………………..31</p><p> 4.1.2持久化層的建立(hibernate)…………………………………………....32</p><p> 4.1.3業(yè)務(wù)邏輯層的建立……………………………………………………..33</p><p> 4.1.4表示層的建立………………………………………………………..…36</p
15、><p> 4.2系統(tǒng)功能模塊實現(xiàn)…………………………………………..…………..…….36</p><p> 4.2.1會員模塊實現(xiàn)…………………………………………………………...36</p><p> 4.2.2帖子模塊實現(xiàn)…………………………………………………………...39</p><p> 4.2.3后臺管理模塊實現(xiàn)……………
16、………………………………………...42</p><p> 4.3系統(tǒng)設(shè)計總結(jié)………………………………………………...……………….44</p><p> 第五章系統(tǒng)的調(diào)試與測試……………………………………………….……………45</p><p> 5.1測試概述……………………………………………………………………….45</p><p&
17、gt; 5.1.1軟件測試的目的………………………………………………………...45</p><p> 5.1.2軟件測試的任務(wù)………………………………………………………...45</p><p> 5.1.3測試環(huán)境………………………………………………………………...46</p><p> 5.2單元測試…………………………………………………………..…
18、..……… 46</p><p> 5.2.1黑盒測試………………………………………………………………...46</p><p> 5.2.2白盒測試………………………………………………………………...47</p><p> 5.2.3模塊接口測試…………………………………………………………...48</p><p> 5.3集成測
19、試…………………………………………………………..…..……….50</p><p> 5.3.1自頂向下集成…………………………………………………………...50</p><p> 5.3.2確認(rèn)測試標(biāo)準(zhǔn)…………………………………………………………...51</p><p> 第六章結(jié)論………………………………………………………………….…………52<
20、/p><p> 參考文獻……………………………………………………………………….………53</p><p> 致 謝………………………………………………………………………………….54</p><p> 附錄A 英文文獻……………………………………………………………………...55</p><p> 附錄B 翻譯………………………………
21、…………………………………………...68</p><p> 第 1 章 系統(tǒng)概述</p><p><b> 總體概述</b></p><p> 進入二十一世紀(jì),計算機技術(shù)迅速向著網(wǎng)絡(luò)化、集成化方向發(fā)展。傳統(tǒng)的單機版應(yīng)用軟件正在逐漸退出舞臺,取而代之的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中似乎存在
22、著兩種不同的趨勢,一種是稱為客戶端——服務(wù)器的C/S結(jié)構(gòu),這類軟件具有結(jié)構(gòu)嚴(yán)謹(jǐn),運行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點,被廣泛運用于局域網(wǎng)中。而另一種,也是本畢業(yè)設(shè)計所采用的,是稱為瀏覽器——服務(wù)器的B/S結(jié)構(gòu),它的特點是在客戶端直接采用了功能強大的瀏覽器軟件作為界面,其優(yōu)點在于軟件開發(fā)效率高,客戶端不受操作平臺的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見效快,用戶可以不必進行服務(wù)
23、器方面的投資,而是去租用,甚至是免費使用ISP的服務(wù)器資源,因而受到越來越多中小型單位的青睞。</p><p> 隨著Internet技術(shù)的不斷發(fā)展,以及用戶群爆炸性地增長,網(wǎng)絡(luò)不再僅僅是信息的被動獲取來源,更成為人們探討間題、交換觀點的場所,其中,網(wǎng)上論壇扮演了極其重要的角色,隨著時間的推移,論壇站點中積存了豐富的信息資源,不但有各類技術(shù)資料和新聞文檔,還包含著用戶的判斷和評論,論壇站點己成為Web信息庫的重
24、要組成部分,自網(wǎng)上論壇誕生20多年以來,隨著Web技術(shù)的發(fā)展,己經(jīng)由原來簡單的電子公告板系統(tǒng)發(fā)展為功能豐富的網(wǎng)上論壇和虛擬社區(qū)模式。各種論壇隨著網(wǎng)絡(luò)迅速發(fā)展,幾乎充實著生活工作的每一個方面,無論是商界、政界,還是娛樂界,都有各種論壇?;ヂ?lián)網(wǎng)正在融入我們的生活,網(wǎng)絡(luò)提供給我們的不只是一個獲取信息的來源,而且還是一個可以相互交流的空間,網(wǎng)上論壇正是一種供人們進行交流的網(wǎng)絡(luò)空間, 影響和改變著我們的生活。</p><p&g
25、t;<b> 開發(fā)背景</b></p><p> 1978年在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系統(tǒng)。之后隨著蘋果機的問世,開發(fā)出基于蘋果機的Bulletin Board System和大眾信息系統(tǒng)(Peoples Message System)2種
26、BBS系統(tǒng)。1981年IBM個人計算機誕生時,并沒有自己的BBS系統(tǒng)。直到1982年,Buss Lane 才用Basic語言為IBM個人計算機編寫了一個原型程序。其后經(jīng)過幾番增修,終于在1983年通過Capital PC User Group(CPCUG)的Communication Special Interest Group會員的努力,改寫出了個人計算機系統(tǒng)的BBS。經(jīng)Thomas Mach整理后,終于完成了個人計算機的第1版BBS
27、系統(tǒng)——RBBS-PC。這套BBS系統(tǒng)的最大特色是其源程序全部公開,有利于日后的修改和維護,因此后來在開發(fā)其他的BBS系統(tǒng)時都以此為框架,所以RBBS-PC贏得了BBS鼻祖的美稱。</p><p> 大約是從1991年開始,國內(nèi)開始了第一個BBS站。經(jīng)過長時間的發(fā)展,直到1995年,隨著計算機及其外設(shè)的大幅降價,BBS才逐漸被人們所認(rèn)識。1996年更是以驚人的速度發(fā)展起來。國內(nèi)的BBS站,按其性質(zhì)劃分,可以分為
28、2種:一種是商業(yè)BBS站,如新華龍訊網(wǎng);另一種是業(yè)余BBS站,如天堂資訊站。由于使用商業(yè)BBS站要交納一筆費用,而商業(yè)站所能提供的服務(wù)與業(yè)余站相比,并沒有什么優(yōu)勢,所以其用戶數(shù)量不多。多數(shù)業(yè)余BBS站的站長,基于個人關(guān)系,每天都互相交換電子郵件,漸漸地形成了一個全國性的電子郵件網(wǎng)絡(luò)China FidoNet(中國惠多網(wǎng))。于是,各地的用戶都可以通過本地的業(yè)余BBS站與遠(yuǎn)在異地的網(wǎng)友互通信息。這種跨地域電子郵件交流正是商業(yè)站無法與業(yè)余站相
29、抗衡的根本因素。由于業(yè)余BBS站擁有這種優(yōu)勢,所以使用者都更樂意加入。這里“業(yè)余”2字,并不是代表這種類型的BBS站的服務(wù)和技術(shù)水平是業(yè)余的,而是指這類BBS站的性質(zhì)。一般BBS站都是由志愿者開發(fā)的。他們付出的不僅是金錢,更多的是精力。其目的是為了推動中國計算機網(wǎng)絡(luò)的健康發(fā)展,提高廣大計算機用戶的應(yīng)用水平</p><p> 國內(nèi)的BBS站,大多數(shù)還是大型綜合性BBS站。隨著計算機的普及,特別是寬帶的普及,BBS
30、的活動將會進一步高漲。但是,隨之而來對專注于領(lǐng)域方面的BBS將會慢慢增加需求。盡管BBS站臺的數(shù)量在不斷增長,但BBS的發(fā)展過程,也出現(xiàn)了一些問題。由于國內(nèi)使用的BBS架站軟件,都是從國外引進的,因此沒有必要的中文說明。雖然一些熱心的站長翻譯了一些資料,但是僅靠這些是遠(yuǎn)遠(yuǎn)不夠的。另外,有些站臺的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有雷同之處。 </p><p> 而國內(nèi)自己開發(fā)的BBS基本上都是處于最原始的JSP
31、MODEL1模式, 這種模式是控制層與表示層合二為一,雖然開發(fā)簡單,但是擁有很差的擴展性,可維護性,這樣極大的限制了BBS站點的擴展,</p><p> 于是在這種情況下,本文提出了目前比較流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS論壇,本套論壇的優(yōu)點在于它具有強大的可擴展性和可維護性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><
32、p><b> 開發(fā)目的</b></p><p> 綜上所述,本文提出了目前比較流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS論壇,本套論壇的優(yōu)點在于它具有強大的可擴展性和可維護性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><p> 第 2 章 系統(tǒng)分析</p><p> 2
33、.1技術(shù)可行性分析</p><p> 2.1.1 開發(fā)語言綜述</p><p> 本系統(tǒng)是基于面向?qū)ο笏枷氲腏AVA語言中J2EE平臺進行編寫,J2EE平臺具有以下優(yōu)點</p><p> 1.簡化結(jié)構(gòu):J2EE平臺支持簡化的、基于組件開發(fā)模型,由于J2EE基于Java編程語言和J2SE平臺,它提供了編寫一次,隨處運行的可移植性,遵循J2EE標(biāo)準(zhǔn)的所有服務(wù)器都支
34、持該模型。EJB組件使編寫應(yīng)用程序更為簡單。盡管EJB體系結(jié)構(gòu)復(fù)雜,但應(yīng)用程序開發(fā)人員一般都必再編寫訪問系統(tǒng)服務(wù)的代碼,EJB容器會實現(xiàn)系統(tǒng)級的服務(wù),例如,事務(wù)、安全性等。另外,J2EE還支持異構(gòu)環(huán)境?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件或硬件,因此,設(shè)計合理的基于J2EE的程序只需開發(fā)一次就可以部署到各種平臺,這在典型的異構(gòu)企業(yè)算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)還允許客戶訂購與J2EE兼容的第三方的現(xiàn)成組件,把其部
35、署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。</p><p> 2. 提高開發(fā)效率:由于組件技術(shù)的使用,可以按照開發(fā)人員的技能對應(yīng)用程序開發(fā)進行分工,并行開發(fā),提供整體開發(fā)效率。例如:圖形設(shè)計師創(chuàng)建JSP模板,商業(yè)邏輯由該領(lǐng)域的專家完成,JSP頁面和EJB由Java工程師完成,應(yīng)用程序的裝配和部署由團隊中其他的成員完成,其中許多工作可以同時進行,有助于加速應(yīng)用程序的開發(fā)。</p><
36、p> 3.可移植性強:除了Java語言固有的可移植性外,EJB體系結(jié)構(gòu)在Bean和支持該Bean的容器之間提供了一套標(biāo)準(zhǔn)化的應(yīng)用程序編程接口,這使開發(fā)人員能夠?qū)ean從一種操作環(huán)境移植到另一種操作環(huán)境,而無需重新編寫其源代碼。</p><p> 4.重用性好:由于在EJB模型中,各個軟件組件都是嚴(yán)格分離的,因此,可以從現(xiàn)有的軟件組件裝配出服務(wù)器端應(yīng)用程序,這與從現(xiàn)有的JavaBean可以裝配出客戶端應(yīng)
37、用程序一樣,使軟件能夠重用。</p><p> 5.易于維護:基于組件的設(shè)計簡化了應(yīng)用程序的維護。由于組件可以被獨立地更新和替代,通過更新應(yīng)用程序中特定的組件,新的功能可以被很容易地增加。</p><p> 6.可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺,以便滿足那些在它們系統(tǒng)上進行商業(yè)動作大批新客戶?;贘2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上,例如,可被部署到高端UNIX或其他
38、的大型機系統(tǒng)上。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。</p><p> 7.被廣泛接受:主要的IT供應(yīng)用商都采納EJB體系結(jié)構(gòu),不同供應(yīng)商的產(chǎn)品只要符合EJB體系結(jié)構(gòu),就都是可互操作的。</p><p> 2.1.2 MySQL數(shù)據(jù)庫的選用</p><p>
39、 MySQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫中其中的一種,相比其它的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點,關(guān)鍵的是它是免費的,可以在Internet上免費下載到,并可免費使用,對于一般中小型,甚至大型應(yīng)用都能夠勝任</p><p> MySQL具有以下優(yōu)點:</p><p> 1、首先是速度。對于MySQL來說,速度是他們追求的主要目標(biāo)之一,基于這個原因,
40、MySQL在以前的文檔中也曾經(jīng)說過并不準(zhǔn)備支持事務(wù)和觸發(fā)器。但是在最新的文檔中,我們看到MySQL 4.0.2-alpha已經(jīng)開始支持事務(wù),而且在MySQL的TODO中,對觸發(fā)器、約束這樣的注定會降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL將有可能一直保持速度的優(yōu)勢。</p><p> 2、MySQL更流行,流行對于一個商業(yè)軟件來說,也是一個很重要的指標(biāo),流行意味著更多的用戶,意味著經(jīng)受了更多的
41、考驗,意味著更好的商業(yè)支持、意味著更多、更完善的文檔資料。</p><p> 3、MySQL更適宜在Windows環(huán)境下運行。MySQL作為一個本地的Windows應(yīng)用程序運行(在NT/Win2000/WinXP下,是一個服務(wù)), 在Windows運行中,MySQL更加的穩(wěn)定。</p><p> 4、MySQL使用了線程,在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲區(qū)域顯然要比在不同的進程
42、之間要快得多。</p><p> 5、MySQL可以適應(yīng)24/7運行。在絕大多數(shù)情況下,你不需要為MySQL運行任何清除程序。</p><p> 6、MySQL在權(quán)限系統(tǒng)上更為完善。MySQL允許你定義一整套的不同的數(shù)據(jù)級、表級和列級的權(quán)限。對于列級的權(quán)限。MySQL還允許你指定基于主機的權(quán)限。</p><p> 7、由于MySQL 4.0.2-alpha開始
43、支持事務(wù)的概念,因此事務(wù)對于MySQL不再僅僅成為劣勢。相反,因為MySQL保留無事務(wù)的表類型。這就為用戶提供了更多的選擇。 </p><p> 8、MySQL的MERGE表提供了一個獨特管理多個表的方法。</p><p> 9、MySQL的myisampack可以對只讀表進行壓縮,此后仍然可以直接訪問該表中的行。</p><p> 2.1.3 S.S.H
44、框架的優(yōu)點</p><p> S.S.H框架是J2EE應(yīng)用中struts+spring+hibernate三大免費開源框架的結(jié)合使用, 它可以看成工具,也是中間件。他是用來提高我們的開發(fā)效率,提高我們軟件產(chǎn)品的可維護性、可擴展性乃至敏捷性的。他們里面有很多優(yōu)秀的設(shè)計理念及模式應(yīng)用。比如,struts屬于MVC框架,關(guān)鍵是要了解MVC的概念及大致原理;而hibernate屬于ORM系統(tǒng),屬于持久層的解決方案,同樣
45、需要對ORM的概念及原理有一個總體的了解。而spring屬于應(yīng)用程序框架,其核心是IOC容器以及AOP,Spring中還集成了很多適用東西,比如對JDBC的封裝、自己的MVC、對動態(tài)語言的簡潔訪問等,</p><p> 它由以下3個框架構(gòu)成:</p><p> 1.Struts框架</p><p> Struts是Apache組織的一個開放源碼項目。Strut
46、s是一個比較好的MVC框架,提供了對開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Custom tag library。其基本構(gòu)成如圖2.1所示。</p><p> 圖2.1 Struts框架工作流程</p><p> 2.Spring框架</p><p> Spring 的核心是個輕量級(Lightweight)的容器(Containe
47、r),它是實現(xiàn)IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的實現(xiàn)方式,提供對持久層(Persistence)、事務(wù)(Transaction)的支持,提供MVC Web 框架的實現(xiàn),并對一些常用的企業(yè)服務(wù)API(Application Interface)提供一致的模型封裝,是一個全方位的應(yīng)用程序框架(Appl
48、ication framework),除此之外,對于現(xiàn)存的各種框架(Struts、JSF、Hibernate 等),Spring 也提供了與它們相整合的方案。</p><p> Spring框架由以下7個部分組成</p><p> 圖2.2 Spring框架構(gòu)成</p><p> 3.Hibernate框架</p><p> Hibe
49、rnate 是一個開放源碼的 ORM 持久層框架。作為優(yōu)秀的持久層框架實現(xiàn),Hibernate 框架提供了強大、高性能的對象到關(guān)系型數(shù)據(jù)庫的持久化服務(wù),開發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計進行持久層開發(fā)。簡單的說,Hibernate 只是一個將持久化類與數(shù)據(jù)庫表相映射的工具,每個持久化類實例均對應(yīng)于數(shù)據(jù)庫表中的一個數(shù)據(jù)行而已。用戶只需直接使用面向?qū)ο蟮姆椒ú僮鞔顺志没悓嵗?,即可完成對?shù)據(jù)庫表數(shù)據(jù)的插入、刪除、修改、讀取等操作。</p&
50、gt;<p> 圖2.3 Hibernate框架</p><p> 2.1.4 系統(tǒng)層次設(shè)計</p><p> 系統(tǒng)很據(jù)S.S.H框架的特點,決定使用四層結(jié)構(gòu),這樣做的優(yōu)點是</p><p> (1)可以分層開發(fā),訪問數(shù)據(jù)庫與業(yè)務(wù)邏輯實現(xiàn)能夠分開。</p><p> (2)提高代碼的復(fù)用</p><
51、p> 圖2.4 LeafBBS系統(tǒng)的分層結(jié)構(gòu)</p><p> 2.1.5 技術(shù)可行性綜述</p><p> 綜上所述,這些成熟的框架和優(yōu)秀的設(shè)計思想,為系統(tǒng)建設(shè)提供了技術(shù)條件。計算機等基礎(chǔ)設(shè)施的更新?lián)Q代也緊跟潮流的發(fā)展,這就為開發(fā)系統(tǒng)提供了堅實基礎(chǔ)。</p><p> 2.2時間可行性(項目開發(fā)計劃)</p><p> 本系
52、統(tǒng)的難點在于三大框架的結(jié)合使用,但目前有很多優(yōu)秀的書籍可供參閱,且參加過類似項目的開發(fā),預(yù)計本系統(tǒng)在規(guī)定時間內(nèi),基本能夠完成.</p><p><b> 開發(fā)計劃如下:</b></p><p> 2007.01.01-03.30 調(diào)研</p><p> 2007.04.31-04.13 資料查閱<
53、/p><p> 2007.04.16-04.20 方案設(shè)計</p><p> 2007.04.02-05.18 編寫程序</p><p> 2007.05.07-05.18 撰寫論文</p><p> 2.3 系統(tǒng)需求分析</p><p> 2.3.1 系統(tǒng)開
54、發(fā)運行環(huán)境</p><p> 鑒于系統(tǒng)的開發(fā)語言和數(shù)據(jù)庫,采用如下的開發(fā)環(huán)境</p><p> 開發(fā)環(huán)境: Windows 2000NT TomCat6.0 JDK1.5</p><p> 硬件實現(xiàn): PentiumⅣ2.4G 1G內(nèi)存 80G硬盤</p><p> 開發(fā)語言: Java</p><p>
55、; 數(shù) 據(jù) 庫: MySQL</p><p> 開發(fā)工具: MyEclipse5.1 </p><p> 預(yù)期成果: 一個可擴展的基于MVC模式的 BBS論壇</p><p> 2.3.2 業(yè)務(wù)描述</p><p> 對于訪問論壇的用戶,可分為注冊會員和為注冊的臨時用戶,這兩種用戶有著不同的權(quán)限,比如臨時用戶只能對帖子進行查看,
56、而注冊會員除了查看帖子之外,還可以發(fā)帖,回復(fù),查找用戶,并且可以對自己的注冊資料進行修改等等,</p><p><b> 系統(tǒng)的用例圖如下:</b></p><p> 圖2.5 系統(tǒng)用例圖</p><p> 2.3.3 系統(tǒng)功能概述</p><p> 本系統(tǒng)是一套網(wǎng)上交流的BBS軟件,根據(jù)用戶的需要和實際的管理條
57、件,應(yīng)由用戶功能實現(xiàn),帖子功能實現(xiàn)和后臺管理等幾個模塊所構(gòu)成,用戶可以對一些數(shù)據(jù)進行查找和修改,并且注冊的用戶可以對帖子進行特定的操作,而管理員可以對用戶和帖子進行相關(guān)的管理.</p><p> 鑒于本系統(tǒng)的性質(zhì),系統(tǒng)應(yīng)該實現(xiàn)以下功能.</p><p><b> 1.用戶功能實現(xiàn)</b></p><p><b> (1).用戶的
58、登錄</b></p><p><b> (2).用戶的注冊</b></p><p><b> (3).用戶的查找</b></p><p> (4).用戶資料的修改</p><p><b> 2.帖子功能實現(xiàn)</b></p><p>&
59、lt;b> (1).帖子的發(fā)表</b></p><p><b> (2).帖子的回復(fù)</b></p><p><b> (3).帖子的查找</b></p><p><b> 3.后臺管理</b></p><p><b> (1).用戶的管理
60、</b></p><p><b> (2).帖子的管理</b></p><p> (3).論壇信息的管理</p><p><b> (4).圖片的管理</b></p><p> 2.3.4 數(shù)據(jù)流程</p><p> 本系統(tǒng)是為了提供給廣大用戶一個網(wǎng)上交
61、流的平臺,所以論壇的流程是以用戶為中心進行的.</p><p> 數(shù)據(jù)流圖是一種能全面地描述信息系統(tǒng)邏輯模型的主要工具,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)流圖具有以下兩個特性:</p><p> (1)抽象性:表現(xiàn)在它完全舍去了具體的物質(zhì),只剩下數(shù)據(jù)的流動、加工處理與存儲。</p><p> (2)概括性:表現(xiàn)在它可以把信
62、息中的各種不同業(yè)務(wù)處理過程聯(lián)系起來,形成一個整體。</p><p> 數(shù)據(jù)流圖由以下四種基本元素組成,既外部實體、數(shù)據(jù)流、處理(功能)、數(shù)據(jù)存儲等,數(shù)據(jù)流圖中所用的符號如下:</p><p> 外部實體 處理 數(shù)據(jù)流 數(shù)據(jù)存儲</p><p> LeafBBS論壇系統(tǒng)的數(shù)據(jù)流程圖如下</p><
63、p> 說明:⑴——訪問信息,⑵⑶⑽⑾——用戶信息,⑷——發(fā)表帖子信息,⑸更新帖子信息,⑹搜索信息</p><p> ?、恕@取帖子信息,⑻回復(fù)信息,⑼搜索用戶,⑿更新用戶信息,⒀獲取用戶資料</p><p> 圖2.6 數(shù)據(jù)流程圖</p><p> 2.4系統(tǒng)總體結(jié)構(gòu)分析結(jié)論</p><p> 通過對系統(tǒng)框架及數(shù)據(jù)庫的選擇,和
64、總體的需求分析,完成了前期對系統(tǒng)模塊的劃分,數(shù)據(jù)的流程,以及一些可行性的分析.在此基礎(chǔ)上,可以系統(tǒng)的數(shù)據(jù)庫和功能模塊進行概要設(shè)計.</p><p><b> 第 3 章系統(tǒng)設(shè)計</b></p><p> 在前期的系統(tǒng)結(jié)構(gòu)分析的基礎(chǔ)上,對系統(tǒng)進行概要設(shè)計.</p><p><b> 3.1 數(shù)據(jù)庫設(shè)計</b></
65、p><p> 數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求).</p><p><b> 數(shù)據(jù)庫和設(shè)計概述</b></p><p> (1)數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護、檢索數(shù)據(jù)
66、的功能,使信息系統(tǒng)可以方便、及時、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息?! ?2)數(shù)據(jù)庫是信息系統(tǒng)的各個部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在。 (3)數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分。</p><p> 3.1.1概念模型設(shè)計(E-R圖)</p><p> 數(shù)據(jù)模型是是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表與操作
67、提供一個抽象的框架。描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。</p><p> E-R模型的基本概念 </p><p> ER圖概念化地構(gòu)建實體間關(guān)系的模型,這使得它們區(qū)別于數(shù)據(jù)庫模型圖。ER圖的理念是:項目所有參與者能理解ER圖。ER圖由不同實體類型、關(guān)系、特性和類型構(gòu)成。實體是諸如用戶的實際對象,有時更抽象,但必須有業(yè)務(wù)意義。特性用于描述實體,關(guān)系用于實體之間(1)實體:現(xiàn)實世界中的
68、事物; (2)屬性:事物的特性; (3)聯(lián)系:現(xiàn)實世界中事物間的關(guān)系。實體集的關(guān)系有一對一、一對多、多對多的聯(lián)系。</p><p><b> 本系統(tǒng)的ER圖</b></p><p> 圖3.1 系統(tǒng)E-R圖</p><p> 3.1.2數(shù)據(jù)庫表及關(guān)系建立</p><p> 根據(jù)以上這些步驟就可以創(chuàng)建一個數(shù)據(jù)庫
69、,依次建立下列表結(jié)構(gòu).</p><p><b> 1.用戶基本資料表</b></p><p><b> 2.用戶詳細(xì)信息表</b></p><p><b> 3.論壇文章表</b></p><p><b> 4.論壇版區(qū)表 </b></p&
70、gt;<p> 5.論壇初始化信息表 </p><p> (1).用戶基本信息表 和用戶詳細(xì)信息表是一對一的關(guān)系,一個用戶只對應(yīng)一個詳細(xì)的信息表</p><p> (2).用戶基本信息表和文章表是一對多的關(guān)系,即一個用戶可以發(fā)表多篇文章和回復(fù).</p><p> (3).論壇版區(qū)表和論壇文章表是一對多的關(guān)系,在一個論壇中可以含有多個文章和回
71、復(fù).</p><p> 3.1.3詳細(xì)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p> (1).用戶基本資料表:</p><p> 用戶基本資料表中存放的是用戶登陸時所需要或者記錄用戶的基本信息,包含比如登陸名,密碼,最后登陸時間等.用戶基本信息表的建立主要是記錄用戶最常用的一些信息.</p><p> 表3.1 leafbbs_userinfo&l
72、t;/p><p> (2).用戶詳細(xì)信息表:</p><p> 用戶詳細(xì)信息表中存放的是用戶的身高,體重,聯(lián)系方式等詳細(xì)資料,建立此表的目的是把一些用戶不經(jīng)常用到的詳細(xì)信息,單獨存放到一張表中,可以節(jié)約系統(tǒng)的資源.</p><p> 表3.2 leafbbs_userdetai</p><p> (3).論壇文章表:</p>
73、<p> 論壇文章表存放的是用戶所發(fā)表的文章信息,也包括回復(fù)信息.而在數(shù)據(jù)庫的設(shè)計中主要問題是鑒別帖子信息和回復(fù)信息.</p><p> 表3.3 leafbbs_forum</p><p> (4).論壇版區(qū)表:</p><p> 論壇版區(qū)表是存放的是論壇中版塊信息.而論壇也劃分為父論壇和子論壇,區(qū)分他們也靠表中的某個字段來實現(xiàn)的.具體實際的設(shè)
74、計如下.</p><p> 表3.4 leafbbs_board</p><p> (5).論壇初始化信息表:</p><p> 論壇初始化信息表是存放初始化信息和管理員的帳號密碼等信息,初始化信息是在論壇在加載過程中讀取的或者以后經(jīng)常用的一些信息.</p><p> 表3.5 leafbbs_config表</p>&
75、lt;p> 3.2 系統(tǒng)概要設(shè)計</p><p> 根據(jù)需求分析的結(jié)果,對系統(tǒng)進行詳細(xì)的概要設(shè)計</p><p> 3.2.1功能模塊設(shè)計</p><p> 繪制出的用例圖,將本系統(tǒng)分為三個大的模塊,他們分別是會員資料模塊,帖子資料模塊和后臺管理模塊!本系統(tǒng)的功能層次圖如圖3.2.1所示</p><p> 圖3.2系統(tǒng)功能層次
76、圖</p><p> 如圖3.2.1,leafbbs系統(tǒng)實現(xiàn)了如下的功能.</p><p><b> (1).會員模塊:</b></p><p> 此模塊用來實現(xiàn)會員的登陸注冊和會員資料的修改和查找.</p><p><b> 1.會員登陸模塊:</b></p><p&g
77、t; 會員可以通過此模塊對論壇進行登陸,登陸后便可以使用所有的會員功能,比如發(fā)帖回復(fù)等等.</p><p><b> 2.會員注冊模塊:</b></p><p> 沒有會員帳號的用戶,可以通過此模塊添加會員信息,添加成功后便可登陸論壇,使用會員功能.</p><p><b> 3.資料修改模塊:</b></p
78、><p> 已注冊的會員在登陸后,可以通過此模塊,對會員的基本資料,聯(lián)系方式,密碼,頭像等資料進行修改.</p><p><b> 4.會員查找模塊:</b></p><p> 已注冊的會員在登陸后, 可以通過此模塊,對會員進行查找,并可以查看對方的資料,聯(lián)系方式等等,從而方便會員之間的聯(lián)系.</p><p><
79、b> (2).帖子模塊:</b></p><p><b> 1.帖子發(fā)表模塊:</b></p><p> 已注冊的會員在登陸后,可以在相應(yīng)的論壇中,發(fā)表或轉(zhuǎn)載自己的大作,發(fā)表成功后,其他會員便可以在相應(yīng)的論壇中看到這篇帖子,并可以對其進行回復(fù)等操作.</p><p><b> 2.帖子回復(fù)模塊:</b&
80、gt;</p><p> 會員在發(fā)表完帖子后,用戶便可查看相關(guān)文章,并可以在文章中對已發(fā)表的帖子進行回復(fù),</p><p><b> 3.帖子查找模塊</b></p><p> 會員可以通過此模塊,根據(jù)帖子的標(biāo)題和作者,對相關(guān)的帖子進行查找.</p><p><b> (3).后臺管理:</b&g
81、t;</p><p><b> 1.帖子查找模塊:</b></p><p> 此模塊和帖子模塊中的帖子查找類似,只是管理員的搜索條件比普通用戶更加的廣泛,使搜索變的便捷.</p><p><b> 2.帖子管理模塊:</b></p><p> 帖子管理模塊是管理員對帖子管理的平臺,如果管理員
82、查看到帖子有不適宜發(fā)表的內(nèi)容時,可以對帖子選擇刪除或者鎖定等操作,如果看到優(yōu)秀的帖子,還可以將帖子進行置頂,加精,</p><p> 圖3.3帖子管理模塊功能層次圖</p><p><b> 3.會員管理模塊:</b></p><p> 管理員可以通過此模塊,對會員進行管理,對一些不法的用戶可以修改或者刪除資料,</p>&
83、lt;p><b> 4.論壇管理模塊.</b></p><p> 管理員對論壇的添加,創(chuàng)建,刪除等功能都是在此模塊里進行處理.</p><p><b> 5.圖片管理模塊</b></p><p> 管理員可以管理用戶上傳的頭像,和在文章里發(fā)表的圖片,從而加強對圖片的控制</p><p>
84、; 3.2.2系統(tǒng)界面設(shè)計</p><p> 對于系統(tǒng)來說,用戶界面設(shè)計將非常重要,因為一個交互良好的界面能夠加深瀏覽者的印象.</p><p> 設(shè)計的實現(xiàn)可以分為兩個部分。第一部分為站點的規(guī)劃及草圖的繪制,這一部分可以在紙上完成。第二部分為網(wǎng)頁的制作,這一過程是在計算機上完成的.</p><p> 設(shè)計首頁的第一步是設(shè)計版面布局。我們可以將網(wǎng)頁看作傳統(tǒng)的
85、報刊雜志來編輯,這里面有文字、圖像乃至動畫,我們要做的工作就是以最適合的方式將圖片和文字排放在頁面的不同位置。 除了要有一臺配置不錯的計算機外,軟件也是必需的。不能簡單地說一個軟件的好壞,只要是設(shè)計者使用起來覺得方便而且能得心應(yīng)手的,就可以稱為好軟件。當(dāng)然,它應(yīng)該能滿足設(shè)計者的要求。常用的軟件是Macromedia的Dreamweaver以及Adobe的Photoshop。</p><p> 設(shè)計是有原則的,無
86、論使用何種手法對畫面中的元素進行組合,都一定要遵循五個大的原則:統(tǒng)一、連貫、分割、對比及和諧。</p><p> 統(tǒng)一,是指設(shè)計作品的整體性,一致性。設(shè)計作品的整體效果是至關(guān)重要的,在設(shè)計中切勿將各組成部分孤立分散,那樣會使畫面呈現(xiàn)出一種枝蔓紛雜的凌亂效果。</p><p> 連貫,是指要注意頁面的相互關(guān)系。設(shè)計中應(yīng)利用各組成部分在內(nèi)容上的內(nèi)在聯(lián)系和表現(xiàn)形式上的相互呼應(yīng),并注意整個頁面
87、設(shè)計風(fēng)格的一致性,實現(xiàn)視覺上和心理上的連貫,使整個頁面設(shè)計的各個部分極為融洽,猶如一氣呵成。</p><p> 分割,是指將頁面分成若干小塊,小塊之間有視覺上的不同,這樣可以使觀者一目了然。在信息量很多時為使觀者能夠看清楚,就要注意到將畫面進行有效的分割。分割不僅是表現(xiàn)形式的需要。換個角度來講,分割也可以被視為對于頁面內(nèi)容的一種分類歸納。</p><p> 對比就是通過矛盾和沖突,使設(shè)
88、計更加富有生氣。對比手法很多,例如:多與少、曲與直、強與弱、長與短、粗與細(xì)、疏與密、虛與實、主與次、黑與白、動與靜、美與丑、聚與散等等。在使用對比的時候應(yīng)慎重,對比過強容易破壞美感,影響統(tǒng)一。</p><p> 和諧是指整個頁面符合美的法則,渾然一體。如果一件設(shè)計作品僅僅是色彩、形狀、線條等的隨意混合,那么作品將不但沒有“生命感”,而且也根本無法實現(xiàn)視覺設(shè)計的傳達功能。和諧不僅要看結(jié)構(gòu)形式,而且要看作品所形成的
89、視覺效果能否與人的視覺感受形成一種溝通,產(chǎn)生心靈的共鳴。這是設(shè)計能否成功的關(guān)鍵。</p><p> 最后簡單設(shè)計系統(tǒng)的簡單登陸界面和主界面</p><p> 圖3.4用戶登陸界面</p><p> 圖3.5用戶登陸后的主界面</p><p> 3.2.3系統(tǒng)的組件設(shè)計</p><p> 在整個系統(tǒng)中,為了解決
90、諸如中文顯示亂碼此類的問題,本系統(tǒng)需要設(shè)計一些組件,來解決相關(guān)的問題.</p><p> (1).過濾器組件:</p><p> Java的內(nèi)核和class文件是基于unicode的,這使Java程序具有良好的跨平臺性,但也帶來了一些中文亂碼問題的麻煩。原因主要有兩方面,Java和JSP文件本身編譯時產(chǎn)生的亂碼問題和Java程序于其他媒介交互產(chǎn)生的亂碼問題。</p>&l
91、t;p> Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字節(jié)流的,如果Java和JSP編譯成class文件過程中,使用的編碼方式與源文件的編碼不一致,就會出現(xiàn)亂碼</p><p> 為了解決此類問題,需要設(shè)計一個組件來解決此類問題,每次請求和響應(yīng)到達客戶和服務(wù)器端時,都先經(jīng)過此過濾器對字符進行過濾.</p><p> 圖3.6字符過濾器
92、原理圖</p><p> (2).權(quán)限管理組件:</p><p> 在論壇中的的用戶一定會遇到關(guān)于權(quán)限的問題,比如沒有登陸的用戶只可以查看帖子,而即使登陸的用戶,也只可以對自己應(yīng)有的權(quán)限進行操作,不可以操作管理員的功能.</p><p> 解決此類問題,本系統(tǒng)是通過判斷特定的session來判斷用戶的權(quán)限,當(dāng)用戶登陸成功后,組件會發(fā)送相應(yīng)的用戶session,
93、之后每次用戶對論壇進行操作,都要先通過session,來判斷用戶的權(quán)限.</p><p> 圖3.7權(quán)限判斷流程</p><p> (3).JSP標(biāo)簽組件</p><p> 由于本文是基于MVC模式架構(gòu),所以在JSP網(wǎng)頁中不應(yīng)存放過多的邏輯判斷,當(dāng)本系統(tǒng)JSP網(wǎng)頁中必須存有JAVA邏輯代碼時,本系統(tǒng)設(shè)計了一些JSP標(biāo)簽來替代這些邏輯代碼</p>
94、<p> 第 4 章 系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 程序設(shè)計又稱編碼,是系統(tǒng)生命周期中繼詳細(xì)設(shè)計之后的階段,這個階段的任務(wù)是使用選定的程序設(shè)計語言,把經(jīng)過概要設(shè)計和詳細(xì)設(shè)計所得到的以程序設(shè)計說明書體現(xiàn)的信息處理過程描述后,轉(zhuǎn)換成能在計算機系統(tǒng)上運行的程序源代碼。</p><p> 4.1 系統(tǒng)框架實現(xiàn)</p><p> 在系統(tǒng)的整體設(shè)計中,我
95、們采取了四層結(jié)構(gòu).這樣結(jié)構(gòu)的優(yōu)點是靈活,移植和可維護性比較高. 每個層在處理程序上都應(yīng)該有一項明確的責(zé)任, 而不應(yīng)該在功能上與其它層混合,并且每個層要與其它層分開的</p><p> 圖4.1 S.S.H框架的結(jié)合使用</p><p> 4.1.1底層數(shù)據(jù)庫的建立</p><p> 在前期的數(shù)據(jù)庫選用中,本系統(tǒng)選取了靈活高速的 MySQL數(shù)據(jù)庫,而在數(shù)據(jù)庫的設(shè)
96、計中,本文已經(jīng)確立了表結(jié)構(gòu). 根據(jù)這些就可以創(chuàng)建一個數(shù)據(jù)庫,在數(shù)據(jù)庫創(chuàng)建并連接好后,就可以創(chuàng)建表、修改表和刪除表,創(chuàng)建、修改、和刪除主鍵、外鍵等等。選中“l(fā)eafbbs”數(shù)據(jù)庫,use database并使用Create table<表名>Sql語句,依次創(chuàng)建以下表結(jié)構(gòu)。由于考慮到本系統(tǒng)是應(yīng)用在單機系統(tǒng)上,另外根據(jù)管理的規(guī)模,我們只建立一個數(shù)據(jù)庫,在此數(shù)據(jù)庫基礎(chǔ)上建立</p><p> leafbb
97、s_userinfo 用戶基本資料表</p><p> leafbbs_userdetai 用戶詳細(xì)信息表</p><p> leafbbs_forum 論壇文章表</p><p> leafbbs_board 論壇版區(qū)表 </p><p> leafbbs_
98、config 論壇初始化信息表 </p><p> 4.1.2持久化層的建立(hibernate)</p><p> 典型的Web應(yīng)用的另一個末端是持久層。Hibernate為java提供了OR持久化機制和查詢服務(wù), 它還給已經(jīng)熟悉SQL和JDBC API 的Java開發(fā)者一個學(xué)習(xí)橋梁,他們學(xué)習(xí)起來很方便。 Hibernate的持久對象是基于POJO和Java
99、collections。此外。 系統(tǒng)建立Hibernate的持久層 。 首先把BO持久化。 Hibernate是通過POJO工作的, 因此數(shù)據(jù)對象需要給所有的fileds 加上getter,setter方法。 Hibernate通過XML文件來映射(OR)對象,以下xml文件分別映射了相應(yīng)對象。 1.userinfo.hbm.xml 2.userdetai.hbm.xml </p><p>
100、 3.forum.hbm.xml</p><p> 4.board.hbm.xml</p><p> 5.config.hbm.xml</p><p> 圖4.2 userinfo.hbm.xml 映射文件</p><p> 本系統(tǒng)可以在com.leafbbs.bean目錄下找到這些xml文件。Hibernate配置文件的作用用來告
101、訴程序 應(yīng)該與哪個數(shù)據(jù)庫通信,該使用哪個連接池或使用了DataSource, 應(yīng)該加載哪些持久對象。而Session接口是用來完成Selecting,Saving,Delete和Updating這些操作。</p><p> 4.1.3業(yè)務(wù)邏輯層的建立</p><p> 本系統(tǒng)的業(yè)務(wù)邏輯是交由struts中的Action進行判斷的,比如判斷登陸的業(yè)務(wù)邏輯時,會建立一個LoginActio
102、n類來進行邏輯判斷,而一些關(guān)聯(lián)的映射,LeafBBS系統(tǒng)是寫在struts框架的struts-config.xml中.</p><p> 圖4.3 struts-config.xml 映射文件</p><p> 從編碼的視角來看,這層是最容易被忽視的一層。 卻往往在持久層周圍看到這些業(yè)務(wù)處理的代碼,這其實是不正確的,因為它導(dǎo)致了程序代碼的緊密偶合,這樣一來,隨著時間推移這些代碼很難維護
103、。幸好,針對這一問題本系統(tǒng)可以使用Spring框架來解決.spring框架都著手于“依賴注射”(dependency injection)(還有我們知道的‘控制反轉(zhuǎn)'Inversion of Control=IoC)這樣的簡單概念。Spring還提供了Setter Injection(type2),Constructor Injection(type3)等方式供選擇。 Spring把程序中所涉及到包含業(yè)務(wù)邏輯和Dao的Objec
104、ts——例如transaction management handler(事物管理控制)、Object Factoris(對象工廠)、service objects(服務(wù)組件)——都通過XML來配置聯(lián)系起來。這種方式讓你的對象從創(chuàng)建中釋放了出來,降低了偶合度.</p><p> 圖4.4 spring 配置文件 applicationContext.xml 映射文件</p><p>
105、每個對象都可以在Spring 配置信息applicationContext.xml中用<bean>標(biāo)簽引用。在這里,mySessionFactory引用了HibernateSessionFactory,而myTransactionManager引用了HibernateTransactionManage。 代碼中myTransactionManger Bean有個sessionFactory屬性。 HibernateTrans
106、actionManager有個sessionFactory setter 和 getter方法,這是用來在Spring啟動的時候?qū)崿F(xiàn)"依賴注入" (dependency injection)的。 在sessionFactory 屬性里 引用mySessionFactory。這兩個對象在Spring容器初始化后就被組裝了起來了。 這樣的搭配讓你從 單例(singleton objects)和工廠(factories)中
107、解放了出來,降低了代碼的維護代價。 mySessionFactory.的兩個屬性,分別是用來注入mappingResources 和 hibernate</p><p> 圖4.5 Spring基于配置文件,將各個Bean搭建在一起。</p><p> 4.1.4表示層的建立</p><p> 在表示層上,主要是基于JSP和AJAX異步傳輸技術(shù)來進行建立,最后
108、通過Struts 框架的struts-config.xml文件進行關(guān)聯(lián)映射.具體的頁面設(shè)計,會在后面的章節(jié)中進行介紹.</p><p> 4.2 系統(tǒng)功能模塊實現(xiàn)</p><p> 4.2.1會員模塊實現(xiàn)</p><p> 在會員模塊的設(shè)計中,首先完成的是業(yè)務(wù)邏輯層的相應(yīng)action類的編寫,之后在通過具體的需要,編寫相應(yīng)的數(shù)據(jù)庫訪問DAO.在一切結(jié)束之后,從
109、DAO和業(yè)務(wù)邏輯類中抽象出接口,通過spring的IOC對接口進行對象注入.</p><p> 在模塊的設(shè)計過程中,遇到的難點是在注冊時使用的AJAX異步傳輸,來判斷用戶名是否被占用.AJAX技術(shù)是一個基于Javascript腳本語言的新技術(shù),目前對這種技術(shù)的使用還不是很多,但通過反復(fù)的調(diào)試,逐漸的掌握了AJAX的要點.</p><p> 圖4.6 AJAX技術(shù) 在本系統(tǒng)中的應(yīng)用<
110、;/p><p> 當(dāng)用戶在登錄的時候,會有一個驗證碼的文本框,而驗證碼的實現(xiàn)是通過訪問servlet技術(shù)實現(xiàn)的,在打開登錄界面時, servlet會自動向首頁發(fā)送一組圖片,并且發(fā)送一個相應(yīng)存放數(shù)字的session,當(dāng)用戶提交信息時,系統(tǒng)就會在session中提取數(shù)字并和用戶的數(shù)字進行比較,錯誤則會彈出錯誤信息.</p><p> 圖4.7 驗證碼的應(yīng)用 </p><p&
111、gt; 當(dāng)用戶在登錄成功后,或者選擇游客模式進入論壇時,會跳轉(zhuǎn)到論壇的主界面,主界面的實現(xiàn)主要是通過HTML的<iframe> 標(biāo)記,將頁面劃分成兩個部分,左面的部分是用戶的操作框,右面是論壇的信息部分.已登錄的用戶可以通過左面的操作框來對自己的一些資料進行修改,也可以選擇退出等其他操作.</p><p> 圖4.8 用戶主界面</p><p> 用戶信息模塊功能流程圖&
112、lt;/p><p> 圖4.9 用戶模塊功能流程圖</p><p> 4.2.2帖子模塊實現(xiàn)</p><p> 帖子模塊的完成流程和會員模塊類似,都是先根據(jù)JSP網(wǎng)頁,建立相映的Action邏輯判斷類,之后建立和帖子有關(guān)的數(shù)據(jù)庫訪問DAO,最后抽象出接口進行依賴注入,</p><p> 編寫帖子模塊首先遇到的難點是分頁功能的實現(xiàn),當(dāng)打開某
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- bbs論壇設(shè)計論文(完整版!)
- bbs論壇系統(tǒng)_畢業(yè)論文_完整
- 畢業(yè)論文bbs論壇設(shè)計論文
- 畢業(yè)論文完整版
- bbs論壇畢業(yè)論文
- bbs論壇畢業(yè)論文
- 畢業(yè)論文樣本完整版
- bbs畢業(yè)論文----網(wǎng)絡(luò)bbs論壇系統(tǒng)
- 畢業(yè)論文——bbs論壇系統(tǒng)
- java版bbs論壇設(shè)計畢業(yè)論文
- 員工激勵畢業(yè)論文完整版
- 網(wǎng)絡(luò)bbs論壇系統(tǒng)畢業(yè)論文
- BBS論壇畢業(yè)論文(1).doc
- 畢業(yè)論文范文——bbs論壇
- (完整版)工商管理畢業(yè)論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
評論
0/150
提交評論