版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
畢業(yè)設(shè)計題目:基于SSH構(gòu)架的博客系統(tǒng)的設(shè)計和實現(xiàn)Englishtitle:TheDesignandImplementationfortheblogssystembasedonSSH姓名:xxxxx學(xué)號:xxxxxxx專業(yè)名稱:計算機科學(xué)與技術(shù)指導(dǎo)教師:xxxxx二零一零年五摘要PAGE東華理工大學(xué)長江學(xué)院畢業(yè)設(shè)計緒論PAGE1摘要本文研究了當今博客系統(tǒng)的市場需求和種種的優(yōu)勢與不足,以及博客在中國發(fā)展迅速這一現(xiàn)狀,提出了開發(fā)一個專業(yè)的博客管理系統(tǒng)的思想。本文對博客系統(tǒng)的運行機制、組成、相關(guān)可應(yīng)用技術(shù)進行了深入的研究和分析,確定符合現(xiàn)在博客管理的需求,詳細闡述了系統(tǒng)的總體設(shè)計和詳細設(shè)計,并在此基礎(chǔ)上,應(yīng)用當前最流行的J2EE三層結(jié)構(gòu)、JSP技術(shù)、數(shù)據(jù)庫等與系統(tǒng)開發(fā)相關(guān)的技術(shù)完成系統(tǒng)主要功能的實現(xiàn)。本博客系統(tǒng)致力為廣大用戶提供優(yōu)質(zhì)的互動交流平臺,實現(xiàn)對博客發(fā)表文章、評論、圖片、好友等數(shù)據(jù)的管理,同時實現(xiàn)了博客內(nèi)容及時、快速更新的功能,系統(tǒng)不僅保留了傳統(tǒng)博客系統(tǒng)的功能,還加上了一些人性化的界面設(shè)計,使用戶對博客的操作更為的方便。為了滿足博客信息管理系統(tǒng)的要求,實現(xiàn)系統(tǒng)靜態(tài)與動態(tài)頁面的相互分離,本系統(tǒng)采用了SSH構(gòu)架設(shè)計,從職責上分為三層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。其中使用Struts2作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負責MVC的分離,在Struts2框架的模型部分,利用Hibernate框架對持久層提供支持,業(yè)務(wù)層用Spring支持。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實現(xiàn)為基本的Java對象,然后編寫基本的DAO接口,并給出Hibernate的DAO實現(xiàn),采用Hibernate架構(gòu)實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后由Spring完成業(yè)務(wù)邏輯。關(guān)鍵詞:表示層;業(yè)務(wù)邏輯層;數(shù)據(jù)持久層;Struts;Hibernate;Spring東華理工大學(xué)長江學(xué)院畢業(yè)設(shè)計AbstractAbstractInthispaperanalyzesthemarketdemandofbloggingsystemanditsadvantagesandinadequate,andthestatusofthatblogsdevelopedrapidlyinchina.Proposedtodesignacorporatessh-basedbolgsystemsthinking.PapersontheBlogSystemoperationmechanism,composition,relatedtechniquescanbeappliedtoin-depthresearchandanalysis,detaileddesignofthesystemanddetaileddesign,andonthisbasis,applicationofthemostpopularj2eethree-tierstructureandjsptechnology,databasesandthesystemsdevelopmentoftechnologytocompletesystemofthemainfeatures.Thisblogsystemiscommittedtoofferhighqualityinteractiveexchangeplatformforcustomers.Implementemanagethedataofpublisharticles,comments,pictures,companionsandsoon.ThesystemusesSSHframeworkdesigninordertomeetthebloginformationmanagementsystemrequirements,andimplementthestaticanddynamicpagesseparate.Thesystemisdividedintothreelayersbasedonthefunctions;therearePresentationLayer,BusinessLogicLayerandDataPersistenceLayer.ItusesStruts2asoverallinfrastructuretoseparatetheMVC.InthemodelpartoftheStruts2,itusesHibernateframeworktosupportpersistencelayerandusesSpringframeworktosupportbusinesslayer.Thespecificapproachisaccordingtothedemandtoproposesomemodelswiththeobject-orientedanalysismethod,andrealizesthesemodelsforbasicobjectofJava,thencompilesthebasicDAOconnectionandrealizesitinHibernate.ItusestheDAOwhichmadebytheHibernateframeworktoachievetheconversionandaccessbetweenJavaanddatabase,finallyitcompletestheservicelogicbySpringframework.Keywords:PresentationLayer;BusinessLogicLayer;Datapersistencelayer;Struts;Hibernate;Spring目錄目錄緒論 11.1概述 11.2研究背景和發(fā)展趨勢 11.2.1研究背景 11.2.2發(fā)展趨勢 21.3研究的目的和意義 21.4本文工作概述 21.5本文結(jié)構(gòu) 3第2章系統(tǒng)相關(guān)技術(shù) 42.1體系結(jié)構(gòu) 42.2JSP簡介 42.3ECLIPSE簡介 52.4TOMCAT簡介 52.5MYSQL簡介 52.6Struts2簡介 52.7Spring簡介 62.8Hibernate簡介 6第3章系統(tǒng)分析 73.1系統(tǒng)可行性分析: 73.2系統(tǒng)需求分析: 73.2.1功能需求分析 73.2.2系統(tǒng)的業(yè)務(wù)需求及流程 83.2.3系統(tǒng)數(shù)據(jù)分析及數(shù)據(jù)流圖 83.2.4系統(tǒng)數(shù)據(jù)字典 9第4章系統(tǒng)數(shù)據(jù)庫設(shè)計 114.1概念設(shè)計 114.2數(shù)據(jù)表結(jié)構(gòu) 124.3數(shù)據(jù)表結(jié)構(gòu)關(guān)系 16第5章系統(tǒng)總體設(shè)計 175.1系統(tǒng)的總體設(shè)計原則 175.2系統(tǒng)功能設(shè)計 175.2.1總體功能描述 175.2.2功能模塊設(shè)計 17第6章系統(tǒng)詳細設(shè)計與實現(xiàn) 196.1SSH構(gòu)架的搭建及配置文件 196.2系統(tǒng)編碼設(shè)計 206.2.1編寫持久對象層類 206.2.2編寫數(shù)據(jù)訪問層類 226.2.3編寫業(yè)務(wù)邏輯層類 236.2.4編寫WEB層類 246.3系統(tǒng)主要功能模塊詳述 266.3.1后臺:博客管理模塊 266.3.2前臺:用戶界面模塊 32總結(jié)與展望 377.1博客系統(tǒng)的主要特點 377.2系統(tǒng)的不足之處 377.3前景展望 37致謝 38參考文獻 39緒論PAGE42緒論“博客”(Blog或Weblog)一詞源于“WebLog(網(wǎng)絡(luò)日志)”的縮寫,是一種十分簡易的傻瓜化個人信息發(fā)布方式。任何人都可以像使用免費電子郵件一樣,完成個人網(wǎng)頁的創(chuàng)建、發(fā)布和更新。博客就是開放的私人空間,可以充分利用超文本鏈接、網(wǎng)絡(luò)互動、動態(tài)更新等特點,在網(wǎng)絡(luò)中,精選并鏈接全球互聯(lián)網(wǎng)中最有價值的信息、知識與資源;也可以將個人工作過程、生活故事、思想歷程、閃現(xiàn)的靈感等及時記錄和發(fā)布,發(fā)揮個人無限的表達力;更可以以文會友,結(jié)識和匯聚朋友,進行深度交流溝通。它目前是眾多機構(gòu)和媒體評為的最熱門的互聯(lián)網(wǎng)現(xiàn)象。其實博客并沒有特別之處。但不經(jīng)意間,博客竟如雨后春筍般冒出來,博得了越來越多網(wǎng)民的歡心,并引發(fā)了各種新的應(yīng)用熱潮。它最大的吸引力在于,只要你會發(fā)郵件,就可以輕松創(chuàng)建自己的網(wǎng)絡(luò)媒體。1.1概述博客是個人性和公共性的結(jié)合體,其精髓不是主要表達個人思想,不是主要記錄個人日常經(jīng)歷;而是以個人的視角,以整個互聯(lián)網(wǎng)為視野,精選和記錄自己在互聯(lián)網(wǎng)上看到的精彩內(nèi)容,為他人提供幫助,使其具有更高的共享價值。博客精神的核心并不是自娛自樂,甚至不是個人表達自由,相反,是體現(xiàn)一種利他的共享精神,為他人提供幫助。個人日記和個人網(wǎng)站主要表現(xiàn)的還是“小我”,而博客表現(xiàn)的是“大我”。也許形式上很接近,但內(nèi)在有著本質(zhì)的差異。所有優(yōu)秀博客網(wǎng)站中,真正表達作者個人的內(nèi)容非常有限,最多只是點綴,而不像個人網(wǎng)站那樣是核心。1.2研究背景和發(fā)展趨勢1.2.1研究背景博客的精神是:自由表達,開放寬容,個性張揚,專業(yè)精神。在沒有自己的博客之前,人們會經(jīng)常進出于論壇發(fā)表貼子或者通過即時通信軟件聊天,來表達自已的想法,可是這些都是零散的和雜亂的。博客的出現(xiàn),讓人們可以不斷的把自己以前的和每天激發(fā)的一些想法或者感受整理放在自己的博客上,每次在寫文章的時候,可能又會產(chǎn)生新的想法。雖然一些想法一些思考只是皮毛,沒有什么深度,但是當下筆去寫的時候每次都會對某個小小的問題有了更多的一點點思考,再寫博客的時候就感覺到了一種滿足感,一種想法得以釋放思考得以延伸的滿足感。生活中每天的一個小小的事情都會引起人們的思考,甚至是和朋友的聊天中一個小小的火花迸發(fā)。督促自己努力、把一時的想法變成觀點,爭取在生命中的每天里留下點什么,這也是人們寫博客的目的之一。這樣就能督促自己每一天不要渾渾噩噩,時光流逝無痕無聲無息,寫博客也是在自己的每一天上留下了一道淺淺的思考和劃痕。1.2.2發(fā)展趨勢趨勢一:博客現(xiàn)在正在形成個人的信譽機制,有了博客之后就確立了一個個人虛擬身份,簡單的來講就是個人在互聯(lián)網(wǎng)上是有名有姓的,而不再是一種匿名的行為,網(wǎng)民從流浪漢變成了一個定居者。以前在互聯(lián)網(wǎng)上的各種行為都是在匿名狀態(tài)中,相互之間是不認識的,但有了博客之后可以天天關(guān)注,而別的人也可以通過博客找到這個人。這樣隨著時間的積累就會產(chǎn)生一個新的東西,概括叫做“個人的信譽”,個人的信譽就是博客和博客之間發(fā)展各種關(guān)系的組合,這種信譽對每個人來講可能是不同的,但對每個博客來講就產(chǎn)生了新的評價機制,這個機制將是博客商業(yè)化的一個前提條件。趨勢二:博客越來越呈現(xiàn)出富媒體化,早期的博客是以文字為主,但隨著多媒體發(fā)展博客相冊、博客圖片已經(jīng)成為博客的基本配置,而現(xiàn)在許多博客網(wǎng)站已經(jīng)提供了博客音頻和博客視頻。趨勢三:博客現(xiàn)在正在形成并完善精選機制,博客作為自媒體和個人媒體,產(chǎn)生的信息非常巨大。其中難免產(chǎn)生信息垃圾,隨著博客的發(fā)展,博客通過精選機制精選出大家喜聞樂見的信息,像國內(nèi)網(wǎng)摘、博客的評價系統(tǒng)等。1.3研究的目的和意義隨著計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,人們對Internet應(yīng)用的需求也越來越多,其中網(wǎng)上交友或利用網(wǎng)絡(luò)和朋友家人聯(lián)系,在線管理自己的相片等已經(jīng)成為廣大網(wǎng)民的共同需求,在這個背景下,我們的博客系統(tǒng)應(yīng)需而出。一般一個博客就是一個頁面,它通常由簡短而且經(jīng)常更新的帖子構(gòu)成,所有的文章都是按照年份和日期排列,有些類似斑竹的日記??瓷先テ降?,但它可以讓每個人零成本、零維護地創(chuàng)建自己的網(wǎng)絡(luò)媒體,每個人都可以隨時把自己的思想和靈感更新到博客站點上。博客的人性化和平民視角使得它提供的消息更貼近人們的生活,極大的豐富了人們業(yè)余生活,同時也給人與人之間的溝通架起一座橋梁。1.4本文工作概述本論文對基于SSH結(jié)構(gòu)的博客管理系統(tǒng)進行了深入的研究,并對系統(tǒng)的關(guān)鍵技術(shù)和分析設(shè)計進行了詳細的分析闡述。利用該系統(tǒng),網(wǎng)友可以在網(wǎng)絡(luò)上發(fā)表日志、修改和刪除日志、上傳照片、查詢博文、瀏覽博文、對日志發(fā)表評論、給博主留言。其中涉及到的主要內(nèi)容有:(1)對系統(tǒng)的可行性及發(fā)展趨勢進行分析,完成整個博客管理系統(tǒng)的需求分析和總體設(shè)計。(2)對系統(tǒng)體系結(jié)構(gòu)及設(shè)計實現(xiàn)中使用的相關(guān)技術(shù)進行分析。(3)完成系統(tǒng)主要功能的詳細設(shè)計與實現(xiàn),包括:前臺模塊、后臺模塊,其中前臺模塊包括:日志瀏覽模塊、相冊瀏覽模塊、留言模塊、瀏覽博主好友模塊,后臺模塊包括:登陸、注冊功能模塊、日志管理模塊、日志類型管理模塊、好友管理功能、相冊管理模塊、留言管理模塊。(4)關(guān)于系統(tǒng)權(quán)限和安全性問題的探討。1.5本文結(jié)構(gòu)本文分為七部分。第一部分首先介紹博客系統(tǒng)的研究背景及發(fā)展現(xiàn)狀,提出運用網(wǎng)絡(luò)技術(shù)開發(fā)博客管理系統(tǒng)的目的和意義。第二部分分析與系統(tǒng)設(shè)計及實現(xiàn)相關(guān)的技術(shù)和數(shù)據(jù)庫技術(shù),明確系統(tǒng)的操作流程。第三部分對博客管理系統(tǒng)進行需求分析,包括對系統(tǒng)進行可行性分析,確定在目前的條件下,開發(fā)博客系統(tǒng)是可行的。第四部分對系統(tǒng)數(shù)據(jù)庫的分析設(shè)計,對系統(tǒng)中的數(shù)據(jù)庫進行模型設(shè)計,包括數(shù)據(jù)流圖、實體聯(lián)系圖及數(shù)據(jù)表結(jié)構(gòu)。第五部分對系統(tǒng)的總體設(shè)計進行了全面說明,確定系統(tǒng)的開發(fā)思想以及開發(fā)環(huán)境,并對系統(tǒng)中的代碼進行設(shè)計。第六部分闡述基于SSH結(jié)構(gòu)博客管理系統(tǒng)主要功能的詳細設(shè)計與實現(xiàn)。第七部分對博客系統(tǒng)的研究與設(shè)計工作進行總結(jié),指出系統(tǒng)建設(shè)中存在的不足及解決方案,為將來系統(tǒng)的設(shè)計改進打下基礎(chǔ)。第2章系統(tǒng)相關(guān)理論基礎(chǔ)第2章系統(tǒng)相關(guān)理論基礎(chǔ)本系統(tǒng)的開發(fā)采用的是當下最流行的SSH構(gòu)架Struts2+Hibernate+Spring框架,在該框架中,JavaEE的3層結(jié)構(gòu):表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層完美結(jié)合在一起。實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數(shù)據(jù)庫的變化也不會對前端有所影響,大大提高了系統(tǒng)的可復(fù)用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發(fā)效率2.1體系結(jié)構(gòu)SSH框架是典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是傳統(tǒng)的JSP技術(shù),自1999年問世以來,經(jīng)過多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅實的基礎(chǔ)。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務(wù)邏輯層分離,又細分為以下幾種。Web層,就是MVC模式里面的“C”(controller),負責控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC框架采用Struts。Service層(就是業(yè)務(wù)邏輯層),負責實現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO層為基礎(chǔ),通過對DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。DAO層,負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。PO,持久化對象。通過實體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很方便地實現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫,該系統(tǒng)采用Hibernate作為ORM框架。Spring的作用貫穿了整個中間層,將Web層、Service層、DAO層及PO無縫整合,其數(shù)據(jù)服務(wù)層用來存放數(shù)據(jù)。一個良好的框架可以讓開發(fā)人員減輕重新建立解決復(fù)雜問題方案的負擔和精力;它可以被擴展以進行內(nèi)部的定制化;并且有強大的用戶社區(qū)來支持它??蚣芡ǔD芎芎玫慕鉀Q這個問題。2.2JSP簡介
JSP即JavaServerPages,是基于JavaServlet以及整個Java體系的Web開發(fā)技術(shù)。JSP已經(jīng)成為開發(fā)Web動態(tài)網(wǎng)頁重要、快速和有效的工具,是全新的網(wǎng)絡(luò)服務(wù)器編程環(huán)境。JSP充分利用了Java的強大功能,是一種優(yōu)秀的服務(wù)器端技術(shù)。隨著Java技術(shù)的日益成熟和流行,JSP在網(wǎng)絡(luò)編程中也變得越來越重要。JSP基于強大的Java語言,具有極強的擴展能力,良好的縮收性,與平臺無關(guān)的開發(fā)特性,成為構(gòu)建動態(tài)網(wǎng)站的主流技術(shù)之一,JSP有著其他技術(shù)所不具備的優(yōu)勢。其優(yōu)勢在于:可以將內(nèi)容的生成和顯示進行分離、生成可重用的組件、采用標識簡化頁面開發(fā)。2.3ECLIPSE簡介MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:JavaEE模型、WEB開發(fā)工具、EJB開發(fā)工具、應(yīng)用程序服務(wù)器的連接器、JavaEE項目部署服務(wù)、數(shù)據(jù)庫服務(wù)、MyEclipse整合幫助。2.4TOMCAT簡介Tomcat運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;Tomcat是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。當在一臺機器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JSP頁面和Servlet。Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。2.5MYSQL簡介(1)MySQL是一種數(shù)據(jù)庫管理系統(tǒng)。計算機是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫管理系統(tǒng)在計算方面扮演著關(guān)鍵的中心角色,或是作為獨立的實用工具,或是作為其他應(yīng)用程序的組成部分。(2)MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)。關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大的倉庫內(nèi)。這樣就增加了速度并提高了靈活性。(3)MySQL軟件是一種開放源碼軟件。(4)MySQL數(shù)據(jù)庫服務(wù)器具有快速、可靠和易于使用的特點。MySQL服務(wù)器有一套實用的特性集合,這些特性是通過與我們用戶的密切合作而開發(fā)的。在我們的基準測試主頁上,給出了MySQL服務(wù)器和其他數(shù)據(jù)庫管理器的比較結(jié)果。(5)MySQL服務(wù)器工作在客戶端/服務(wù)器模式下,或嵌入式系統(tǒng)中。MySQL數(shù)據(jù)庫軟件是一種客戶端/服務(wù)器系統(tǒng),由支持不同后端的1個多線程SQL服務(wù)器,數(shù)種不同的客戶端程序和庫,眾多管理工具和廣泛的應(yīng)用編程接口API組成。2.6Struts2簡介Struts2是一個優(yōu)秀的,可擴展的企業(yè)級JavaWEB應(yīng)用程序框架。它是一個MVC(ModelViewController,模型,視圖,控制)框架,Struts2提供控制和視圖組件,并通過集成其它的技術(shù)來提高模型??蚣艿目刂乒δ鼙憩F(xiàn)在連接應(yīng)用程序的模型和WEB視圖。當接收到一個請求,控制層調(diào)用一個Action類。Action類檢查或更新應(yīng)用程序的狀態(tài)通過模型層。傳遞數(shù)據(jù)在模型層和視圖層之間,屬性可以被放在Action類,或是一個古老又普通的JAVA類中。通常,模型代表一個JavaBean對象圖。模型用來做“持久性”的工作,同時Action將扮演一個“交通警察”或適配器,框架會提供復(fù)雜的,自動類型轉(zhuǎn)換到簡單的傳輸數(shù)據(jù),在域?qū)ο蠛臀谋镜腍TTP請求之間。2.7Spring簡介Spring是一個開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的。框架的主要優(yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個組件,同時為J2EE應(yīng)用程序開發(fā)提供集成的框架。組成Spring框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。模塊的功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實際的應(yīng)用程序代碼分開。SpringDAO:JDBCDAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應(yīng)商拋出的錯誤消息。異常層次結(jié)構(gòu)簡化了錯誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關(guān)閉連接)。SpringDAO的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。SpringMVC框架:MVC框架是一個全功能的構(gòu)建Web應(yīng)用程序的MVC實現(xiàn)。通過策略接口,MVC框架變成為高度可配置的,MVC容納了大量視圖技術(shù)。Spring框架的功能可以用在任何J2EE服務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring的核心要點是:支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象。2.8Hibernate簡介Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。東華理工大學(xué)長江學(xué)院畢業(yè)設(shè)計第3章系統(tǒng)分析第3章系統(tǒng)分析3.1系統(tǒng)可行性分析:可行性分析也稱為可行性研究,是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟、社會的方面進行分析和調(diào)查,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能夠解決。為了確定開發(fā)具有可行性,對本系統(tǒng)主要進行了一下三個方面的分析。(1)經(jīng)濟可行性。經(jīng)濟可行性主要是對項目的經(jīng)濟效益進行評價。本系統(tǒng)對系統(tǒng)開發(fā)者來說并不需要太高的成本支出,只是對系統(tǒng)的管理者付出管理報酬饑渴,而且開發(fā)周期不需要太長,節(jié)省了人力、物力、財力資源,所以本系統(tǒng)在經(jīng)濟上是可行的。(2)技術(shù)可行性。技術(shù)上的可行性分析主要是分析技術(shù)條件能否順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需求等。在軟件方面,本系統(tǒng)采用的是JSP的J2EE三層結(jié)構(gòu)的SSH構(gòu)架進行開發(fā),數(shù)據(jù)庫采用了MYSQL;在硬件方面,本系統(tǒng)對機器本身沒有太高要求,一般個人電腦完全滿足。通過分析,具有技術(shù)上的可行性。(3)操作可行性。界面設(shè)計時充分考慮用戶的習(xí)慣,使得操作簡單。綜上所述,本系統(tǒng)開發(fā)目標已明確,在技術(shù)和經(jīng)濟等方面具備可行性,并且投入少、見效快,因此系統(tǒng)的開發(fā)時完全可行的。3.2系統(tǒng)需求分析:3.2.1功能需求分析本博客系統(tǒng)分為前臺和后臺兩個大模塊,其中后臺為博客管理頁面,前臺為用戶界面。(1)后臺主要包括以下幾個功能:登陸、注冊功能:用戶可以注冊,注冊時用戶輸入注冊信息,同時向數(shù)據(jù)庫中保存用戶注冊信息。進入后臺時要登錄,輸入用戶名和密碼。日志管理:用戶可以發(fā)表日志,對日志信息查看、修改和刪除。日志信息包括標題、發(fā)表時間、所屬類型、日志描述信息等。日志類型管理:用戶可以添加、刪除、修改日志類型。好友管理功能:用戶可以添加、刪除、查看好友,訪問好友的博客相冊管理:上傳圖片到自己的相冊,刪除相冊中的照片,查看上傳的照片。留言管理:用戶可以對訪問者給自己的留言查看和刪除。(2)前臺主要包括以下功能:日志查看功能:訪問者可以查看博主的日志,并可以按照日志分類來查看。還可以對博主的日志發(fā)表評論。相冊查看功能:查看博主上傳的圖片。留言板功能:給博主留言。查看博主的好友:查看博主的好友。3.2.2系統(tǒng)的業(yè)務(wù)需求及流程注冊用戶可以注冊、登錄本系統(tǒng),對文章、相冊、好友、留言等進行管理,其中包括對各個模塊的信息的增、刪、改、查操作。網(wǎng)友可以訪問博主的博客,瀏覽博主的文章、相冊、好友等信息,還可以對文章進行評論,給博主留言。系統(tǒng)業(yè)務(wù)流程如圖3-1所示:圖3-1博客系統(tǒng)總體業(yè)務(wù)流程圖3.2.3系統(tǒng)數(shù)據(jù)分析及數(shù)據(jù)流圖博客系統(tǒng)中,主要是注冊用戶管理文章、留言、相冊、好友等數(shù)據(jù),數(shù)據(jù)的類型決定了程序?qū)?shù)據(jù)的處理方式也就是算法,因此,數(shù)據(jù)是實現(xiàn)分析的起點?,F(xiàn)通過數(shù)據(jù)流圖的方式分析系統(tǒng)中的數(shù)據(jù)的流動和處理。對注冊用戶,登陸博客系統(tǒng)后,系統(tǒng)接收用戶的添加、修改、刪除請求,通過分析將這種請求轉(zhuǎn)化為相應(yīng)的HQL或者SQL語句執(zhí)行對數(shù)據(jù)庫的相關(guān)的操作,并將執(zhí)行的相應(yīng)結(jié)果送回系統(tǒng)中。系統(tǒng)接收到數(shù)據(jù)庫返回的結(jié)果集,經(jīng)過一定得分析處理,將其轉(zhuǎn)換為JSP頁面,返回到客戶端顯示給用戶。系統(tǒng)運行過程中,主要涉及到兩部分的數(shù)據(jù)流向,一部分是博客注冊用戶在系統(tǒng)后臺管理界面發(fā)出對數(shù)據(jù)庫操作的數(shù)據(jù)流,另一部分是用戶在應(yīng)用前臺使用系統(tǒng)時所產(chǎn)生的數(shù)據(jù)流。圖3-2博客管理系統(tǒng)數(shù)據(jù)流圖對每一個注冊用戶,可以細分為添加、修改、刪除、瀏覽等操作,現(xiàn)以文章管理為例,其具體細節(jié)數(shù)據(jù)流圖如圖3-3所示:圖3-3文章管理詳細數(shù)據(jù)流圖 3.2.4系統(tǒng)數(shù)據(jù)字典網(wǎng)站中的數(shù)據(jù)元素:名字:用戶信息別名:描述:用戶的個人信息,用于對用戶的確認和更新。名字:用戶信息別名:描述:用戶的個人信息,用于對用戶的確認和更新。定義:用戶信息=賬號+密碼+姓名+性別+ QQ號碼+郵箱號碼位置:輸入到用戶瀏覽器(后臺)名字:日志信息別名:描述:日志的詳細信息。定義:日志信息=日志標題+日志類型+日志內(nèi)容+發(fā)表時間+ 日志描述位置:輸入到用戶瀏覽器(后臺)名字:相冊信息別名:描述:相冊的詳細信息。定義:相冊信息=相片名稱+相片存放地址+相片的描述+上傳時間位置:輸入到用戶瀏覽器(后臺)名字:日志類型信息別名:描述:用于對日志進行分類。定義:日志類型信息=類型名稱+類型說明位置:輸入到用戶瀏覽器(后臺)名字:好友信息別名:描述:好友的詳細信息。定義:好友信息=姓名+性別+QQ號碼+博客地址位置:輸入到用戶瀏覽器(后臺)名字:留言信息別名:描述:給訪問過的博主留言。定義:留言信息=留言標題+留言者+內(nèi)容+留言時間位置:輸入到用戶瀏覽器(前臺)名字:評論信息別名:描述:對已有文章進行評論。定義:評論信息=評論標題+評論內(nèi)容+評論時間位置:輸入到用戶瀏覽器(前臺)東華理工大學(xué)長江學(xué)院畢業(yè)設(shè)計第4章系統(tǒng)數(shù)據(jù)庫設(shè)計第4章系統(tǒng)數(shù)據(jù)庫設(shè)計“數(shù)據(jù)庫設(shè)計是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù)”。數(shù)據(jù)庫的模式是整個企業(yè)管理信息系統(tǒng)的基礎(chǔ),合理的數(shù)據(jù)庫模式設(shè)計能夠有效地存儲數(shù)據(jù),直接影響到系統(tǒng)功能的有效實現(xiàn)。4.1概念設(shè)計將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計。E-R數(shù)據(jù)模型是常用的概念設(shè)計表示模型。根據(jù)需求分析,對系統(tǒng)規(guī)劃設(shè)計出的實體有:用戶實體、文章實體、文章類型實體、照片實體、好友實體、留言實體、評論實體,分析各個實體之間的關(guān)系得出系統(tǒng)的數(shù)據(jù)庫設(shè)計E-R圖如圖4-1所示:用戶用戶類型ID好友ID留言ID照片ID評論ID操作評論相冊留言好友類型文章用戶ID姓名用戶ID名稱年齡QQ號博客描述路徑上傳時間屬于包含名稱描述內(nèi)容作者文章ID用戶ID標題作者時間用戶ID內(nèi)容上傳時間姓名密碼性別Email時間描述內(nèi)容標題1:n1:nn:11:n1:n圖4-1各個實體E-R關(guān)系圖4.2數(shù)據(jù)表結(jié)構(gòu)在開發(fā)系統(tǒng)之前,必須對系統(tǒng)所用到的數(shù)據(jù)進行大致的分類和具體的結(jié)構(gòu)設(shè)計,既要做到清晰明了,又要能適應(yīng)系統(tǒng)各項功能的調(diào)用,而不至于產(chǎn)生結(jié)構(gòu)上的邏輯混亂,保證關(guān)鍵數(shù)據(jù)在意外情況下不會被破壞,數(shù)據(jù)庫是系統(tǒng)的重中之重。數(shù)據(jù)庫設(shè)計要遵循一些規(guī)則,一個好的數(shù)據(jù)庫滿足一些嚴格的約束和要求。盡量分離各實體對應(yīng)的表,一個實體對應(yīng)一個表,分析該實體有哪些屬性,對應(yīng)有些什么字段,以及各實體之間的聯(lián)系。實體、屬性與聯(lián)系是進行概念設(shè)計時要考慮的三個元素,也是一個好的數(shù)據(jù)庫設(shè)計的核心。從實際出發(fā),經(jīng)過仔細地設(shè)計,得到各表的設(shè)計如下表所示:表4-1用戶表字段名類型長度主鍵外鍵可否為空特殊操作說明user_idINT4是否自增用戶IDuser_namevarchar50否用戶名user_passwordvarchar30否密碼user_sexvarchar4否性別user_emailvarchar100否郵箱user_qqvarchar30否QQ號表4-2文章表字段名類型長度主鍵外鍵可否為空特殊操作說明article_idINT4是否自增文章IDuser_idINT4是否用戶名Article_typeIdINT4是否類型article_titlevarchar100否標題article_contentvarchar4000否內(nèi)容article_sendTimevarchar30否時間article_createvarchar100否來源article_infovarchar100否描述表4-3文章類型表字段名類型長度主鍵外鍵可否為空特殊操作說明type_idINT4是否自增類型IDtype_namevarchar20否類型名type_infovarchar100否類型說明表4-4好友表字段名類型長度主鍵外鍵可否為空特殊操作說明friend_idINT4是否自增好友IDuser_idINT4是否用戶IDfriend_namevarchar30否好友名friend_sexvarchar4否性別friend_qqvarchar30否QQ號friend_blogvarchar100否好友博客表4-5留言表字段名類型長度主鍵外鍵可否為空特殊操作說明message_idINT4是否自增留言IDuser_idINT4是否用戶IDmessage_titlevarchar30否標題message_authorvarchar30否留言者message_contentvarchar500否留言內(nèi)容message_timevarchar30否留言時間表4-6相冊表字段名類型長度主鍵外鍵可否為空特殊操作說明photo_idINT4是否自增相冊IDuser_idINT4是否用戶IDphoto_namevarchar30否相冊名photo_addrvarchar100否相冊地址photo_infovarchar100否描述photo_timevarchar30否時間表4-7評論表字段名類型長度主鍵外鍵可否為空特殊操作說明review_idINT4是否自增用戶IDreArticle_idINT4是否文章IDreview_authorvarchar30否回復(fù)者review_contentvarchar500否回復(fù)內(nèi)容創(chuàng)建好的七個數(shù)據(jù)庫表如下圖:圖4-3文章表圖4-2用戶表圖4-4文章類型表圖4-5好友表圖4-6留言表圖4-7相冊表圖4-8評論表4.3數(shù)據(jù)表結(jié)構(gòu)關(guān)系通過數(shù)據(jù)庫設(shè)計器可以建立數(shù)據(jù)庫關(guān)系圖,可以對表、索引、鍵、關(guān)系等進行創(chuàng)建、編輯、刪除等。創(chuàng)建可視化的關(guān)系圖,可以直觀的顯示數(shù)據(jù)庫中各數(shù)據(jù)之間的關(guān)系。系統(tǒng)數(shù)據(jù)表整體關(guān)系圖如圖4-13所示:圖4-9系統(tǒng)數(shù)據(jù)表整體關(guān)系圖東華理工大學(xué)長江學(xué)院第5章系統(tǒng)總體設(shè)計第5章系統(tǒng)總體設(shè)計5.1系統(tǒng)的總體設(shè)計原則根據(jù)系統(tǒng)的需求分析,博客管理系統(tǒng)是一個集網(wǎng)絡(luò)、數(shù)據(jù)庫于一體的綜合系統(tǒng),因此系統(tǒng)在總體設(shè)計時應(yīng)遵循以下原則:(1)穩(wěn)定性、實用性、良好的可擴充性和安全性,提供良好的人機界面,界面簡潔,操作簡單。(2)系統(tǒng)的功能設(shè)計完善,能夠有效解決用戶使用中出現(xiàn)的問題,滿足各個方面的使用需要。(3)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計合理,字段屬性要準確,字段長度要滿足實際需要。(4)系統(tǒng)流程合理,能夠符合博客管理及使用的基本操作流程。5.2系統(tǒng)功能設(shè)計5.2.1總體功能描述本系統(tǒng)主要功能分為兩部分,一部分為后臺注冊用戶對博客內(nèi)容的管理,一部分為前臺網(wǎng)友對博客的訪問。(1)用戶管理博客登陸、注冊功能:網(wǎng)友注冊成為博客用戶,進入后臺需要驗證會員信息。日志管理:對日志進行增、刪、改、查。日志類型管理:對日志類型進行增、刪、改、查。好友管理功能:對好友進行增、刪、改、查,訪問好友博客。相冊管理:上傳圖片到自己的相冊,刪除相冊中的照片,查看上傳的照片。留言管理:用戶可以對訪問者給自己的留言查看和刪除。(2)網(wǎng)友訪問博客日志查看功能:查看博主的日志,按照日志分類來查看,對日志發(fā)表評論。相冊查看功能:查看上傳的圖片。留言板功能:給博主留言。查看博主的好友:查看博主的好友。5.2.2軟件所實現(xiàn)的功能強弱是衡量一個軟件的最根本的標準。通過對系統(tǒng)的全面分析并結(jié)合調(diào)研的情況,確定了本系統(tǒng)的功能模塊圖。本系統(tǒng)劃分為兩個大的功能模塊:前臺(用戶界面)和后臺(博客管理)。前臺和后臺又分別劃分為幾個小的模塊,如圖5-2所示為博客系統(tǒng)的功能模塊劃分圖:博客系統(tǒng)博客系統(tǒng)后臺模塊前臺模塊查看相冊冊留言板查看好友瀏覽日志類型管理留言管理好友管理日志管理瀏覽日志登陸注冊登陸注冊相冊管理瀏覽日志冊圖5-1系統(tǒng)模塊東華理工大學(xué)長江學(xué)院畢業(yè)設(shè)計第6章系統(tǒng)詳細設(shè)計與實現(xiàn)第6章系統(tǒng)詳細設(shè)計與實現(xiàn)6.1SSH構(gòu)架的搭建及配置文件(1)創(chuàng)建一個WEB工程,命名為Blog;(2)導(dǎo)入struts2的核心jar包,就是在WEB-INF下的lib文件夾中放入jar包文件:freemaker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.0.14.jar、xwork-2.0.7.jar、struts2-spring-plugin-2.0.14.jar。(3)加載spring,選中工程名,右擊并選擇【MyEclipse】選項下的【AddSpringCapabilities...】(或者在工具欄中選擇【MyEclipse】下的【AddSpringCapabilities...】),在彈出的對話框中進行如下選擇:Spring2.5AOPLibraries、Spring2.5CoreLibraries、Spring2.5PersistenceCoreLibraries、Spring2.5WebLibraries、Spring2.5PersistenceJDBCLibraries。點擊【Next】,點擊Folder文本框后的【Browse】,在彈出對話框中選擇spring配置文件存儲位置為WEB-INF文件夾:點擊【OK】后,再點擊【Finish】完成。至此,已經(jīng)完成加載spring,在WEB-INF文件夾下已經(jīng)生成了配置文件applicationContext.xml。(4)加載Hibernate,選擇【MyEclipse】下的【AddHibernateCapabilities...】,在彈出對話框中進行如下所示操作:全選MyEclipseLibraries,然后選擇CopycheckedLibrary點擊【Next】后,選擇ExistingSpringconfigurationfile單選框,在SessionFactoryId文本框中填入"sessionFactory",如下所示:選擇ExistingSpringconfigurationfile,選擇前面的applicationContext.xmlSessionFactoryId:sessionFactory點擊【Next】,進行如下所示操作:這里需要選擇一個之前在MyEclipse中配置好的一個數(shù)據(jù)庫鏈接。該操作中,只需在BeanId文本框中輸入一個Id名,作為數(shù)據(jù)庫源的代用名,意義不大。然后在DBDriver下拉列表中,選擇MyEclipse中創(chuàng)建好的數(shù)據(jù)庫源xiaoqi,其他信息將自動填寫。點擊【Next】,在彈出對話框中去掉CreateSessionFactoryclass?復(fù)選框,不創(chuàng)建該類,點擊【Finish】完成(創(chuàng)建過程中,加載的jar包文件可能有重復(fù),所以這個時候如果提示有某些jar包重復(fù),問全部保存【KeepExiting】,還是替換掉【Replace】,可以選擇替換掉【Replace】)。(5)配置web.xml文件,其內(nèi)容如下:(6)反向生成實體類文件:在src包下新建一個entity包,將前面數(shù)據(jù)源所示的數(shù)據(jù)庫中的各個表反向生成Hibernate實體類文件。(7)創(chuàng)建數(shù)據(jù)操作文件:在src包下創(chuàng)建dao包。(8)創(chuàng)建Action:在src包下新建一個包actions。(9)創(chuàng)建jsp頁面。6.2系統(tǒng)編碼設(shè)計6.2.1編寫持久對象層類該層由若干實現(xiàn)類即普通的JAVA類(PO)組成,這些需要在相應(yīng)的映射文件中配置,可以在數(shù)據(jù)訪問層的實現(xiàn)類中通過Hibernate框架來訪問持久對象層。本系統(tǒng)共有七個數(shù)據(jù)庫表,分別有七個實體類和它們映射。每個Java類又對應(yīng)一個.hbm.xml映射文件,來將java類的實體變量與數(shù)據(jù)庫的字段映射在一起。以文章表為例:(1)Article.java文件:packageentity;importjava.io.Serializable;publicclassArticleimplementsSerializable{ privateintarticleId;//文章的ID privateintarticleTypeId;//文章類型的ID privateintuserId;//注冊用戶的ID privateStringarticleTitle="";//文章標題 privateStringarticleContent="";//文章內(nèi)容 privateStringarticleSendTime="";//發(fā)表文章的時間 privateStringarticleCreate="";//文章的來源 privateStringarticleInfo="";//文章的描述信息 //每個屬性的getter和setter方法 publicintgetArticleId(){ returnarticleId; } publicintgetUserId(){ returnuserId; } publicvoidsetUserId(intuserId){ this.userId=userId; } publicvoidsetArticleId(intarticleId){ this.articleId=articleId; } publicintgetArticleTypeId(){ returnarticleTypeId; } publicvoidsetArticleTypeId(intarticleTypeId){ this.articleTypeId=articleTypeId; } publicStringgetArticleTitle(){ returnarticleTitle; } publicvoidsetArticleTitle(StringarticleTitle){ this.articleTitle=articleTitle; } publicStringgetArticleContent(){ returnarticleContent; } publicvoidsetArticleContent(StringarticleContent){ this.articleContent=articleContent; } publicStringgetArticleSendTime(){ returnarticleSendTime; } publicvoidsetArticleSendTime(StringarticleSendTime){ this.articleSendTime=articleSendTime; } publicStringgetArticleCreate(){ returnarticleCreate; } publicvoidsetArticleCreate(StringarticleCreate){ this.articleCreate=articleCreate; } publicStringgetArticleInfo(){ returnarticleInfo; } publicvoidsetArticleInfo(StringarticleInfo){ this.articleInfo=articleInfo; }}(2)Article.hbm.xml文件:<hibernate-mappingpackage="entity"> <classname="entity.Article"table="article"> <idname="articleId"type="int"> <columnname="article_id"length="5"/> <generatorclass="assigned"></generator> </id> <propertyname="userId"type="int"> <columnname="user_id"length="5"/> </property> <propertyname="articleTypeId"type="int"> <columnname="article_typeId"length="5"/> </property> <propertyname="articleTitle"type="string"> <columnname="article_title"length="30"/> </property> <propertyname="articleContent"type="string"> <columnname="article_content"length="4000"/> </property> <propertyname="articleSendTime"type="string"> <columnname="article_sendTime"length="30"/> </property> <propertyname="articleCreate"type="string"> <columnname="article_create"length="50"/> </property> <propertyname="articleInfo"type="string"> <columnname="article_info"length="100"/> </property> </class></hibernate-mapping>6.2.2編寫數(shù)據(jù)訪問層類數(shù)據(jù)訪問層類即DAO層的類,負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。本節(jié)以與好友表交互為例:FriendDao.java文件:packagedao;importjava.util.List;importorg.springframework.orm.hibernate3.HibernateTemplate;importentity.Friend;publicclassFriendDaoextendsDAOSupport{ publicFriendDao(HibernateTemplatetemplate){ super(template); } //功能修改好友信息 publicbooleanoperationFriend(Stringoperation,Friendsingle){ if(operation==null) operation=""; if(operation.equals("add")) template.save(single); if(operation.equals("modify")) template.update(single); if(operation.equals("delete")) template.delete(single); returntrue; } //功能查詢所有好友 publicListqueryFriend(intid){ Stringhql="FROMFriendwhereuserId="+id+"ORDERBYfriendName"; returntemplate.find(hql); } //功能根據(jù)ID查詢某個好友的詳細信息 publicFriendqueryFriendSingle(intid){ return(Friend)template.get(Friend.class,id); }}6.2.3編寫業(yè)務(wù)邏輯層類業(yè)務(wù)邏輯層即Service層,負責實現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO層為基礎(chǔ),通過對DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。以好友表為例:FriendService.java文件:packageservices;importjava.util.List;importdao.FriendDao;importentity.Friend;publicclassFriendService{ privateFriendDaofriendDao; publicFriendService(FriendDaofriendDao){ this.friendDao=friendDao; } //添加好友 publicbooleanaddFriend(Friendsingle){ returnfriendDao.operationFriend("add",single); } //刪除好友 publicbooleandeleteFriend(Friendsingle){ returnfriendDao.operationFriend("delete",single); } //修改好友 publicbooleanupdateFriend(Friendsingle){ returnfriendDao.operationFriend("modify",single); } //獲取指定id的好友 publicFriendgetFriendInfo(intid){ returnfriendDao.queryFriendSingle(id); } //列出好友 publicListqueryFriendList(intid){ returnfriendDao.queryFriend(id); }}6.2.4編寫WEB層類該層主要包括JSP頁面、MVC中的“C”(Control),其中“C”就是Struts2中的Aciton類。在Action類中主要負責調(diào)用業(yè)務(wù)邏輯層的組件,并返回相應(yīng)的結(jié)果(result)。(1)Action類的編寫LoginAction.java文件:packageactions;importservices.UserService;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionSupport;importentity.User;publicclassLoginActionextendsActionSupport{ privateUseruser; privateUserServiceuserService; publicUsergetUser(){ returnuser; } publicvoidsetUser(Useruser){ this.user=user; } publicUserServicegetUserService(){ returnuserService; } publicvoidsetUserService(UserServiceuserService){ this.userService=userService; } publicStringexecute()throwsException{ intid=this.userService.verifyUser(user); if(id>0){ ActionContext.getContext().getSession().put("userID",id); ActionContext.getContext().getSession().put("USER",user); returnSUCCESS; }else{ return"input"; } }}(2)sJsp頁面的編寫JSP頁面主要用來顯示后臺的信息,呈現(xiàn)給用戶的界面。以后臺文章顯示為例:添加文章的JSP頁面Admin_ArticleAdd.jsp文件:<html> <head> <title>博客后臺管理-發(fā)表文章</title><linkrel="stylesheet"href="${pageContext.request.contextPath}/css/style_admin.css"type="text/css"> </head> <body> <center> <tablewidth="778"border="0"cellspacing="0"cellpadding="0" bgcolor="#FFFFFF"style="word-break:break-all"><tr><tdcolspan="2"><%@includefile="../view/AdminTop.jsp"%></td></tr> <tr> <td><jsp:includepage="../view/AdminLeft.jsp"/></td> <tdalign="center"valign="top"> <s:formvalidate="true"action="add.action"method="post"> <tableborder="0"width="100%"cellspacing="0"cellpadding="8"> <trheight="50"><tdcolspan="2">【發(fā)表文章】</td></tr> <tr><tdalign="center"width="20%">文章類別:</td><td> <selectname="article.articleTypeId"style="width:100"> <optionvalue=""/> <c:forEachvar="list"items="${typeList}"><optionvalue="${list.articleTypeId}">${list.articleTypeName}</option> </c:forEach></select></td></tr><tr><tdalign="center">文章標題:</td><tdalign="center"><inputtype="text"name="article.articleTitle"size="77"></td></tr><tr><tdalign="center">文章來源:</td><td><selectname="article.articleCreate"style="width:100"> <optionvalue=""/> <optionvalue="原創(chuàng)">原創(chuàng)</option> <optionvalue="摘自">摘自</option></select></td></tr><tr><tdalign="center">文章描述:</td><td><inputtype="text"name="article.articleInfo"size="77"></td></tr><tr><tdalign="center"valign="top">文章內(nèi)容:</td><td><s:textareaname="article.articleContent"rows="8"cols="65"></s:textarea></td></tr><trheight="30"><tdcolspan="2"align="center"><inputtype="submit"class="btn_bg"value="保存"><inputtype="reset"class="btn_bg"value="重置"></td></tr></table></s:form></td></tr><tr><tdcolspan="2"><%@includefile="../view/AdminEnd.jsp"%></td></tr></table></center></body></html>6.3系統(tǒng)主要功能模塊詳述6.3.1后臺:博客管理模塊(1)網(wǎng)民可以注冊為博客會員,擁有自己的博客,用戶在登錄時系統(tǒng)具有輸入有效性檢測功能,如果用戶名和密碼任何一項為空,則提示用戶,實現(xiàn)該功能使用了過濾器:LoginAction-validation.xml文件:<validators> <fieldname="user.userName"> <field-validatortype="requiredstring"> <paramname="trim">true</param> <message>請輸入用戶名!</message> </field-validator></field> <fieldname="user.userPassword"> <field-validatortype="requiredstring"> <paramname="trim">true</param><!--檢查時去掉前后空格--> <message>請輸入密碼!</message> </field-validator> </field></validators>如圖6-1是登陸模塊的界面顯示:圖6-1登陸模塊(2)日志管理模塊,開博的網(wǎng)民可以在博客系統(tǒng)上進行撰寫日志、查看日志、刪除日志、修改日志等操作。1.如圖6-2為查看日志的界面顯示:圖6-2查看日志2.刪除日志時,系統(tǒng)要彈出確認對話框,確認用戶是否確定要刪除文章,【確定】則文章被刪除,同時刷新文章列表的顯示,【取消】停在當前頁面,不做任何改變。如圖6-3為刪除日志的界面顯示:圖6-3刪除日志3.日志列表按時間順序顯示博主的文章,同時還可以查看某一類型的全部文章,實現(xiàn)這功能的方法是在DAO層查詢數(shù)據(jù)時,按文章類型進行條件查詢,hql查詢語句如下:hql
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙商貿(mào)旅游職業(yè)技術(shù)學(xué)院《機械制圖與實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 配電網(wǎng)數(shù)據(jù)采集與分析
- 述職報告:技術(shù)領(lǐng)先之道模板
- 職業(yè)導(dǎo)論-2020年房地產(chǎn)經(jīng)紀人《職業(yè)導(dǎo)論》真題匯編
- 名畫欣賞與創(chuàng)作模板
- 公司年年會主持稿
- 二零二五年電子商務(wù)平臺入駐合作協(xié)議范本3篇
- 二零二五版北京車牌租賃市場推廣合作合同規(guī)范范本9篇
- 二零二五版基站建設(shè)場地使用權(quán)及通信網(wǎng)絡(luò)優(yōu)化合同2篇
- 吉林油田十二中2024-2025學(xué)年七年級上學(xué)期期末語文試卷(含答案)
- 分期還款協(xié)議書
- 小區(qū)住戶手冊范本
- ??低?視頻監(jiān)控原理培訓(xùn)教材課件
- 《鄭伯克段于鄢》-完整版課件
- 土壤肥料全套課件
- 畢業(yè)生延期畢業(yè)申請表
- 學(xué)校6S管理制度
- 肽的健康作用及應(yīng)用課件
- T.C--M-ONE效果器使用手冊
- 8小時等效A聲級計算工具
- 人教版七年級下冊數(shù)學(xué)計算題300道
評論
0/150
提交評論