版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于SSH框架的網(wǎng)上論壇設(shè)計與實現(xiàn)摘要當(dāng)今社會正處在網(wǎng)絡(luò)時代,信息化大潮席卷全球,網(wǎng)絡(luò)正以前所未有的速度在我國普及開來。網(wǎng)站以其獨特的優(yōu)勢在信息化的過程中占有重要的一席。為了方便信息的交流,在結(jié)合SSH和JAVA技術(shù)之下開發(fā)了這個快捷、方便、界面友好的交流系統(tǒng),實現(xiàn)了一個功能相對齊全的網(wǎng)上論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗。論壇在Spring+Struts+Hibernate,Spring負(fù)責(zé)業(yè)務(wù)邏輯層,Struts負(fù)責(zé)表示層,Hibernate負(fù)責(zé)數(shù)據(jù)持久層。論壇采用B/S的體系結(jié)構(gòu),人們可以通過瀏覽器訪問網(wǎng)站的主頁,保證了效勞器的平安。數(shù)據(jù)庫采用了功能強(qiáng)大的oracle數(shù)據(jù)庫。該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點和對論壇的主題發(fā)表意見,也可以對網(wǎng)友的問題及時地解決,獲取對自己有用的知識。該論壇還有一些特殊的功能,比方強(qiáng)大的搜索功能、在線人員顯示等。本網(wǎng)站嚴(yán)格按照軟件工程開發(fā)的流程進(jìn)行開發(fā),對于網(wǎng)站開發(fā)的可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計以及對網(wǎng)站的測試與維護(hù)都有詳細(xì)的論述和實現(xiàn)過程。本系統(tǒng)的優(yōu)點是它具有強(qiáng)大的可維護(hù)性以及可擴(kuò)展性,適合網(wǎng)民創(chuàng)立自己的中小型BBS論壇!關(guān)鍵詞:BBS,S.S.H(Struts,Hibernate,Spring),JAVA,JSP,SQLSSHframeworkforthedesignofweb-basedforumABSTRACTToday'ssocietyisintheInternetage,informationtechnologytidesweepingtheworld,thenetworkisgrowingatanunprecedentedrateinourpopularity.Sitewithitsuniqueadvantagesoccupiesanimportantseatsintheinformationprocess.Inordertofacilitatetheexchangeofinformation,underthecombinedSSHandJAVAtechnologydevelopedthisfast,convenientanduser-friendlyACsystemimplementsafunctionrelativelycompletesystemofonlineforums,usersarefreetoaskquestionsandhelpotherssolveproblems,ortheexchangeofexperiences.
ForumSpring+Struts+Hibernate,Springresponsibleforthebusinesslogiclayer,Strutsresponsibleforthepresentationlayer,Hibernatefordatapersistencelayer.ForumarchitectureusingB/S,peoplecanvisitthewebsiteofthebrowserhomepage,toensurethesafetyoftheserver.Databaseusingapowerfuloracledatabase.Theforumfeaturesmorecomplete,whereyoucanfreelyexpresstheirviewsandexpresstheirviewsonthethemeoftheforum,youcanalsosolvetheproblemofusersinatimelymanner,accesstousefulknowledgeforthemselves.Theforumtherearesomespecialfeatures,suchaspowerfulsearchfeatures,onlinestaffdisplay.Thissiteinstrictaccordancewiththesoftwaredevelopmentprocessfordevelopmentprojects,thefeasibilityanalysisofsitedevelopment,needsanalysis,outlinedesign,detaileddesign,andtestingandmaintenanceofthesitehavediscussedindetailandimplementationprocess.
Advantageofthissystemisthatithasapowerfulmaintainabilityandscalability,idealforuserstocreatetheirownsmallandmediumBBSforums!KEYWORDS:BBS,SSH(Struts,Hibernate,Spring),JAVA,,JSP,SQL目錄前言1第1章系統(tǒng)概述31.1總體概述31.2開發(fā)目的41.3開發(fā)背景4第2章系統(tǒng)分析62.1技術(shù)可行性分析62.1.1開發(fā)語言綜述62.1.2SSH框架介紹72.1.3系統(tǒng)層次設(shè)計112.1.4技術(shù)可行性綜述112.2時間可行性112.3系統(tǒng)需求分析112.3.1系統(tǒng)開發(fā)運行環(huán)境122.3.2功能描述122.3.3數(shù)據(jù)流程14第3章系統(tǒng)設(shè)計163.1數(shù)據(jù)庫設(shè)計163.1.1概念模型設(shè)計(E-R圖)163.1.2數(shù)據(jù)庫表以及關(guān)系建立173.1.3數(shù)據(jù)庫結(jié)構(gòu)詳細(xì)設(shè)計173.2系統(tǒng)概要設(shè)計193.2.1功能模塊設(shè)計193.2.2系統(tǒng)界面設(shè)計223.2.3系統(tǒng)組件設(shè)計23第4章系統(tǒng)實現(xiàn)264.1系統(tǒng)框架實現(xiàn)264.1.1底層數(shù)據(jù)庫建立264.1.2持久化層的建立(hibernate)274.1.3業(yè)務(wù)邏輯層的建立274.2系統(tǒng)功能模塊實現(xiàn)284.2.1用戶模塊實現(xiàn)304.2.2帖子模塊實現(xiàn)334.2.3后臺管理員模塊實現(xiàn)36第5章系統(tǒng)的調(diào)試與測試375.1測試概述375.1.1軟件測試目的375.1.2軟件測試的任務(wù)385.1.3測試環(huán)境385.2單元測試395.2.1黑盒測試395.2.2白盒測試395.2.3模塊接口測試415.3集成測試415.2.3自頂向下集成425.2.3確認(rèn)測試標(biāo)準(zhǔn)42結(jié)論43謝辭44參考文獻(xiàn)45外文資料翻譯46前言當(dāng)今社會正處于網(wǎng)絡(luò)時代,信息化大潮席卷全球,網(wǎng)絡(luò)正也前所未有的速度在我國普及開來。網(wǎng)站以其獨特的優(yōu)勢在信息化的過程中占有重要的一席。隨著Internet技術(shù)的不斷開展,以及用戶群爆炸性地增長,網(wǎng)絡(luò)也不再僅僅是信息的被動獲取來源,更成為人們探討問題、交換觀點的場所,其中,網(wǎng)上論壇扮演了極其重要的角色,也常被人簡稱為BBS。隨著時間的推移,論壇站點中積存了豐富的信息資源,不但有各類技術(shù)資料和新聞文檔,還包含著用戶的判斷和評論,論壇站點己成為Web信息庫的重要組成局部。自網(wǎng)上論壇誕生20多年以來,隨著Web技術(shù)的開展,已經(jīng)由原來簡單的電子公告板系統(tǒng)開展為功能豐富的網(wǎng)上論壇和虛擬社區(qū)模式。各種論壇隨著網(wǎng)絡(luò)迅速開展,幾乎充實著生活工作的每一個方面,無論是商界、政界,還是娛樂界,都有各種論壇。國內(nèi)就有新浪,騰訊,csdn等大型論壇,這些論壇種類繁多,訪問量巨大,有很強(qiáng)的處理和兼容性。國外也有mylot,icq,myspace,orkut等廣受歡送的論壇,這些論壇大都專業(yè)性比擬強(qiáng)沒有像國內(nèi)論壇那樣有很多的板塊,而是一個論壇根本上就討論一種話題。論壇可以向網(wǎng)友提供開放性的分類專題討論區(qū)效勞,可以在此發(fā)表自己的某些觀感、交流某些技術(shù)、經(jīng)驗?zāi)酥寥松母形蚺c憂歡。網(wǎng)友亦可在此答復(fù)網(wǎng)友們提出的問題或發(fā)布某些消息。論壇已成為現(xiàn)代人溝通和獲取信息的重要組成局部,論壇提供給我們的不再只是一個獲取信息的來源,而是一個可以相互交流的空間,網(wǎng)絡(luò)論壇也以其巨大影響力對人們的生活產(chǎn)生了不可替代的影響。但是也存在監(jiān)管不到位,不良信息不能被及時清理等問題。目前國內(nèi)外大型論壇的制作水平都很高,根本上可以代表現(xiàn)在網(wǎng)上論壇制作的最高水平,但是也仍然存在很多缺乏,國內(nèi)論壇大都存在頁面內(nèi)容過多,無法快速找到有用信息,注冊不夠人性化等問題,國外論壇更新速度不夠快,主界面上論壇的入口比擬難發(fā)現(xiàn),反倒是其他的像新聞之類的信息占據(jù)了很大一局部,發(fā)帖的時候能夠提供的選項也比擬少,不像國內(nèi)論壇那樣會把帖子所屬的內(nèi)容標(biāo)出來。本人設(shè)計的網(wǎng)上論壇主要是基于SSH框架,采用oracle數(shù)據(jù)庫改良了上述論壇的缺乏,本系統(tǒng)采用hibernate+strust+spring架構(gòu),數(shù)據(jù)庫采用oracle,使用spring的配置文件applicationcontext.XML連接數(shù)據(jù)庫,使用諸如dao(DataAccessObject)的形式進(jìn)行數(shù)據(jù)庫操作,在dao中實現(xiàn)對數(shù)據(jù)表的增刪改查。讓網(wǎng)友能夠及時的參與話題的討論,自由地發(fā)表自己的意見和觀點。網(wǎng)友們也可以展開多人討論,使人們能夠便捷地進(jìn)行交流。另外本論壇也可以通過后臺管理及時地更新論壇內(nèi)容,讓網(wǎng)友能夠在第一時間從論壇中獲取某一技術(shù)和行業(yè)的開展動態(tài)和最新信息。第1章系統(tǒng)概述總體概述進(jìn)入21世紀(jì),計算機(jī)技術(shù)開始迅速地向著網(wǎng)絡(luò)化、集成化的方向開展。傳統(tǒng)的單機(jī)版應(yīng)用軟件正在慢慢退出人們的視野,代替的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中存在著兩種不同的開展方向,一種是稱為客戶端-效勞器的C/S結(jié)構(gòu),這種軟件具有運行效率高,結(jié)構(gòu)嚴(yán)謹(jǐn),效勞器端壓力小,平安性好等特點,被廣泛運用于局域網(wǎng)中。而另外一種,也是本設(shè)計所采用的,那么是被稱為瀏覽器-效勞器的B/S結(jié)構(gòu),它的特點在于客戶端直接采用了功能強(qiáng)大的瀏覽器軟件作為界面,其優(yōu)點是客戶端既不受地域的限制,也受操作平臺的限制、網(wǎng)絡(luò)傳輸量少,軟件開發(fā)效率高,不僅適用于局域網(wǎng),而且更加適用于英特網(wǎng),而且投資很小、見效也快,用戶沒有必要進(jìn)行效勞器方面的投資,而可以去租用,甚至能夠免費使用ISP的效勞器資源,因此受到越來越多中小型單位的青睞。隨著Internet技術(shù)的不斷開展,以及用戶群爆炸性地增長,網(wǎng)絡(luò)不再只是信息的被動獲取來源,更是成為人們交換觀點、探討問題的場所。其中,網(wǎng)上論壇開始扮演非常重要的角色,伴隨著時間的推移,論壇站點中積攢了非常多的信息資源,不僅有各類新聞文檔和技術(shù)資料,還包含著用戶們評論和文章,論壇站點已變成Web信息庫的重要組成局部,自從網(wǎng)上論壇誕生20多年以來,隨著Web技術(shù)的不斷開展,己經(jīng)由原來簡單的電子公告板系統(tǒng)逐漸變成了功能強(qiáng)大的虛擬社區(qū)模式和網(wǎng)上論壇。各種論壇隨著如雨后春筍般地迅速開展起來,幾乎充實著生活工作的各個方面,無論是政界、商界,還是娛樂界,都有各種各樣的論壇。互聯(lián)網(wǎng)正逐漸地融入我們的生活,網(wǎng)絡(luò)提供給我們的不再僅僅是是一個獲取信息的來源,而是一個可以相互交流的空間,網(wǎng)上論壇正以它特殊的方式影響和改變著我們的生活。1.2開發(fā)目的當(dāng)今社會正處在網(wǎng)絡(luò)時代,信息化大潮席卷全球,網(wǎng)絡(luò)正以前所未有的速度在我國普及開來。網(wǎng)站以其獨特的優(yōu)勢在信息化的過程中占有重要的一席。為了方便信息的交流,在結(jié)合SSH和JAVA技術(shù)之下開發(fā)了這個快捷、方便、界面友好的交流系統(tǒng),實現(xiàn)了一個功能相對齊全的網(wǎng)上論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗。論壇在Spring+Struts+Hibernate,Spring負(fù)責(zé)業(yè)務(wù)邏輯層,Struts負(fù)責(zé)表示層,Hibernate負(fù)責(zé)數(shù)據(jù)持久層。論壇采用B/S的體系結(jié)構(gòu),人們可以通過瀏覽器訪問網(wǎng)站的主頁,保證了效勞器的平安。數(shù)據(jù)庫采用了功能強(qiáng)大的oracle數(shù)據(jù)庫。該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點和對論壇的主題發(fā)表意見,也可以對網(wǎng)友的問題及時地解決,獲取對自己有用的知識。該論壇還有一些特殊的功能,比方強(qiáng)大的搜索功能、在線人員顯示等。本網(wǎng)站嚴(yán)格按照軟件工程開發(fā)的流程進(jìn)行開發(fā),對于網(wǎng)站開發(fā)的可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計以及對網(wǎng)站的測試與維護(hù)都有詳細(xì)的論述和實現(xiàn)過程。1.3開發(fā)背景1978年在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago(ComputerizedBulletinBoardSystem/Chicago),此乃最早的一套BBS系統(tǒng)。之后隨著蘋果電腦的問世,開發(fā)出基于蘋果機(jī)的BulletinBoardSystem和群眾信息系統(tǒng)〔PeoplesMessageSystem〕2種BBS系統(tǒng)。1981年IBM個人計算機(jī)誕生時,并沒有自己的BBS系統(tǒng)。直到1982年,BussLane才用Basic語言為IBM個人計算機(jī)編寫了一個原型程序。其后經(jīng)過幾番增修,終于在1983年通過CapitalPCUserGroup〔CPCUG〕的CommunicationSpecialInterestGroup用戶的努力,改寫出了個人計算機(jī)系統(tǒng)的BBS。經(jīng)ThomasMach整理后,終于完成了個人計算機(jī)的第1版BBS系統(tǒng)——RBBS-PC。這套BBS系統(tǒng)的最大特色是其源程序全部公開,有利于日后的修改和維護(hù),因此后來在開發(fā)其他的BBS系統(tǒng)時都以此為框架,所以RBBS-PC贏得了BBS鼻祖的美稱。大約是從1991年開始,國內(nèi)出現(xiàn)了第一個BBS網(wǎng)站。經(jīng)過長時間的開展,直到1995年,由于計算機(jī)及其外設(shè)的大幅降價,BBS才逐漸地被人們所了解。1996年更是以驚人的速度迅猛地開展了起來。國內(nèi)的BBS站,按其性質(zhì)劃分,大致可以分為2種:一種是商業(yè)的BBS站,如新華龍訊網(wǎng);另一種那么是業(yè)余的BBS站,如CSDN。由于使用商業(yè)的BBS站需要交納一筆費用,而商業(yè)站所能提供的效勞和業(yè)余站相比,并沒有什么太大的優(yōu)勢,所以其用戶數(shù)量并不是很多。而多數(shù)業(yè)余BBS站的站長,基于個人關(guān)系,每天都互相交換電子郵件,漸漸地形成了一個全國性的電子郵件網(wǎng)絡(luò)ChinaFidoNet〔中國惠多網(wǎng)〕。各地的用戶都可以通過本地的業(yè)余BBS站與別處網(wǎng)友進(jìn)行信息。這種跨地域的電子郵件交流就是商業(yè)站無法與業(yè)余站相抗衡的根本原因。由于業(yè)余的BBS站擁有這種優(yōu)勢,所以使用者也都樂意參加。這里“業(yè)余〞2字,并不是指這種類型的BBS站所提供的技術(shù)水平和效勞是業(yè)余的,而是指這類BBS站的性質(zhì)。一般BBS站都是由志愿者開發(fā)的。他們付出的不僅僅是金錢,更多的是精力。他們的目的是為了推動中國計算機(jī)網(wǎng)絡(luò)的健康開展,提高廣闊用戶的計算機(jī)應(yīng)用水平目前國內(nèi)的BBS站,大多數(shù)還是以大型綜合性BBS站為主。伴隨著計算機(jī)的普及,特別是寬帶的普及,BBS將實現(xiàn)進(jìn)一步的開展。但是,隨之而來對專注于專門領(lǐng)域方面的BBS的需求會慢慢增加。盡管BBS站臺的數(shù)量在不斷增長,但BBS的開展過程,也遇到了很多問題。由于國內(nèi)使用的BBS架站軟件,大都是從國外引進(jìn)的,因此并沒有中文說明。盡管有一些站長翻譯了一些資料,但是僅靠這點資料是遠(yuǎn)遠(yuǎn)不夠的。另外,有些站臺的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有相似之處。而且國內(nèi)自己開發(fā)的BBS網(wǎng)站根本上都還處于最原始的JSPMODEL1模式,這種模式是表示層與控制層合二為一,雖然開發(fā)簡單,但是擴(kuò)展性和可維護(hù)性很差,這樣就在很大程度上限制了BBS站點的開展?;诜N情況,MVC模式的SSH框架(Sturts+Spring+hibernate)的BBS論壇就逐漸顯現(xiàn)出來,本套論壇的優(yōu)點在于它具有強(qiáng)大的可擴(kuò)展性和可維護(hù)性,非常適合網(wǎng)民創(chuàng)立自己的中小型BBS論壇!第2章系統(tǒng)分析2.1技術(shù)可行性分析2.1.1開發(fā)語言綜述本系統(tǒng)是用基于面向?qū)ο笏枷氲腏AVA語言中的J2EE平臺進(jìn)行編寫,J2EE平臺具有以下優(yōu)點1.簡化結(jié)構(gòu):J2EE平臺支持簡化的、基于組件開發(fā)模型,由于J2EE基于Java編程語言和J2SE平臺,它提供了編寫一次,隨處運行的可移植性,遵循J2EE標(biāo)準(zhǔn)的所有效勞器都支持該模型。EJB組件使編寫應(yīng)用程序更為簡單。盡管EJB體系結(jié)構(gòu)復(fù)雜,但應(yīng)用程序開發(fā)人員一般都必再編寫訪問系統(tǒng)效勞的代碼,EJB容器會實現(xiàn)系統(tǒng)級的效勞,例如,事務(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)成組件,把其部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。2.提高開發(fā)效率:由于組件技術(shù)的使用,可以按照開發(fā)人員的技能對應(yīng)用程序開發(fā)進(jìn)行分工,并行開發(fā),提供整體開發(fā)效率。例如:圖形設(shè)計師創(chuàng)立JSP模板,商業(yè)邏輯由該領(lǐng)域的專家完成,JSP頁面和EJB由Java工程師完成,應(yīng)用程序的裝配和部署由團(tuán)隊中其他的成員完成,其中許多工作可以同時進(jìn)行,有助于加速應(yīng)用程序的開發(fā)。3.可移植性強(qiáng):除了Java語言固有的可移植性外,EJB體系結(jié)構(gòu)在Bean和支持該Bean的容器之間提供了一套標(biāo)準(zhǔn)化的應(yīng)用程序編程接口,這使開發(fā)人員能夠?qū)ean從一種操作環(huán)境移植到另一種操作環(huán)境,而無需重新編寫其源代碼。4.重用性好:由于在EJB模型中,各個軟件組件都是嚴(yán)格別離的,因此,可以從現(xiàn)有的軟件組件裝配出效勞器端應(yīng)用程序,這與從現(xiàn)有的JavaBean可以裝配出客戶端應(yīng)用程序一樣,使軟件能夠重用。5.易于維護(hù):基于組件的設(shè)計簡化了應(yīng)用程序的維護(hù)。由于組件可以被獨立地更新和替代,通過更新應(yīng)用程序中特定的組件,新的功能可以被很容易地增加。6.可伸縮性:企業(yè)必須要選擇一種效勞器端平臺,以便滿足那些在它們系統(tǒng)上進(jìn)行商業(yè)動作大批新客戶?;贘2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上,例如,可被部署到高端UNIX或其他的大型機(jī)系統(tǒng)上。J2EE領(lǐng)域的供給商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺效勞器集成部署,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。7.被廣泛接受:主要的IT供給用商都采納EJB體系結(jié)構(gòu),不同供給商的產(chǎn)品只要符合EJB體系結(jié)構(gòu),就都是可互操作的。8.保護(hù)投資:由于企業(yè)必須適應(yīng)新的商業(yè)需求,充分利用現(xiàn)有的企業(yè)信息系統(tǒng)投資,而不是重新制定,全盤更新方案就變得尤為重要,這樣,一個以漸進(jìn)的〔而不是激進(jìn)的,全盤否認(rèn)的〕方式建立在現(xiàn)有系統(tǒng)之上的效勞器平臺是大多數(shù)公司所希望的。J2EE架構(gòu)可以充分利用用戶有的投資,通過允許將現(xiàn)有的信息系統(tǒng)和資產(chǎn)“包裹〞在J2EE應(yīng)用程序中,不要求客戶更換現(xiàn)有技術(shù)。事實上,在關(guān)系數(shù)據(jù)庫中存儲數(shù)據(jù)的企業(yè),已經(jīng)有了一套已具雛形的實體Bean,正等著通過EJB外殼去訪問。這之所以成為可能,主要是因為J2EE擁有廣泛的業(yè)界支持和一些重要的“企業(yè)計算〞領(lǐng)域供給商的參與,每一個供給商都對現(xiàn)有的客戶提供了不用廢棄自己已有投資的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保存使用。2.1.2SSH框架介紹SSH為struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應(yīng)用程序開源框架。集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序。其中使用Struts作為系統(tǒng)的整體根底架構(gòu),負(fù)責(zé)MVC的別離,在Struts框架的模型局部,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實現(xiàn)為根本的Java對象,然后編寫根本的DAO(DataAccessObjects)接口,并給出Hibernate的DAO實現(xiàn),采用Hibernate架構(gòu)實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后由Spring做管理,管理struts和hibernate。它由以下3個框架構(gòu)成:1.Struts框架Struts是Apache組織的一個開放源碼工程。Struts是一個比擬好的MVC框架,提供了對開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Customtaglibrary。其根本構(gòu)成如圖2.1所示。圖2-1Struts框架工作流程Struts框架〔MVC框架〕的優(yōu)點如下:(1)實現(xiàn)了MVC模式,層次結(jié)構(gòu)清晰,使程序員只需關(guān)注業(yè)務(wù)邏輯的實現(xiàn)。(2)豐富的標(biāo)簽庫,大大提高了開發(fā)的效率。(3)Struts提供豐富的攔截器實現(xiàn)。(4)通過配置文件,就可以掌握整個系統(tǒng)各個局部之間的關(guān)系。(5)異常處理機(jī)制,只需在配置文件中配置異常的映射,即可對異常做相應(yīng)的處理。2.Spring框架Spring框架是由于軟件開發(fā)的復(fù)雜性而創(chuàng)立的。Spring使用的是根本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于效勞器端的開發(fā)。從簡單性、可測試性和松耦合性的角度而言,絕大局部Java應(yīng)用都可以從Spring中受益。目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性功能:使用根本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能范圍:任何Java應(yīng)用Spring是一個輕量級控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。Spring框架由以下7個局部組成圖2-2Spring框架構(gòu)成Spring框架的優(yōu)點如下:(1)無入侵性〔在業(yè)務(wù)邏輯代碼中感覺不到Spring框架的存在〕。(2)各個組件之間的耦合極為松散。(3)無需程序員自己實現(xiàn)singleton模式。(4)通過AOP,可以實現(xiàn)事務(wù)管理和日志管理。(5)整合其他的框架,如:struts框架和hibernate框架。3.Hibernate框架Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。它的構(gòu)成如下列圖所示:圖2-3Spring框架構(gòu)成Hibernate框架〔ORM框架〕的優(yōu)點如下:(1)對象/關(guān)系數(shù)據(jù)庫映射〔ORM〕,使用時只需操縱對象,使開發(fā)更加面向?qū)ο蠡?2)無入侵性。(3)簡潔的HQL語句,減少了JDBC與SQL操作數(shù)據(jù)庫的代碼量;(4)移植性好。2.1.3系統(tǒng)層次設(shè)計本系統(tǒng)根據(jù)ssh框架特點,決定使用四層結(jié)構(gòu),這樣做的優(yōu)點是1.降低模塊之間的耦合度。2.提高代碼的重用度。表示層業(yè)務(wù)邏輯層持久化層數(shù)據(jù)庫層表示層業(yè)務(wù)邏輯層持久化層數(shù)據(jù)庫層2.1.4技術(shù)可行性綜述綜上所述,SSH框架具有優(yōu)秀的設(shè)計思想以及成熟的技術(shù),為系統(tǒng)的開發(fā)提供了有效的技術(shù)條件。2.2時間可行性本系統(tǒng)的主要難點在于SSH框架的結(jié)合使用,而網(wǎng)絡(luò)上有眾多相關(guān)資料可供參考,預(yù)計本系統(tǒng)在規(guī)定時間內(nèi)能夠根本完成。開發(fā)方案如下:第5~6周:根據(jù)用戶需求明確本系統(tǒng)要實現(xiàn)的功能,收集、查閱資料,并分析研究,拓寬知識,進(jìn)行知識和技術(shù)準(zhǔn)備。第7~8周:概要設(shè)計,劃分功能模塊和界面設(shè)計。第9~11周:詳細(xì)設(shè)計,包括代碼設(shè)計和數(shù)據(jù)庫設(shè)計。第12~14周:對系統(tǒng)進(jìn)行單元測試,功能測試,性能測試,修改、完善系統(tǒng)。2.3系統(tǒng)需求分析2.3.1系統(tǒng)開發(fā)運行環(huán)境開發(fā)環(huán)境:Windows7TomCat7.0JDK1.6硬件要求:Core21.4G512M內(nèi)存50G硬盤開發(fā)語言:Java數(shù)據(jù)庫:Oracle開發(fā)工具:Eclipse預(yù)期成果:一個基于MVC模式的網(wǎng)上論壇2.3.2功能描述論壇用戶大致可以分為普通用戶和臨時用戶兩種,這兩種用戶擁有不同的權(quán)限,注冊用戶可以查看帖子,發(fā)帖,回帖,查找,并且可以對自己的資料進(jìn)行修改,而臨時用戶只可以瀏覽帖子系統(tǒng)的用例圖如下:普通用戶普通用戶臨時用戶瀏覽帖子發(fā)表帖子回復(fù)帖子修改資料搜索帖子版主帖子管理用戶管理信息管理帖子管理帖子管理用戶管理任命版主信息管理管理員圖2-4系統(tǒng)用例圖本系統(tǒng)是一個基于SHH框架的網(wǎng)上論壇,論壇采用B/S體系結(jié)構(gòu),人們通過瀏覽器訪問網(wǎng)站的主頁,數(shù)據(jù)庫采用了公司常用的oracle,該論壇功能較全,在這里網(wǎng)友可以自由地發(fā)表自己的觀點和對論壇主題發(fā)表意見。該系統(tǒng)主要分為前臺和后臺兩個模塊,前臺主要功能有:(1)用戶注冊:只有注冊了以后才可以發(fā)帖或者回帖。(2)用戶登錄:注冊成為用戶以后就可以登錄到本論壇。(3)修改信息:用戶可是隨時更新自己的資料以及修改登錄密碼。(4)發(fā)帖回帖:用戶可以發(fā)表自己的帖子和回復(fù)別人的帖子,甚至是匿名發(fā)帖。(5)搜索帖子:輸入關(guān)鍵字進(jìn)行帖子的搜索。(6)屏蔽用戶:用戶可以屏蔽其他的用戶,這樣就看不到被屏蔽的用戶發(fā)的帖子(7)刪除帖子:用戶只可以刪除自己的帖子,版主可以刪除別人的帖子,以及自己帖子里的樓層。(8)封禁管理:版主可以封禁不當(dāng)言論的用戶,也可以解封。后臺主要功能有:(1)公告管理:管理員可以進(jìn)行論壇公告的更新和刪除。(2)論壇版塊管理:設(shè)定適宜的版面,增加或者刪除板塊。(3)用戶管理:啟用、禁用、刪除用戶,密碼重置。(4)用戶權(quán)限,給予用戶特殊權(quán)限,比方版主,讓他來幫助維護(hù)和管理論壇2.3.3數(shù)據(jù)流程本系統(tǒng)是為了給廣闊用戶提供一個網(wǎng)上交流的平臺,所以論壇的流程是以用戶為中心進(jìn)行的。數(shù)數(shù)據(jù)流圖〔DataFlowDiagram〕:簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。數(shù)據(jù)流圖具有以下兩個特性:(1)抽象性:完全舍去了具體的物質(zhì),只剩下數(shù)據(jù)的流動、加工處理與存儲。(2)概括性:它可以把信息中的各種不同業(yè)務(wù)處理過程聯(lián)系起來,形成一個整體。本論壇系統(tǒng)的數(shù)據(jù)流程圖如下:(4)(5)(7)(6)(5)(8)(9)(3)用戶(4)(5)(7)(6)(5)(8)(9)(3)用戶查看帖子P2F1帖子信息P3回復(fù)帖子P1發(fā)表帖子P4搜索帖子P5搜索用戶F2用戶資料P6修改資料(1)(3)(2)(4)(5)(5)(6)(7)(8)(9)(10)(11)(12)(13)說明:⑴——訪問信息,⑵⑶⑽⑾——用戶信息,⑷——發(fā)表帖子信息,⑸更新帖子信息,⑹搜索信息⑺——獲取帖子信息,⑻回復(fù)信息,⑼搜索用戶,⑿更新用戶信息,⒀獲取用戶資料圖2-5數(shù)據(jù)流程圖第3章系統(tǒng)設(shè)計3.1數(shù)據(jù)庫設(shè)計數(shù)數(shù)據(jù)庫設(shè)計(DatabaseDesign)是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求〔信息要求和處理要求〕。在數(shù)據(jù)庫領(lǐng)域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)。數(shù)據(jù)庫和設(shè)計概述1.數(shù)據(jù)庫是信息系統(tǒng)的核心和根底,把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息。
2.數(shù)據(jù)庫是信息系統(tǒng)的各個局部能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在。
3.數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成局部。3.1.1概念模型設(shè)計(E-R圖)E-R模型的根本概念E-R圖也稱實體-聯(lián)系圖(EntityRelationshipDiagram),提供了表示實體類型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。實體-聯(lián)系模型〔簡稱E-R模型〕是由P.P.Chen于1976年首先提出的。它提供不受任何DBMS約束的面向用戶的表達(dá)方法,在數(shù)據(jù)庫設(shè)計中被廣泛用作數(shù)據(jù)建模的工具。E-R數(shù)據(jù)模型問世后,經(jīng)歷了許多修改和擴(kuò)充。ER圖由不同實體類型、關(guān)系、特性和類型構(gòu)成。實體是用戶的實際對象,有時可能會更加抽象,但必須要有業(yè)務(wù)的意義。
1.屬性:事物的特性。2.實體:現(xiàn)實世界中的事物。3.聯(lián)系:現(xiàn)實世界中事物間的關(guān)系。實體集的關(guān)系有一對一、一對多、多對多的聯(lián)系。本系統(tǒng)的E-R圖:圖3-1系統(tǒng)E-R圖數(shù)據(jù)庫表以及關(guān)系建立根據(jù)以上步驟建立表1.用戶信息表2.主題表3.回帖表4.板塊表3.1.3數(shù)據(jù)庫結(jié)構(gòu)詳細(xì)設(shè)計1.用戶信息表用戶信息表用來存放用戶名,密碼,用戶類型,用戶id,創(chuàng)立時間,登陸次數(shù),最后登錄時間等信息表3-1用戶信息表字段名數(shù)據(jù)類型長度主鍵外鍵說明BbsidInt0是否用戶idUsernameVarchar20否否用戶名PasswordVarchar20否否密碼CreatedateDate0否否創(chuàng)立時間LogincountInt0否否登陸次數(shù)IsonlineBoolean0否否是否在線ActorInt0否否用戶類型2.主題表主題表用來存放用戶所發(fā)表的主題帖,包括有用戶id,帖子標(biāo)題,帖子內(nèi)容,創(chuàng)立時間,帖子類型,瀏覽量等信息表3-2主題表字段名數(shù)據(jù)類型長度主鍵外鍵說明PostidInt是否帖子idPosttitleVarchar200否否帖子標(biāo)題UseridInt否否用戶idPostcontentVarchar2000否否帖子內(nèi)容ForumidInt否否所屬板塊CreatedateDate否否創(chuàng)立時間BrowsecountInt否否瀏覽量3.回帖表回帖表用來存放用戶所回復(fù)的帖子的信息,包括用戶id,回復(fù)內(nèi)容,回復(fù)時間,主題帖id等信息表3-3回帖表字段名數(shù)據(jù)類型長度主鍵外鍵說明ReplyidInt是否回帖idPostidInt否否所屬帖idUseridInt否否發(fā)帖人idReplydateDate否否回帖日期Replycontentvarchar2000否否回帖內(nèi)容4.板塊表板塊表是用來存放論壇板塊的信息,包括有板塊名稱,板塊描述,版主信息,圖片路徑等。表3-4板塊表字段名數(shù)據(jù)類型長度主鍵外鍵說明ForumidInt是否板塊idForunnameVarchar20否否板塊名稱ForumdescVarchar50否否板塊描述MderatoridInt否否版主idImagepsthVarchar100否否圖片路徑3.2系統(tǒng)概要設(shè)計概要設(shè)計的主要任務(wù)是把需求分析得到的系統(tǒng)擴(kuò)展用例圖轉(zhuǎn)換為軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計軟件結(jié)構(gòu)的具體任務(wù)是:將一個復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分、建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系、確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計包括數(shù)據(jù)特征的描述、確定數(shù)據(jù)的結(jié)構(gòu)特性、以及數(shù)據(jù)庫的設(shè)計。顯然,概要設(shè)計建立的是目標(biāo)系統(tǒng)的邏輯模型,與計算機(jī)無關(guān)。3.2.1功能模塊設(shè)計本系統(tǒng)主要有三大模塊,他們分別是用戶模塊,帖子模塊和后臺管理模塊。本系統(tǒng)的功能層次圖如圖3.2所示論壇系統(tǒng)論壇系統(tǒng)帖子模塊用戶模塊后臺管理用戶注冊用戶登錄資料修改帖子回復(fù)帖子查找帖子發(fā)表 用戶管理 帖子管理論壇管理圖3-2系統(tǒng)功能層次圖如圖3.2系統(tǒng)實現(xiàn)了如下的功能.1.用戶模塊此模塊用來實現(xiàn)用戶的注冊登陸和用戶資料的修改。(1)用戶登陸模塊用戶可以通過此模塊對論壇進(jìn)行登陸,登陸后便擁有普通用戶的所有權(quán)限,比方發(fā)帖回帖,修改資料等等(2)用戶注冊模塊游客可以通過此模塊進(jìn)行用戶的注冊,注冊成功后便可登陸論壇,使用普通用戶功能.(3)資料修改模塊注冊成功的用戶在登錄以后可以通過此模塊對用戶的根本資料進(jìn)行修改。2.帖子模塊(1)帖子發(fā)表模塊用戶在登錄成功以后,可以在論壇中發(fā)表自己的主題帖,發(fā)表成功后,其他用戶就可以在相應(yīng)的板塊查看到發(fā)表的帖子,并可以對其進(jìn)行回復(fù)等操作。(2)帖子回復(fù)模塊用戶在發(fā)表完帖子后,其他用戶便可在相應(yīng)板塊查看到帖子,并可以在帖子中對已發(fā)表的帖子進(jìn)行回復(fù)。(3)帖子查找模塊用戶根據(jù)帖子的標(biāo)題對相關(guān)的帖子進(jìn)行查找。查找到以后可以進(jìn)入帖子進(jìn)行具體操作。3.后臺管理(1)用戶管理模塊該模塊用于管理員對用戶的操作,比方封禁和解封用戶,刪除和修改用戶等。(2)帖子管理模塊帖子管理模塊是用于管理員對帖子進(jìn)行管理的模塊,如果管理員發(fā)現(xiàn)有不當(dāng)言論或者違反規(guī)定的帖子,可以對帖子進(jìn)行刪除,相反如果看到優(yōu)秀的帖子,那么可以對帖子進(jìn)行置頂,加精等操作。帖子管理模塊帖子管理模塊帖子刪除帖子置頂帖子加精圖3-3帖子管理模塊功能層次圖(3)論壇管理模塊.管理員通過該模塊可以進(jìn)行論壇版塊的添加刪除等操作。3.2.2系統(tǒng)界面設(shè)計對于系統(tǒng)來說,用戶界面設(shè)計將非常重要,因為一個交互良好的界面能夠加深瀏覽者的印象.設(shè)計的實現(xiàn)大致上可以分為兩個局部。第一個局部為站點的規(guī)劃以及草圖的繪制。第二局部為網(wǎng)頁的制作,這一部份要在計算機(jī)上完成。設(shè)計首頁的第一步是設(shè)計版面布局。我們可以將網(wǎng)頁看作傳統(tǒng)的報刊雜志來進(jìn)行編輯。這里面有文字、圖像乃至動畫,我們所需要做的就是以適合的方式將圖片和文字進(jìn)行排版。網(wǎng)站設(shè)計是有原那么的,無論使用何種方法對頁面中的元素進(jìn)行組合,都一定得要遵循五個原那么:分割、統(tǒng)一、連貫、比照以及和諧。分割是指將頁面分成假設(shè)干小塊,每一個小塊都有不同的視覺效果,這樣可以使觀者一目了然即使是在信息量很多的時候,使觀者能夠在短時間內(nèi)掌握自己想要的信息。分割不僅是表現(xiàn)形式的需要,換個角度來講,分割也可以被視是為對于頁面內(nèi)容的一種分類的歸納。統(tǒng)一是指設(shè)計頁面的整體性和一致性。網(wǎng)頁的整體效果是至關(guān)重要的,在設(shè)計中切勿將各個塊孤立,那樣只會讓頁面變得散亂。連貫是指要注意頁面的相互關(guān)系。設(shè)計中要學(xué)會利用各組成局部在表現(xiàn)形式上的相互照應(yīng)以及內(nèi)容上的內(nèi)在聯(lián)系,并且要注意網(wǎng)頁設(shè)計風(fēng)格的一致性,從而實現(xiàn)視覺上和心理上的連貫,使整個頁面各個局部銜接的極為自然,猶如一氣呵成。比照就是通過矛盾和沖突,使設(shè)計變得更加富有生氣。比照手法很多,比方曲與直、多與少、虛與實、粗與細(xì)、黑與白、長與短、疏與密、主與次、動與靜、美與丑等等。但是在使用比照的時候應(yīng)慎重,比照過強(qiáng)可能會破壞美感,影響統(tǒng)一。和諧是指整個頁面符合美的法那么。如果一件設(shè)計作品僅僅是形狀、線條色彩的隨意混合,那么這個作品不但沒有活力,而且也無法實現(xiàn)視覺設(shè)計的傳達(dá)功能。和諧不但要看結(jié)構(gòu)與形式,而且也要看作品的視覺效果是否可以與人的視覺感受形成一種溝通,從而產(chǎn)生心靈上的共鳴。這是設(shè)計能否成功的關(guān)鍵。最后簡單設(shè)計系統(tǒng)的主要界面。圖3-4主界面3.2.3系統(tǒng)組件設(shè)計在整個系統(tǒng)中,為了解決諸如中文顯示亂碼,為登錄就進(jìn)入頁面等的問題,本系統(tǒng)需要設(shè)計一些組件,來解決相關(guān)的問題。1.過濾器組件:Java的內(nèi)核和class文件是基于unicode的,這使Java程序具有良好的跨平臺性,但是也會帶來中文亂碼的問題。為了解決此類問題,前臺頁面的值在傳到后臺以后必須設(shè)置它的編碼格式。每次請求和響應(yīng)到達(dá)客戶和效勞器端時,都先經(jīng)過此過濾器對字符進(jìn)行過濾,過濾器中對于接收到的字符進(jìn)行統(tǒng)一編碼。用戶發(fā)送請求用戶發(fā)送請求用戶過濾器效勞器返回響應(yīng)圖3-5字符過濾器原理圖2.權(quán)限管理組件論壇中有許多的權(quán)限,比方游客只能查看帖子而不能發(fā)帖和回帖,而即使登陸的用戶,也只能對自己的資料和帖子進(jìn)行操作。為解決此類問題,本系統(tǒng)是通過檢查session中保存的用戶信息,判斷當(dāng)用戶登陸的用戶是否是普通用戶,根據(jù)不同的情況讓用戶擁有不同的權(quán)限。YN用戶對論壇操作YN用戶對論壇操作用戶是否通過不顯示效勞器判斷權(quán)限NY圖3-6權(quán)限判斷流程3.JSP標(biāo)簽組件本系統(tǒng)是基于MVC模式架構(gòu),所以在JSP網(wǎng)頁中不該存放過多的邏輯判斷,當(dāng)本系統(tǒng)JSP網(wǎng)頁必須要有邏輯判斷的話,本系統(tǒng)提供了一些JSP標(biāo)簽來替代這些邏輯代碼。第4章系統(tǒng)實現(xiàn)程序設(shè)計又稱編碼,是詳細(xì)設(shè)計之后的階段,這個階段的主要任務(wù)是選定特定的程序設(shè)計語言,把經(jīng)過概要設(shè)計和詳細(xì)設(shè)計所得到的以程序設(shè)計說明書中所表達(dá)的信息處理過程描述后,轉(zhuǎn)換成能夠在計算機(jī)上運行程序。4.1系統(tǒng)框架實現(xiàn)在系統(tǒng)的整體設(shè)計中,本系統(tǒng)采取了三層結(jié)構(gòu).這樣結(jié)構(gòu)的優(yōu)點在于靈活性,可移植性和可維護(hù)性。每個層在處理程序上都應(yīng)該有一項明確的責(zé)任,模塊與模塊之間聯(lián)系很少,實現(xiàn)了程序設(shè)計的高內(nèi)聚低耦合。圖4-1SSH框架的結(jié)合使用底層數(shù)據(jù)庫建立在數(shù)據(jù)庫選用中,本系統(tǒng)采用了功能強(qiáng)大的的Oracale數(shù)據(jù)庫,而在數(shù)據(jù)庫的設(shè)計中,前文已經(jīng)確立了表結(jié)構(gòu).根據(jù)這些就可以創(chuàng)立一個數(shù)據(jù)庫,在數(shù)據(jù)庫創(chuàng)立成功并且連接好以后,就可以創(chuàng)立表。進(jìn)入相應(yīng)數(shù)據(jù)庫,使用PLSQLDeveloper工具,依次創(chuàng)立以下表結(jié)構(gòu)。bbsuser用戶信息表forum論壇板塊表post主題表replypost回帖表持久化層的建立(hibernate)Hibernate為java提供了OR持久化機(jī)制和查詢效勞,還給已經(jīng)熟悉SQL和JDBCAPI的Java開發(fā)者一個學(xué)習(xí)橋梁,讓他們學(xué)習(xí)起來更加方便。Hibernate的持久對象是基于Javacollections和POJO。此外系統(tǒng)要建立Hibernate的持久層,首先要把BO持久化。Hibernate是通過POJO工作的,所以數(shù)據(jù)對象需要給所有的fileds加上getter,setter方法。本系統(tǒng)可以在com.service目錄下找到xml文件。Hibernate配置文件的作用是用來告訴程序應(yīng)該連接哪個數(shù)據(jù)庫,使用哪個連接池,加載哪些持久對象等。而Session接口是用來完成Selecting,Saving,Delete和Updating這些操作。4.1.3業(yè)務(wù)邏輯層的建立本系統(tǒng)的業(yè)務(wù)邏輯是由struts中的Action進(jìn)行判斷的,比方處理登錄業(yè)務(wù)的時候就會建立一個LoginAction類來進(jìn)行邏輯判斷,而一些關(guān)聯(lián)的映射。從編碼的視角來看,這層是最容易被無視的一層。卻往往在持久層周圍看到這些業(yè)務(wù)處理的代碼,這其實是不正確的,因為它使程序代碼的緊密偶合,這樣一來,隨著時間推移這些代碼就會變得很難維護(hù)。幸好針對這一問題本系統(tǒng)可以使用Spring框架來解決spring框架都著手于“依賴注射〞(dependencyinjection)等方式供選擇。Spring把程序中所涉及到包含業(yè)務(wù)邏輯和Dao的Objects——例如transactionmanagementhandler〔事物管理控制〕、ObjectFactoris(對象工廠)、serviceobjects〔效勞組件〕——都通過XML來配置聯(lián)系起來。這種方式讓你的對象從創(chuàng)立中釋放了出來,降低了偶合度。每個對象都可以在Spring配置信息applicationContext.xml中用<bean>標(biāo)簽引用。在這里mySessionFactory引用了HibernateSessionFactory,而myTransactionManager引用了HibernateTransactionManage。代碼中myTransactionMangerBean有個sessionFactory屬性HibernateTransactionManager有個sessionFactorysetter和getter方法,這是用來在Spring啟動的時候?qū)崿F(xiàn)"依賴注入"〔dependencyinjection〕的。在sessionFactory屬性里引用mySessionFactory。這兩個對象在Spring容器初始化后就被組裝了起來了。這樣的搭配讓你從單例〔singletonobjects〕和工廠〔factories〕中解放了出來,降低了代碼的維護(hù)代價。mySessionFactory.的兩個屬性,分別是用來注入mappingResources和hibernatePropertes的。圖4.2Spring基于配置文件,將各個Bean搭建在一起。4.2系統(tǒng)功能模塊實現(xiàn)登錄模塊代碼:BBSUserServicebus=newBBSUserService(); Stringusername=request.getParameter("username")==null?"":request.getParameter("username"); Stringpassword=request.getParameter("password")==null?"":request.getParameter("password"); Stringautologin=request.getParameter("autologin")==null?"":request.getParameter("autologin"); Stringrefferurl=(String)request.getSession().getAttribute("refferurl");intexpiretime=60*10; BBSUseruser=bus.Login(username,password);if(user!=null){ request.getSession().setAttribute("user",user); request.getSession().setAttribute("username",username); request.getSession().setAttribute("userid",user.getBbsid()); Stringvalue=username+":"+password+":"+(System.currentTimeMillis()+expiretime*1000);if(autologin.equals("yes")){ Cookiecookie=newCookie("AutoLogin",URLEncoder.encode(value,"UTF-8")); cookie.setMaxAge(expiretime); cookie.setPath(getServletContext().getContextPath()); response.addCookie(cookie); } System.outprintln(""+request.getContextPath()+refferurl); }else{"); request.getRequestDispatcher(refferurl).forward(request,response); }用戶管理代碼:Stringuserid=request.getParameter("userid")==null?"":request.getParameter("userid"); PrintWriterout=response.getWriter(); BBSUserServicebus=newBBSUserService(); System.out.println("userid"+userid);if(!userid.equals("")){booleanb=bus.deleteUser(Integer.parseInt(userid));if(b==true){ Stringstr="[{'flag':'true',}]"; JSONArrayjsonEmp=JSONArray.fromObject(str); out.print(jsonEmp); } }4.2.1用戶模塊實現(xiàn)在用戶模塊的設(shè)計中,首先完成的是業(yè)務(wù)邏輯層的相應(yīng)action類的編寫,之后在通過具體的需要編寫相應(yīng)的數(shù)據(jù)庫訪問DAO。在一切結(jié)束之后,從業(yè)務(wù)邏輯類和DAO中抽象出接口,通過spring的IOC對接口進(jìn)行對象注入。1.用戶注冊圖4-3用戶注冊當(dāng)用戶在進(jìn)行注冊的時候,通過onfoucs事件及onblur事件來激活包含Ajax的方法,將數(shù)據(jù)傳到后臺然后跟數(shù)據(jù)庫里的數(shù)據(jù)作比照,進(jìn)行驗證用戶和郵箱是否已存在,如果已經(jīng)存在那么無法完成注冊。注冊的時候還要輸入驗證碼,驗證碼是由后臺生成以后放到session中,然后驗證的時候也是將數(shù)據(jù)通過Ajax傳回到后臺進(jìn)行驗證。用戶登錄:2.用戶登錄圖4-4用戶登錄用戶登錄的時候首先會判斷session中是否有用戶信息,如果沒有那么讀取cookie里邊的信息,如果cookie中有而且信息正確就會把cookie里的信息放到session中,這樣就自動登錄了。圖4-5用戶模塊功能流程圖3.用戶空間圖4-3版主的空間圖4-3普通空間用戶登錄成功以后可以進(jìn)入自己的空間里,空間里可以查看自己的個人資料,發(fā)表的主題以及回復(fù)的帖子。如果是版主的話還可以進(jìn)行帖子和用戶的管理,也就是帖子的加精置頂,用戶的封禁等等。如果不是版主的話帖子管理和用戶管理是會被隱藏的。4.2.2帖子模塊實現(xiàn)帖子模塊的完成流程和會員模塊類似,都是先根據(jù)JSP網(wǎng)頁,建立相映的Action邏輯判斷類,之后建立和帖子有關(guān)的數(shù)據(jù)庫訪問DAO,最后抽象出接口進(jìn)行依賴注入,編寫帖子模塊首先遇到的難點是分頁,在進(jìn)行了一些參考學(xué)習(xí)后,本系統(tǒng)提供了分頁的功能。intpage當(dāng)前頁數(shù)intperPageNum本頁顯示的帖子數(shù)目intpagecount總頁數(shù)intpagebegin本頁首個帖子序號通過這四個屬性以及數(shù)據(jù)庫語句“select*from(selecttemp.*,rownumrnfrom(select*frompostwhereposttitlelike?andsubforumid=?)tempwhererownum<=")).append(pageBegin+pageSize).append(")").append("wherern>").append(pageBegin).toString()〞就能進(jìn)行分頁了。圖4-4分頁效果圖當(dāng)用戶進(jìn)入某論壇時,就會顯示出分頁信息,并且把相關(guān)的帖子封裝到response響應(yīng)中,發(fā)送給用戶.當(dāng)我們每次查看某個帖子,或回復(fù)某個帖子時,回復(fù)和查看數(shù)量都會增加,但是查看數(shù)量一次會話只會增加一個,這樣才可以真正統(tǒng)計有多少不同用戶進(jìn)行了查看。帖子模塊還有一個重要功能就是發(fā)帖:圖4-5發(fā)帖圖發(fā)帖的時候既有圖片又有文字而且還有段落格式,為此用到了現(xiàn)在很流行而且功能強(qiáng)大的ckeditor編輯器,這個編輯器能夠?qū)extarea中輸入的內(nèi)容轉(zhuǎn)換成html語言,將生成的html語言存入數(shù)據(jù)庫,這樣就解決了上述問題。圖4-6帖子模塊功能流程圖4.2.3后臺管理員模塊實現(xiàn)后臺管理模塊是管理員對論壇進(jìn)行管理的平臺,在此模塊實現(xiàn)的過程中,最重要的一點就是權(quán)限的控制,只有管理員的身份才可以對此模塊進(jìn)行操作。和版主相比,管理員那么可以管理所有的用戶帖子以及板塊。管理員可以在此模塊中主要完成對帖子和會員的管理,管理員可以通過用戶的用戶名對其進(jìn)行搜索,從而實現(xiàn)管理。圖4-7管理員功能界面圖4-8后臺模塊功能圖第5章系統(tǒng)的調(diào)試與測試5.1測試概述軟件測試目的軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試,以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷。應(yīng)根據(jù)開發(fā)各階段的需求、設(shè)計等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計測試用例,并利用這些實例來運行程序,以便發(fā)現(xiàn)錯誤。信息系統(tǒng)測試應(yīng)包括軟件測試、硬件測試和網(wǎng)絡(luò)測試。硬件測試、網(wǎng)絡(luò)測試可以根據(jù)具體的性能指標(biāo)來進(jìn)行,此處所說的測試更多的是指軟件測試。系統(tǒng)測試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟,是對系統(tǒng)開發(fā)過程中的系統(tǒng)分析系統(tǒng)設(shè)計和實施的最后復(fù)查。根據(jù)測試的概念和目的,在進(jìn)行信息系統(tǒng)測試時應(yīng)遵循以根本原那么。應(yīng)盡早并不斷地進(jìn)行測試。測試不是在應(yīng)用系統(tǒng)開發(fā)完之后才進(jìn)行的。由于原始問題的復(fù)雜性、開發(fā)各階段的多樣性以及參加人員之間的協(xié)調(diào)等因素,使得毛開發(fā)各個階段都有可能出現(xiàn)錯誤。因此測試應(yīng)貫穿在開發(fā)的各個階段,盡早糾正錯誤,消除隱患。測試工作應(yīng)該防止由原開發(fā)軟件的人或小組承當(dāng),一方面,開發(fā)人員往往不愿召認(rèn)自己的工作,總認(rèn)為自己開發(fā)的軟件沒有錯誤;另一方面,開發(fā)人員的錯誤很對由本人測試出來,很容易根據(jù)自己編程的思路來制定測試思路,具有局限性。測試工作應(yīng)由專門人員來進(jìn)行,這樣會更客觀,更有效。設(shè)計測試方案的時候,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預(yù)期的輸出結(jié)果。將實際輸出結(jié)果與預(yù)期結(jié)果相比擬就能發(fā)現(xiàn)測試對象是否正確。在設(shè)計測試用例時,不僅要設(shè)計有效合理的輸入條件,也要包含不合理、失效的輸入條件。測試的時候,人們往往習(xí)慣按照合理的、正常的情況進(jìn)行測試,而忽略了對異常、不合理、意想不到的情況進(jìn)行測試,而這些可能就是隱患。在測試程序時,不僅要檢驗程序是否做了該做的事,還要檢驗程序是否做了不該做的事。多余的工作會帶來副作用,影響程序的效率,有時會帶來潛在的危害或錯誤。嚴(yán)格按照測試方案來進(jìn)行,防止測試的隨意性。測試方案應(yīng)包括測試內(nèi)容、進(jìn)度安排、人員安排、測試環(huán)境、測試工具和測試資料等。嚴(yán)格的按照測試方案可以;認(rèn)證進(jìn)度,使各方面都得以協(xié)調(diào)進(jìn)行。妥善保存測試方案、測試用例,作為軟件文檔的組成局部,為維護(hù)提供方便。軟件測試的任務(wù)1、尋找Bug。
2、防止軟件開發(fā)過程中的缺陷。
3、衡量軟件的品質(zhì)。
4、關(guān)注用戶的需求。5.1.3測試環(huán)境Apache提供的Web效勞器Tomcat7.0使得用戶可以在Windows2000以上操作系統(tǒng)下發(fā)布自己設(shè)計的動態(tài)網(wǎng)頁。因此對論壇的調(diào)試工作主要是利用Tomcat7.0的強(qiáng)大功能在本機(jī)下完成的。為了在本機(jī)下瀏覽Web頁面,首先在創(chuàng)立該系統(tǒng)的站點上〔該系統(tǒng)使用的是Web的默認(rèn)站點〕將IP地址設(shè)定為127.0.0.1,它的缺省域名值為localhost。然后向瀏覽器輸入本地動態(tài)網(wǎng)頁的URL,Web效勞器在收到瀏覽器傳送的URL之后找到網(wǎng)頁文件,并在效勞器端執(zhí)行該文件后將此文件以HTML文件的形式返回該瀏覽器。5.2單元測試黑盒測試在單元測試中分別對用戶信息模塊,帖子模塊和后臺管理模塊進(jìn)行分別測試.首先對各個模塊進(jìn)行黑盒測試,在各種條件下運行模塊是否能正常運行,比方還沒有登陸就發(fā)帖,沒有權(quán)限發(fā)帖等等。圖5-1測試未登錄發(fā)帖圖5-2賬號被封禁發(fā)帖白盒測試白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作。這一方法是把測試對象看作一個翻開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試,通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。表5-1登陸測試用例測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果用例類型按不同
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鹽城師范學(xué)院《中學(xué)基礎(chǔ)教育研究專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年機(jī)械五金塑料件項目合作計劃書
- 2024個人土地承包合同范本大全
- 廣西梧州柳州2024年高三下學(xué)期第二次診斷性測試數(shù)學(xué)試題
- 廣西南寧市二中2024年高三5月考數(shù)學(xué)試題
- 2024裝修合同中的關(guān)鍵詞
- 鹽城師范學(xué)院《藝術(shù)概論》2022-2023學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《唐宋詩詞鑒賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《水文學(xué)與水資源》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024貨物運輸出租合同范文
- 《甲基化與腫瘤》PPT課件.ppt
- 中國電信渠道管理工作指導(dǎo)意見
- 海水比重與鹽度換算表
- 行政法對憲法實施的作用探討
- BIM等信息技術(shù)的使用
- 西方發(fā)愿文是一篇圓滿的作品它包括了初中后三階段最
- 檁條規(guī)格選用表
- 圖形推理100道(附答案)
- 俄語視聽說基礎(chǔ)教程1
- 群青生產(chǎn)工藝過程
- 集團(tuán)審計指令函
評論
0/150
提交評論