下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
沈陽師范大學學士學位論文PAGE―PAGE38―本科畢業(yè)論文(設計)(2013屆本科畢業(yè)生)題目:微博系統(tǒng)的設計與實現(xiàn)學生姓名:學生學號:學院名稱:軟件學院專業(yè)名稱:計算機科學與技術指導教師:二零一三年五月【摘要】隨著社會的進步,時代的發(fā)展,微博的使用在網(wǎng)上已經(jīng)非常廣泛,微博系統(tǒng)對用戶而言,除了方便之外,還是與朋友之間溝通交流的橋梁。該微博系統(tǒng)的設計與實現(xiàn)正是適應了這種要求。本系統(tǒng)采用Java語言,MySQL數(shù)據(jù)庫以及Struts、Hibernate、Spring技術開發(fā),以Eclipse作為開發(fā)工具進行研發(fā)。其功能主要包括系統(tǒng)登錄和注冊、我的微博模塊、個人中心模塊、最新動態(tài)模塊、留言板模塊以及幫助中心六大部分。其中在我的微博模塊中有查看我的微博和查看我的好友功能,還有更多設置功能;在個人中心模塊中具體分為完善資料功能和對密碼的操作;在最新動態(tài)模塊中可以發(fā)表微博和查看歷史微博內(nèi)容;在留言板模塊中可以發(fā)表留言和查看歷史留言信息等;而幫助模塊中主要是對一些常見問題進行解答。本論文完整介紹了系統(tǒng)的功能和開發(fā)的過程,重點說明了設計的重點與設計思想,詳細闡述了系統(tǒng)開發(fā)的需求分析以及相關技術的介紹?!娟P鍵字】微博系統(tǒng),Java,Struts,HibernateDesignAndImplementationOfMicroBlogSystem【Abstract】Withtheprogressofsociety,thedevelopmentofthetimes.MicroBlogonlinehasbeenverywidelyused,MicroBlogSystemforusers,inadditiontoconvenience,orbridgeofcommunicationbetweenfriends.TheMicroBlogSystemisadaptedtothedesignandimplementationoftherequirements.ThesystemusestheJavalanguage,MySQLandStruts,Hibernate,Springtechnology,Eclipseasdevelopmenttool.Itsmainfunctionsincludesixpartsofsystemloginandregistration,myMicroBlogmodule,personalcentermodule,recentnewsmodule,messageboardmoduleandhelpcentermodule.MyMicroBlogmoduleincludesmessage’select,friends’select,add,delete,andmoresettingsfunctions;personalcentermoduleincludespassword’modifyandqueryfunctions;recentnewsmoduleincludesinformation’sadd,delete,modifyandqueryfunctions;messageboardmoduleincludesmessage’sadd,delete,modifyandqueryfunctions;inthehelpcentermodule,istoanswersomecommonquestions.Thisthesisintroducesthesystem’sfunctionsandprocedureofdevelopmentcompletely,declaresthepointofdesignandthethinkingofdesignimportantlyandstatestherequirementanalysisofthesystemdevelopmentindetail.【Keywords】MicroBlogSystem,Java,Struts,Hibernate目錄TOC\o"1-2"\h\z\u13133第一章緒論 1314471.1微博的研究背景 1158701.2國內(nèi)外研究現(xiàn)狀 168211.3本文結(jié)構(gòu) 430728第二章相關技術介紹 653212.1JAVA語言概述 6130452.2JAVAEE平臺技術介紹 74062.3MySQL數(shù)據(jù)庫簡介 14181672.4MVC設計模式簡介 157412第三章系統(tǒng)需求分析 19150563.1系統(tǒng)總體需求分析 1928663.2系統(tǒng)開發(fā)設計思想 20163493.3系統(tǒng)功能結(jié)構(gòu) 2013713.4系統(tǒng)的操作過程 23193493.5系統(tǒng)總體結(jié)構(gòu)圖 24126013.6數(shù)據(jù)庫的概念 2487083.7數(shù)據(jù)庫E-R圖 25190543.8系統(tǒng)界面設計 25257第四章詳細設計 27115894.1數(shù)據(jù)庫的選擇 27230894.2數(shù)據(jù)庫表的描述 2764484.3系統(tǒng)開發(fā)環(huán)境介紹 2914876第五章系統(tǒng)實現(xiàn) 30286835.1系統(tǒng)登錄和注冊 30114795.2添加留言信息 3383455.3刪除好友功能 36135855.4修改個人信息 3776465.5查詢留言信息 39206195.6其他功能 404665第六章系統(tǒng)測試及維護 4274856.1系統(tǒng)測試 42134296.2測試用例 4232566.3系統(tǒng)維護 435663第七章總結(jié)與展望 44162627.1總結(jié) 44158537.2展望 4412436后記 4513817參考文獻 46緒論1.1微博的研究背景微博,就是微博客(MicroBlog)的簡稱,是一個基于用戶關系的信息分享、傳播以及獲取的平臺,用戶可以通過WEB、WAP以及各種客戶端組建個人社區(qū),以140字左右的文字更新信息,并實現(xiàn)即時分享。美國的twitter是最早也是最著名的微博,根據(jù)一些相關的公開的數(shù)據(jù),截至2010年1月份,該產(chǎn)品在全球已經(jīng)擁有7500萬注冊用戶。在2009年8月份,中國最大的門戶網(wǎng)站新浪網(wǎng)推出“新浪微博”內(nèi)測版,成為門戶網(wǎng)站中第一家提供微博服務的網(wǎng)站,從此微博正式進入中文上網(wǎng)主流人群的視野。微博是一種通過關注機制分享簡短實時信息的廣播式的社交網(wǎng)絡平臺。陳永東,國內(nèi)知名新媒體領域研究學者,他在國內(nèi)率先給出了微博的定義。其中有五方面的理解:1、關注機制:分為單向和雙向兩種;2、內(nèi)容簡短:通常為140字;3、實時信息:最新的實時信息;4、廣播式:公開的信息,誰都可以瀏覽以及轉(zhuǎn)播;5、社交網(wǎng)絡平臺:把微博歸為社交網(wǎng)絡。微博為廣大用戶提供了這樣一個平臺,你既可以以觀眾的身份在微博上瀏覽你感興趣的信息,也可以以發(fā)布者的身份在微博上發(fā)布內(nèi)容供別人瀏覽。發(fā)布的內(nèi)容一般較短,通常為140字的限制,由此命名為微博。當然,也可以發(fā)布圖片,分享歌曲、視頻等。微博有兩方面的含義:首先,對于一些強調(diào)版面布置的博客來說,微博主要是由簡單的只言片語組成,從這個角度來說,微博對用戶的技術要求門檻很低,而且與博客相比,對語言的編排組織的要求沒那么高。第二,微博瀏覽非常方便,由于微博開通的多種API,所以用戶可以通過手機、網(wǎng)絡等方式來即時更新自己的個人信息,深受廣大用戶的喜愛。微博的特點:信息獲取具有很強的自主性、選擇性;微博宣傳的影響力具有很大彈性,與內(nèi)容質(zhì)量高度相關;內(nèi)容短小精悍。微博的內(nèi)容限定為140字左右,內(nèi)容簡短,不需長篇大論,門檻較低;信息共享便捷迅速,這也是微博最大的特點。1.2國內(nèi)外研究現(xiàn)狀1.2.1微博在國外的發(fā)展史埃文·威廉姆斯(EvanWilliams)是博客技術先驅(qū)blogger的創(chuàng)始人,他在2006年3月創(chuàng)建的新興公司Obvious推出了大微博服務。在最初階段,這項服務的功能很不完善,只是用于向好友的手機發(fā)送文本信息。Twitter是由blogger的創(chuàng)始人威廉姆斯(EvanWilliams)在2006年3月推出的,其英文的原意為小鳥的嘰嘰喳喳聲,此時功能有些改進,用戶可以使用數(shù)百種工具更新信息。Twitter的出現(xiàn)把世人的眼光引入了一個叫微博的小小世界里。截至2007年5月,國際間計算總共有111個類似Twitter的網(wǎng)站。然而,最受人關注的仍是Twitter,在2007年,在得克薩斯州奧斯汀舉辦的南非西南會議中贏得了部落格類的網(wǎng)站獎。Plurk和Jaiku是Twitter的主要競爭對手。由于Twitter的發(fā)展前景,國內(nèi)一些人開始蠢蠢欲動。從校內(nèi)網(wǎng)起家的王興,在2007年5月創(chuàng)建了飯否網(wǎng)。而作為一個擁有4.1億QQ用戶的企業(yè)——騰訊,看著用戶對隨時隨地發(fā)布自己狀態(tài)的需求愈發(fā)強烈后,在2007年8月13日騰訊滔滔面世。但事情沒有預期發(fā)展的好,Twitter建立的“微型王國”不是在短時間內(nèi)掘出黃金的淺礦,所以國內(nèi)微博企業(yè)目前尚處于慢熱的狀態(tài)。國內(nèi)微博不約而同地將現(xiàn)在的目光放在了產(chǎn)品調(diào)整以及服務完善上,在還沒有辦法吸引到風險投資的眼光之前,他們最需要做的可能是如何靠自己的能力繼續(xù)活下去。1.2.2微博在國內(nèi)的現(xiàn)狀及發(fā)展趨勢中國第一家?guī)в形⒉┥实娘埛窬W(wǎng)于2007年開張開始,到2009年,微博這個新詞匯以摧枯拉朽的姿態(tài)掃蕩世界,不久便成為全世界最流行的詞匯。國內(nèi)大批老牌微博產(chǎn)品(飯否、騰訊滔滔等)在2009年7月中旬開始停止運營,一些新產(chǎn)品開始進入人們的視野:6月份開放的Follow5,7月份開放的9911,8月份開放的新浪微博等。在2010年,國內(nèi)微博開始崛起。四大門戶網(wǎng)站均開設微博。根據(jù)一些相關公開數(shù)據(jù)顯示,截至2010年1月份,在全球范圍內(nèi),該產(chǎn)品已經(jīng)擁有7500萬注冊用戶。2011年上半年,我國微博用戶迅速增長,其數(shù)量從6331萬增至1.95億,半年增幅高達208.9%。微博在網(wǎng)民中的普及率從13.8%增至40.2%。從2010年底至今,手機微博在網(wǎng)民中的使用率比例從15.5%上升到34%。 圖1-1中國微博市場用戶周覆蓋人數(shù)圖1-2用戶訪問次數(shù)及有效瀏覽時間集中度至今,因為新浪微博搶占了先機,其用戶數(shù)已經(jīng)超過1億,再加上其在整體的戰(zhàn)略執(zhí)行上也比較徹底到位,所以獲得了現(xiàn)在的地位。僅僅兩年時間,新浪微博就為新浪創(chuàng)造了幾十億美金的巨額收入。而騰訊微博作為另一個微博巨頭,也發(fā)展迅猛。其擁有近5億的QQ注冊用戶,其中2億左右是活躍用戶。這些人受潮流趨勢的影響很快開通騰訊微博。另外其作為重要的推廣渠道。企業(yè)用戶通過注冊騰訊官方微博,能夠迅速的擴大企業(yè)的知名度。高校教育平臺也通過微博來推動了中國教育事業(yè)信息化發(fā)展的步伐?;ヂ?lián)網(wǎng)實驗室認為,我國微博將向工具化、細分化、移動化和開放化等方向發(fā)展。如下圖所示。圖1-3發(fā)展方向研究圖現(xiàn)在,已經(jīng)有很多微博服務商對微博網(wǎng)站進行了專業(yè)細分,如和訊網(wǎng)推出的財經(jīng)微博,搜房網(wǎng)推出的房地產(chǎn)專業(yè)微博等。隨著這種細分與競爭,細分化的趨勢將更加明顯。1.2.2中外微博的文化差異在國內(nèi),關系社會這一本質(zhì)屬性是微博抓住的文化特征,中國人社會認同的結(jié)構(gòu)建立在一套強有力的關系體系之中,群體化和聯(lián)系化是其文化內(nèi)核。一個人社會地位的高低取決于社會關系的強弱。關系是實現(xiàn)權(quán)力重構(gòu)的核心的一種資本,因此,微博的發(fā)展過程,也是新權(quán)力者關系資本積累的過程。在國外,微博Twitter的產(chǎn)品初衷正如單詞Twitter的英文原義——鳥兒嘰嘰喳喳的叫聲。它抓住了美國人善于交談的個性、渴望表達和信息分享的特征,正如一個充斥了個人瑣碎的思索、片段化的情感的窗口。1.3本文結(jié)構(gòu)第1章緒論,介紹微博的研究背景,國內(nèi)外的發(fā)展史及論文的結(jié)構(gòu)等。第2章相關技術介紹,對微博的設計和實現(xiàn)過程中用到的開發(fā)語言、平臺技術以及框架技術進行介紹,主要闡述了JAVA語言、JAVAEE企業(yè)級應用、三大框架、MySQL、MVC模式。第3章系統(tǒng)需求分析,對系統(tǒng)的總需求進行分析,并對我的微博模塊、個人中心模塊、最新動態(tài)模塊、留言板模塊、幫助中心模塊的需求進行的分析。第4章詳細設計,在需求分析的基礎上,進行總體設計,并對我的微博模塊、個人中心模塊、最新動態(tài)模塊、留言板模塊進行詳細設計,進行數(shù)據(jù)庫設計,對并數(shù)據(jù)關系進行說明。第5章系統(tǒng)實現(xiàn),系統(tǒng)總體實現(xiàn)部分主要論述一些功能子模塊的實現(xiàn),例如系統(tǒng)登錄和注冊、添加留言信息、刪除好友功能、修改個人信息等。第6章系統(tǒng)測試及維護,包括對測試原理及常用軟件測試方法的介紹,針對登錄部分設計測試用例,并對測試的結(jié)果如何進行說明。第7章總結(jié)與展望,總結(jié)微博系統(tǒng)的研究情況,以及在設計和實現(xiàn)過程中的優(yōu)點以及本系統(tǒng)還需要進行改進的地方。相關技術介紹2.1JAVA語言概述JAVA最初被命名為Oak,這類語言可以來解決諸如電視機、電話、鬧鐘、烤面包機等家用電器的控制和通訊問題,其目標設定在家用電器等小型系統(tǒng)的編程語言,因為這些智能化家電的市場需求沒有Sun預期的高,所以放棄了該項計劃。但是隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計算機網(wǎng)絡上的廣闊應用前景,所以在Oak幾近失敗之時改造了Oak,并且正式發(fā)布,命名為“Java”。Java編程語言的風格與C、C++語言十分類似。不同的是:Java是一個純的面向?qū)ο蟮某绦蛟O計語言,Java舍棄了C++語言中容易引起錯誤的指針(用引用來取代)、多重繼承(用接口來取代)、運算符重載(operatoroverloading)等特性,Java繼承了C++語言面向?qū)ο蠹夹g的核心,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔憂[2]。在JavaSE1.5版本中,Java又引入了泛型編程(GenericProgramming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性[3]。Java語言不同于一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。Java的運行機制是首先將源代碼編譯成二進制字節(jié)碼(bytecode),也就是所謂的機器語言,然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了Java程序的運行效率。但是,在J2SE1.4.2發(fā)布后,Java的執(zhí)行速度有了大幅提升。Sun公司在推出Java之際就將其作為一種與傳統(tǒng)程序不同的開放的技術。全球數(shù)以萬計的Java開發(fā)公司被要求所設計的Java軟件必須相互兼容。Sun公司的口號之一是“Java語言靠群體的力量而非公司的力量”,也獲得了廣大軟件開發(fā)商的認同。這與微軟公司所倡導的注重精英和封閉式的模式是完全不同的[4]。Java編程語言是個簡單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關、可移植、高性能、多線程和動態(tài)的語言。這是Sun公司對Java編程語言的解釋。Java平臺是基于Java語言的平臺。這樣的平臺目前非常流行,因此,微軟公司先后推出了與之競爭的.NET平臺以及模仿Java的C#語言。Java的主要特性:Java語言是簡單的、面向?qū)ο蟮?、分布式的,也是健壯的,更是安全的,Java語言的體系結(jié)構(gòu)是中立的,Java語言具有可移植、多線程、動態(tài)等特征,Java也是一種解釋型的語言,Java是高性能的。Java語言的優(yōu)良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統(tǒng)的維護費用。Java對對象技術的全面支持和Java平臺內(nèi)嵌的API能縮短應用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本方式。特別是Java企業(yè)應用編程接口(JavaEnterpriseAPIs)為企業(yè)計算及電子商務應用系統(tǒng)提供了有關技術和豐富的類庫。2.2JAVAEE平臺技術介紹JAVAEE核心是一組技術規(guī)范與指南,其中所包含的各類組件、服務架構(gòu)及技術層次,均有共同的標準及規(guī)格,讓各種依循JAVAEE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。JAVAEE技術的基礎就是核心Java平臺或Java2平臺的標準版,JAVAEE不僅鞏固了標準版中的許多優(yōu)點,例如"編寫一次、隨處運行"的特性、方便存取數(shù)據(jù)庫的JDBCAPI、CORBA技術以及能夠在Internet應用中保護數(shù)據(jù)的安全模式等等,同時還提供了對EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術的全面支持。其最終目的就是成為一個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結(jié)構(gòu)[5]。JAVAEE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應用的需求。通過提供統(tǒng)一的開發(fā)平臺,JAVAEE降低了開發(fā)多層應用的費用和復雜性,同時提供對現(xiàn)有應用程序集成強有力支持,完全支持EnterpriseJavaBeans[6],有良好的向?qū)еС执虬筒渴饝茫砑幽夸浿С?,增強了安全機制,提高了性能。JAVAEE的四層模型,如圖2.1所示。(1)運行在客戶端機器上的客戶層組件。(2)運行在JAVAEE服務器上的Web層組件。(3)運行在JAVAEE服務器上的業(yè)務邏輯層組件。(4)運行在EIS服務器上的企業(yè)信息系統(tǒng)(Enterpriseinformationsystem)層軟件。圖2-1JAVAEE的4層模型圖2.2.1Struts技術簡介Struts最早是作為ApacheJakarta項目的組成部分,項目的創(chuàng)立者希望通過對該項目的研究,改進和提高JavaServerPages、Servlet、標簽庫以及面向?qū)ο蟮募夹g水準。Struts這個名字來源于在建筑和舊式飛機中使用的支持金屬架。當建立一個物理建筑時,建筑工程師使用支柱為建筑的每一層提供支持。同樣,軟件工程師使用Struts為業(yè)務應用的每一層提供支持。它的目的是為了幫助減少在運用MVC設計模型來開發(fā)Web應用的時間。隨著JSP與Servlet技術大量應用于以Web為基礎的應用程序,Java開發(fā)人員群體認為應以較佳的模式以提升Web應用程序的可維護性與重復使用性。早期JSP規(guī)格書中曾列舉兩種可行之JSP應用架構(gòu),分別為Model1與Model2。如果想混合使用Servlets和JSP的優(yōu)點來建立可擴展的應用,Struts是一個不錯的選擇。在Model1架構(gòu)中,JSP直接處理Web瀏覽器送來的請求(Request),并輔以JavaBean處理應用相關邏輯。Model1架構(gòu)單純編寫比較容易,但在Model1中JSP可能同時肩負View與Controller角色,兩類程序代碼有可能混雜而不易維護。而Model2中將Servlet納入架構(gòu)中扮演前端Controller角色,將Web瀏覽器送出的請求集中送至Servlet,Servlet可集中管理使用者登入、權(quán)限控制、多國語言轉(zhuǎn)換等前置處理,再視需求轉(zhuǎn)向給對應的JSP處理。Model2中采用了較佳的MVC模式,但增加了編寫復雜度。Struts是Apache軟件基金下Jakarta項目的一部分。除Struts之外,還有其他成功的開源產(chǎn)品,包括Tomcat,Ant和Velocity。2000年CraigR.McClanahan先生貢獻了他編寫struts的JSPModel2架構(gòu)的ApplicationFramework原始程序代碼給Apache基金會,成為ApacheJakarta計劃StrutsFramework前身。Struts框架的主要架構(gòu)設計和開發(fā)者是CraigR.McClanahan。Craig也是Tomcat4的主要架構(gòu)師,以及JavaWebServicesDeveloperPack的主要架構(gòu)師和實現(xiàn)者。他現(xiàn)在是Sun的JavaServerFaces(JSR-127)以及J2EE平臺的Web層架構(gòu)的規(guī)范領導。CraigR.McClanahan先生是JCPExpertGroup成員之一,曾參與JSP規(guī)格制定與Tomcat4之編寫,因此StrutsFramework廣受Java開發(fā)人員群體所重視。Borland自2002年底開始于開發(fā)工具JBuilder中支持StrutsFramework。Struts最早是作為ApacheJakarta項目的組成部分問世運作。項目的創(chuàng)立者希望通過對該項目的研究,改進和提高JavaServerPages、Servlet、標簽庫以及面向?qū)ο蟮募夹g水準。Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優(yōu)點,使開發(fā)者能更深入的了解其內(nèi)部實現(xiàn)機制。除此之外,Struts的優(yōu)點主要集中體現(xiàn)在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活運用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標記外,很少開發(fā)自己的標記,或許Struts是一個很好的起點。Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于MVC的web應用程序的開發(fā)。Struts可以清晰地區(qū)分控制,事務邏輯和外觀,從而簡化了開發(fā)應用程序的過程。Struts提供的類使得開發(fā)工作更加簡單,這些類包括:1.控制程序流程的類;2.實現(xiàn)和執(zhí)行程序事務邏輯的類;3.自定義的標記庫使得創(chuàng)建和驗證HTML表單更加容易。2.2.2Hibernate技術簡介Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這6個核心接口分別加以介紹。Session接口負責執(zhí)行被持久化對象的CRUD操作(CRUD的任務是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。SessionFactory接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。Configuration類負責配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。Transaction接口負責事務相關的操作。它是可選的,開發(fā)人員也可以設計編寫自己的底層事務處理代碼。Query和Criteria接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語句或SQL語句兩種表達方式。Hibernate主鍵介紹:Assigned方式由用戶生成主鍵值,并且要在save()之前指定否則會拋出異常特點:主鍵的生成值完全由用戶決定,與底層數(shù)據(jù)庫無關。用戶需要維護主鍵值,在調(diào)用session.save()之前要指定主鍵值。Hilo使用高低位算法生成主鍵,高低位算法使用一個高位值和一個低位值,然后把算法得到的兩個值拼接起來作為數(shù)據(jù)庫中的唯一主鍵。Hilo方式需要額外的數(shù)據(jù)庫表和字段提供高位值來源。默認情況下使用的表是hibernate_unique_key,默認字段叫做next_hi。next_hi必須有一條記錄否則會出現(xiàn)錯誤。特點:需要額外的數(shù)據(jù)庫表的支持,能保證同一個數(shù)據(jù)庫中主鍵的唯一性,但不能保證多個數(shù)據(jù)庫之間主鍵的唯一性。Hilo主鍵生成方式由Hibernate維護,所以Hilo方式與底層數(shù)據(jù)庫無關,但不應該手動修改hi/lo算法使用的表的值,否則會引起主鍵重復的異常。Increment方式對主鍵值采取自動增長的方式生成新的主鍵值,但要求底層數(shù)據(jù)庫的支持Sequence。如Oracle,DB2等。需要在映射文件xxx.hbm.xml中加入Increment標志符的設置。特點:由Hibernate本身維護,適用于所有的數(shù)據(jù)庫,不適合多進程并發(fā)更新數(shù)據(jù)庫,適合單一進程訪問數(shù)據(jù)庫。不能用于群集環(huán)境。Identity當時根據(jù)底層數(shù)據(jù)庫,來支持自動增長,不同的數(shù)據(jù)庫用不同的主鍵增長方式。特點:與底層數(shù)據(jù)庫有關,要求數(shù)據(jù)庫支持Identity,如MySQl中是auto_increment,SQLServer中是Identity,支持的數(shù)據(jù)庫有MySql、SQLServer、DB2、Sybase和HypersonicSQL。Identity無需Hibernate和用戶的干涉,使用較為方便,但不便于在不同的數(shù)據(jù)庫之間移植程序。Sequence需要底層數(shù)據(jù)庫支持Sequence方式,例如Oracle數(shù)據(jù)庫等。特點:需要底層數(shù)據(jù)庫的支持序列,支持序列的數(shù)據(jù)庫有DB2、PostgreSql、Oracle、SAPDb等在不同數(shù)據(jù)庫之間移植程序,特別從支持序列的數(shù)據(jù)庫移植到不支持序列的數(shù)據(jù)庫需要修改配置文件。Native主鍵生成方式會根據(jù)不同的底層數(shù)據(jù)庫自動選擇Identity、Sequence、Hilo主鍵生成方式。特點:根據(jù)不同的底層數(shù)據(jù)庫采用不同的主鍵生成方式。由于Hibernate會根據(jù)底層數(shù)據(jù)庫采用不同的映射方式,因此便于程序移植,項目中如果用到多個數(shù)據(jù)庫時,可以使用這種方式。UUID使用128位UUID算法生成主鍵,能夠保證網(wǎng)絡環(huán)境下的主鍵唯一性,也就能夠保證在不同數(shù)據(jù)庫及不同服務器下主鍵的唯一性。其最大的特點就是能夠保證數(shù)據(jù)庫中的主鍵唯一性,這樣就可以節(jié)省存貯空間。Foreign用于一對一關系中。GUID主鍵生成方式使用了一種特殊算法,保證生成主鍵的唯一性,支持SQLServer和MySQL數(shù)據(jù)庫。2.2.3Spring技術簡介Spring是一個開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。Spring框架是一個分層架構(gòu),由7個定義良好的模塊組成。Spring模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式,如下圖所示。圖2-2Spring模塊Spring框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。每個模塊的功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IOC)模式將應用程序的配置和依賴性規(guī)范與實際的應用程序代碼分開。Spring上下文:Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業(yè)服務,例如JNDI、EJB、電子郵件、國際化、校驗和調(diào)度功能。SpringAOP:通過配置管理特性,SpringAOP模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何對象支持AOP。SpringAOP模塊為基于Spring的應用程序中的對象提供了事務管理服務。通過使用SpringAOP,不用依賴EJB組件,就可以將聲明性事務管理集成到應用程序中。SpringDAO:JDBCDAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應商拋出的錯誤消息。異常層次結(jié)構(gòu)簡化了錯誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關閉連接)。SpringDAO的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。SpringORM:Spring框架插入了若干個ORM框架,從而提供了ORM的對象關系工具,其中包括JDO、Hibernate和iBatisSQLMap。所有這些都遵從Spring的通用事務和DAO異常層次結(jié)構(gòu)。SpringWeb模塊:Web上下文模塊建立在應用程序上下文模塊之上,為基于Web的應用程序提供了上下文。所以,Spring框架支持與JakartaStruts的集成。Web模塊還簡化了處理多部分請求以及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ?。SpringMVC框架:MVC框架是一個全功能的構(gòu)建Web應用程序的MVC實現(xiàn)。通過策略接口,MVC框架變成為高度可配置的,MVC容納了大量視圖技術,其中包括JSP、Velocity、Tiles、iText和POI。Spring框架的功能可以用在任何J2EE服務器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring的核心要點是:支持不綁定到特定J2EE服務的可重用業(yè)務和數(shù)據(jù)訪問對象。毫無疑問,這樣的對象可以在不同J2EE環(huán)境(Web或EJB)、獨立應用程序、測試環(huán)境之間重用。簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架。IOC和AOP:控制反轉(zhuǎn)模式(也稱作依賴性介入)的基本概念是:不創(chuàng)建對象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對象和服務連接,但在配置文件中描述哪一個組件需要哪一項服務。容器(在Spring框架中是IOC容器)負責將這些聯(lián)系在一起。在典型的IOC場景中,容器創(chuàng)建了所有對象,并設置必要的屬性將它們連接在一起,決定什么時間調(diào)用方法。下表列出了IOC的一個實現(xiàn)模式。類型1服務需要實現(xiàn)專門的接口,通過接口,由對象提供這些服務,可以從對象查詢依賴性(例如,需要的附加服務)類型2通過JavaBean的屬性(例如setter方法)分配依賴性類型3依賴性以構(gòu)造函數(shù)的形式提供,不以JavaBean屬性的形式公開。Spring框架的IOC容器采用類型2和類型3實現(xiàn)。AOP就是面向方面的編程,是一種編程技術,它允許程序員對橫切關注點或橫切典型的職責分界線的行為(例如日志和事務管理)進行模塊化。AOP的核心構(gòu)造是方面,它將那些影響多個類的行為封裝到可重用的模塊中。AOP和IOC是補充性的技術,它們都運用模塊化方式解決企業(yè)應用程序開發(fā)中的復雜問題。在典型的面向?qū)ο箝_發(fā)方式中,可能要將日志記錄語句放在所有方法和Java類中才能實現(xiàn)日志功能。在AOP方式中,可以反過來將日志服務模塊化,并以聲明的方式將它們應用到需要日志的組件上。當然,優(yōu)勢就是Java類不需要知道日志服務的存在,也不需要考慮相關的代碼。所以,用SpringAOP編寫的應用程序代碼是松散耦合的。AOP的功能完全集成到了Spring事務管理、日志和其他各種特性的上下文中。IOC容器Spring設計的核心是org.springframework.beans包,它的設計目標是與JavaBean組件一起使用。這個包通常不是由用戶直接使用,而是由服務器將其用作其他多數(shù)功能的底層中介。下一個最高級抽象是BeanFactory接口,它是工廠設計模式的實現(xiàn),允許通過名稱創(chuàng)建和檢索對象。BeanFactory也可以管理對象之間的關系。BeanFactory支持兩個對象模型。單態(tài)模型提供了具有特定名稱的對象的共享實例,可以在查詢時對其進行檢索。Singleton是默認的也是最常用的對象模型。對于無狀態(tài)服務對象很理想。原型模型確保每次檢索都會創(chuàng)建單獨的對象。在每個用戶都需要自己的對象時,原型模型最適合。bean工廠的概念是Spring作為IOC容器的基礎。IOC將處理事情的責任從應用程序代碼轉(zhuǎn)移到框架。正如我將在下一個示例中演示的那樣,Spring框架使用JavaBean屬性和配置數(shù)據(jù)來指出必須設置的依賴關系。2.3MySQL數(shù)據(jù)庫簡介MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。Sun公司于2008年1月16號收購了瑞典MySQLAB公司。而在2009年,Oracle又收購了SUN。當時,沒有任何人對MySQL的前途抱樂觀的態(tài)度。但是目前,MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其速度快、體積小、總體擁有成本低,尤其MySQL是開源的這一特點,所以許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。MySQL特性:1.使用C和C++編寫,并經(jīng)過了多種編譯器進行測試,保證源代碼的可移植性;2.支持FreeBSD、AIX、OpenBSD、MacOS、NovellNetware、Solaris、HP-UX、Linux、OS/2Wrap、Windows等多種操作系統(tǒng);3.MySQL為多種編程語言提供了API。這些編程語言包括C、C++、Java、Python、PHP、Perl、Ruby、Tcl和Eiffel等;4.支持多線程,可以充分利用CPU資源;5.使用優(yōu)化的SQL查詢算法,有效地提高查詢速度;6.既能夠作為一個單獨的應用程序,應用在客戶端服務器網(wǎng)絡環(huán)境中,也能夠作為一個庫,嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的BIG5、GB2312,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名;7.提供TCP/IP、JDBC和ODBC等多種數(shù)據(jù)庫連接途徑;8.提供一些管理工具,例如:管理、檢查、優(yōu)化數(shù)據(jù)庫;9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。MySQL的應用:與其他的大型數(shù)據(jù)庫例如Oracle、SQLServer、DB2等相比,MySQL也有它的缺點,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對比較差)等,但是這些不會影響MySQL受歡迎的程度。MySQL提供的功能對于一般的個人使用者和中小型企業(yè)來說已經(jīng)綽綽有余,而且由于MySQL是開源的軟件,因此可以大大降低總體擁有成本。LAMP(Linux+Apache+MySQL+PHP)是目前Internet上流行的網(wǎng)站構(gòu)架方式,即:操作系統(tǒng)使用Linux,Apache作為Web服務器,數(shù)據(jù)庫使用MySQL,PHP作為服務器端腳本解釋器。這四個軟件的優(yōu)點都是自由或開放源碼軟件(FLOSS),所以使用這種方式不用花一分錢就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。MySQL管理:MySQL數(shù)據(jù)庫可以使用命令行工具管理(命令mysql和mysqladmin),也可以從MySQL的網(wǎng)站下載圖形管理工具MySQLQueryBrowser和MySQLAdministrator。phpMyAdminMySQL資料庫系統(tǒng)管理程式,是由php寫成的,讓管理者可用Web界面管理MySQL資料庫。由PHP寫成的還有phpMyBackupPro,可以透過Web介面創(chuàng)建和管理數(shù)據(jù)庫。它可以創(chuàng)建偽cronjobs,可以用來在某個時間或周期自動備份MySQL數(shù)據(jù)庫。除此之外,還有其他的GUI管理工具,例如早先的mysql-front以及navicat,emsmysqlmanager等等。MySQL最常見的應用架構(gòu)有:適合小規(guī)模應用的單點(Single);適合中小規(guī)模應用的復制(Replication);適合大規(guī)模應用的集群(Cluster)。MySQL4.1版本中增加了不少新的性能,包括對子查詢的更好的支持,對主鍵的更高速度的緩存,以及應網(wǎng)絡約會網(wǎng)站所要求而生的,基于地理信息的查詢等。與其同步開發(fā)的5.0版本則把目標對準了企業(yè)用戶,5.0版本具有4.1版本中的所有新特性,而且還有以下新特點:系統(tǒng)自動報錯機制;對外鍵的良好支持以及對存儲過程的充分支持。本系統(tǒng)應用MySQL的主要原因是,MySQL數(shù)據(jù)庫的體積小,而且運行速度快,總體擁有成本低,MySQL服務器是可靠的和易于使用的數(shù)據(jù)庫服務器,而且其是開放源碼,為了降低網(wǎng)站總體擁有成本而選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。2.4MVC設計模式簡介模型(Model),視圖(View)和控制(Controller)三個單詞組成了Model-View-Controller,縮寫即MVC。MVC模式的目的就是實現(xiàn)Web系統(tǒng)的職能分工。Model層通??梢杂肑avaBean或EJB來實現(xiàn)系統(tǒng)中的業(yè)務邏輯。View層通常用JSP來實現(xiàn)與用戶的交互。Model與View之間溝通的橋梁是Controller層,它可以分派用戶的請求并且選擇恰當?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。MVC開始是存在于Desktop程序中的,M指的是數(shù)據(jù)模型,V指的是用戶界面,C指的是控制器。將M和V的實現(xiàn)代碼分離是使用MVCcopyright:AppleInc.的目的,從而使同一個程序可以使用不同的表現(xiàn)形式。確保M和V的同步則是C存在的目的,一旦M改變,V應該同步更新。至今已被廣泛使用的模型-視圖-控制器(MVC)是XeroxPARC在八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設計模式。最近幾年被推薦為Oracle旗下Sun公司JavaEE平臺的設計模式,并且越來越多的使用ColdFusion和PHP的開發(fā)者喜歡使用MVC。MVC模式是一個有用的工具箱,它既有優(yōu)點又有缺點。MVC是如何工作的:MVC強制性的使應用程序的輸入、處理和輸出分開,它是一個設計模式。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。下圖介紹了這幾個模塊的功能以及之間的關系。圖2-3MVC設計模式圖MVC的優(yōu)缺點:(1)低耦合性。視圖層和業(yè)務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業(yè)務流程或者業(yè)務規(guī)則的改變只需要改動MVC的模型層即可。因為模型與控制器和視圖相分離,所以很容易改變應用程序的數(shù)據(jù)層和業(yè)務規(guī)則。(2)高重用性和可適用性。隨著技術的不斷進步,現(xiàn)在需要用越來越多的方式來訪問應用程序。MVC模式允許你使用各種不同樣式的視圖來訪問同一個服務器端的代碼。它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(WAP),比如,用戶可以通過電腦也可通過手機來訂購某樣產(chǎn)品,雖然訂購的方式不一樣,但處理訂購產(chǎn)品的方式是一樣的。由于模型返回的數(shù)據(jù)沒有進行格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用HTML來表示,但是也有可能用WAP來表示,而這些表示所需要的命令是改變視圖層的實現(xiàn)方式,而控制層和模型層無需做任何改變。(3)較低的生命周期成本。MVC使開發(fā)和維護用戶接口的技術含量降低。(4)快速的部署。使用MVC模式使開發(fā)時間得到相當大的縮減,它使Java開發(fā)人員集中精力于業(yè)務邏輯,HTML和JSP開發(fā)人員集中精力于表現(xiàn)形式上。(5)可維護性。分離視圖層和業(yè)務邏輯層也使得WEB應用更易于維護和修改。有利于軟件工程化管理由于不同的層各司其職,每一層不同的應用具有某些相同的特征,有利于通過工程化、工具化管理程序代碼。MVC的缺點是由于它沒有明確的定義,所以完全理解MVC并不是很容易。使用MVC需要精心的計劃,由于它的內(nèi)部原理比較復雜,所以需要花費一些時間去思考。根據(jù)開發(fā)者經(jīng)驗,由于開發(fā)者將一個應用程序分成了三個部件,所以使用MVC同時也意味著你將要管理比以前更多的文件,這一點是顯而易見的。這樣好像我們的工作量增加了,但是請記住這與其所能帶來的好處相比是不值一提。MVC并不適合小型甚至中等規(guī)模的應用程序,花費大量時間將MVC應用到規(guī)模并不是很大的應用程序通常會得不償失。為什么要使用MVC:大部分Web應用程序都是用像ASP,PHP,或者CFML這樣的過程化(自PHP5.0版本后已全面支持面向?qū)ο竽P?語言來創(chuàng)建的。它們將像數(shù)據(jù)庫查詢語句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起。經(jīng)驗比較豐富的開發(fā)者會將數(shù)據(jù)從表示層分離開來,但這通常不是很容易做到的,它需要精心的計劃和不斷的嘗試。MVC從根本上強制性的將它們分開。盡管構(gòu)造MVC應用程序需要一些額外的工作,但是它給我們帶來的好處是毋庸置疑的。首先,最重要的一點是多個視圖能共享一個模型,現(xiàn)在需要用越來越多的方式來訪問你的應用程序。對此,其中一個解決之道是使用MVC,無論你的用戶想要Flash界面或是WAP界面;用一個模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務規(guī)則從表示層分開,所以你可以最大化的重用你的代碼了。由于模型返回的數(shù)據(jù)沒有進行格式化,所以同樣的構(gòu)件能被不同界面使用。MVC設計模式是一個很好創(chuàng)建軟件的途徑,它所提倡的一些原則,像內(nèi)容和顯示互相分離可能比較好理解。但是如果你要隔離模型、視圖和控制器的構(gòu)件,你可能需要重新思考你的應用程序,尤其是應用程序的構(gòu)架方面。如果你肯接受MVC,并且有能力應付它所帶來的額外的工作和復雜性,MVC將會使你的軟件在健壯性、代碼重用和結(jié)構(gòu)方面上一個新的臺階。系統(tǒng)需求分析3.1系統(tǒng)總體需求分析在本章,主要對微博的設計與開發(fā)進行詳細的需求與分析。本系統(tǒng)對數(shù)字化信息資源的組織采用數(shù)據(jù)庫。系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)是關系數(shù)據(jù)庫MySQL,使用JSP平臺作為前臺開發(fā)。目前,最完備的面向?qū)ο笳Z言就是JSP,其發(fā)展前景很可觀。MySQL數(shù)據(jù)庫的體積小,而且運行速度快,總體擁有成本低,MySQL服務器是可靠的和易于使用的數(shù)據(jù)庫服務器,而且其是開放源碼,并且支持SQL語法。從經(jīng)濟角度分析。對于一個普通的用戶來說,要想擁有一個微博,可以直接在Internet上注冊一個新浪微博或者是騰訊微博,這樣的微博都是免費注冊的,對于用戶來說及經(jīng)濟又實惠,是用戶擁有微博的最佳選擇。當然,還有第二種方法可以擁有一個微博,就是自己去搭建,用戶可首先要買一個獨立的域名,然后購買服務器托管在機房或者租用一個虛擬主機,還需要下載一個開放源碼的微博系統(tǒng)將其安裝在自己的服務器或者空間上,這種方法是需要花費一定的費用的,大概每年200元左右。對于普通的用戶來說,兩種方法相比起來,顯然第二種方法不實用也不合算。因此,98%的用戶都會選擇直接在Internet上直接注冊開通一個微博。微博在人們的生活中所扮演的角色。對于商人來說,微博是為他們制造利益的一種工具。怎么樣通過微博來推廣自己的產(chǎn)品等是這類人所熱衷的。而對于一些普通用戶來說,微博只是一種娛樂,他們可以在這里找到快樂。而對于機構(gòu)而言,提高自己的知名度從而吸引更多的消費者就是他們的目的。從技術角度分析。在我們以往所學過的課程中,《JAVA語言與面向?qū)ο蟪绦蛟O計》,《數(shù)據(jù)庫原理》,《操作系統(tǒng)知識》,《網(wǎng)絡基礎》等為此課題的設計與開發(fā)提供了堅實的基礎。JSP也是一種簡單的語言,對于會使用HTML語言的人來說JSP很容易懂,所以技術難度并不高。微博,作為一個很典型的Web應用,其開發(fā)所遇到的所有技術難題已經(jīng)分析到,有好的平臺和數(shù)據(jù)庫,對于這樣的問題會很好解決。從操作角度分析。在整個系統(tǒng)的開發(fā)中,能否很好的掌握開發(fā)的進度,能否科學的分配時間與資源,能否使系統(tǒng)的開發(fā)不間斷從而使得其能有條不紊的進行是分析的重點。只要在開發(fā)之前做好充足的準備工作,制定好完善的計劃,在開發(fā)中根據(jù)實際情況進行修改和完善,在操作中就不會出現(xiàn)問題。綜上所述:如果有良好的經(jīng)濟支撐和技術支持,外加操作上的支持,此系統(tǒng)就會達到預期的效果。此系統(tǒng)的開發(fā)工具具有投入少、周期短、見效快和以控制的特點,所以此系統(tǒng)完全可以開發(fā)。3.2系統(tǒng)開發(fā)設計思想本系統(tǒng)采用的是典型的J2EE平臺下的MVC三層結(jié)構(gòu),分為模型層(Model),視圖層(View),控制層(Controller)。為了實現(xiàn)MVC這種三層結(jié)構(gòu),本系統(tǒng)采用了目前廣泛流行的MVC框架Struts。本系統(tǒng)的控制層是Struts的核心類org.apache.struts.action.ActionServlet,它根據(jù)struts-config.xml中的配置分發(fā)請求和請求處理完成后系統(tǒng)頁面的相應的跳轉(zhuǎn)。本系統(tǒng)的模型層是相應的Java實體類和業(yè)務邏輯類,這些類是本系統(tǒng)實現(xiàn)的基礎和根本。本系統(tǒng)的視圖層是傳統(tǒng)的JSP技術,它將后臺處理完成的數(shù)據(jù)進行進一步處理,使其適合頁面的顯示,并根據(jù)業(yè)務要求的不同,動態(tài)的顯示這些數(shù)據(jù),JSP技術自1999年問世以來,經(jīng)過多年的發(fā)展,其廣泛的應用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術打下了堅實的基礎。所以本系統(tǒng)采用JSP作為本系統(tǒng)的視圖層。3.3系統(tǒng)功能結(jié)構(gòu)此系統(tǒng)的主要模塊有五個,分別是:我的微博模塊、個人中心模塊、最新動態(tài)模塊、留言板模塊和幫助中心模塊。在我的微博模塊中有查看我的微博和查看我的好友功能,還有更多設置功能;在個人中心模塊中具體分為完善資料功能和對密碼的操作;在最新動態(tài)模塊中可以發(fā)表微博和查看歷史微博內(nèi)容;在留言板模塊中可以發(fā)表留言和查看歷史留言信息等;而幫助模塊中主要是對一些常見問題進行解答。系統(tǒng)總體用例圖如下:圖3-1系統(tǒng)總用例圖3.3.1我的微博模塊功能分析在我的微博模塊中有查看我的微博和查看我的好友功能,還有更多設置功能。在這個模塊中用戶可以根據(jù)自己的需求選擇相應的功能進行使用,具體如下圖:圖3-2我的微博模塊用例圖在這里,查看我的微博功能可以跳轉(zhuǎn)到微博信息界面,用戶可以查看歷史的微博信息并對其進行操作。查看我的好友功能可以跳轉(zhuǎn)到好友信息界面,可以查看好友的詳信息并且對好友進行相應的操作。更多設置功能是跳轉(zhuǎn)到個人中心界面,可以對個人信息等信息進行操作。3.3.2個人中心模塊功能分析在個人中心模塊中可以對好友進行管理,還可以完善用戶的基本信息和密碼修改等操作。圖3-3個人中心模塊用例圖在好友管理功能中用戶可以查看所有好友,還可以查看好友的詳細信息,當然還可以根據(jù)關鍵字查找好友來添加好友,刪除好友等。如圖3-4。圖3-4好友管理用例圖在完善資料功能中用戶可以查看自己的資料并且對其進行修改等操作。圖3-5完善資料功能用例圖在密碼操作功能中,用戶可以修改自己的密碼,首先用戶需要填寫原密碼,如果原密碼不正確將不能進行修改密碼操作,如果原密碼正確則需要輸入新密碼和再次輸入新密碼,如果兩次輸入不一樣也會給出相應的提示并且不能進行修改操作。密碼保護功能就是需要用戶來選擇一些密碼問題來進行保存,也可以自己寫問題來寫出相應答案,可用于密碼找回和保護。圖3-6密碼操作功能用例圖3.3.3最新動態(tài)模塊功能分析最新動態(tài)模塊。用戶可以在最新動態(tài)模塊中發(fā)表微博信息,還可以查看歷史微博信息并對其進行操作。圖3-7最新動態(tài)模塊用例圖3.3.4留言板模塊功能分析留言板模塊。用戶可以在留言板模塊中發(fā)表留言信息,還可以查看歷史留言信息并對其進行操作。圖3-8留言板模塊用例圖3.3.5幫助中心模塊功能分析在幫助中心這個模塊中主要是針對一些常見問題進行解答。例如對于初用者的提問最多莫過于“如何使用微博系統(tǒng)”、“如何發(fā)表微博信息”等,還有就是主要的一些微博規(guī)則等。圖3-9幫助中心模塊用例圖3.4系統(tǒng)的操作過程1.首先,用戶會進入到系統(tǒng)的登錄界面,此時要求用戶輸入賬號和密碼,只有存在并且正確的賬號和密碼才能通過驗證并進入到系統(tǒng)使用頁面。2.如果用戶沒有賬號,可以直接注冊,注冊時只需要填寫用戶名和密碼就好,進入系統(tǒng)使用頁面后繼續(xù)補充好其他信息即可。3.登錄完成后進入系統(tǒng)操作頁面,用戶可以根據(jù)自己的需求選擇我的微博、個人中心、最新動態(tài)、留言板、幫助中心功能,選擇之后可以選擇進一步的子功能。4.選擇相應子功能后瀏覽器中會顯示相應的操作供用戶操作。5.使用完畢后點擊退出,此時會彈出對話框詢問用戶是否真的退出,點擊“是”則退出系統(tǒng),直接返回到系統(tǒng)登錄時的界面;點擊“否”則留在剛剛的界面。3.5系統(tǒng)總體結(jié)構(gòu)圖個人中心個人中心微博留言板我的微博最新動態(tài)幫助中心查看我的微博查看我的好友更多設置好友管理對一些常見問題進行解答完善資料密碼操作發(fā)表微博查看微博內(nèi)容發(fā)表留言查看留言信息圖3-10系統(tǒng)總體結(jié)構(gòu)圖3.6數(shù)據(jù)庫的概念當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱數(shù)據(jù)庫是一個“記錄保存系統(tǒng)”(該定義強調(diào)了數(shù)據(jù)庫是若干記錄的集合)。又如稱數(shù)據(jù)庫是“人們?yōu)榻鉀Q特定的任務,以一定的組織方式存儲在一起的相關的數(shù)據(jù)的集合”(該定義側(cè)重于數(shù)據(jù)的組織)。更有甚者稱數(shù)據(jù)庫是“一個數(shù)據(jù)倉庫”。當然,這種說法雖然形象,但并不嚴謹。嚴格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。在經(jīng)濟管理的日常工作中,常常需要把某些相關的數(shù)據(jù)放進這樣“倉庫”,并根據(jù)管理的需要進行相應的處理。J.Martin給數(shù)據(jù)庫下了一個比較完整的定義:數(shù)據(jù)庫是存儲在一起的相關數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無有害的或不必要的冗余,并為多種應用服務;數(shù)據(jù)的存儲獨立于使用它的程序;對數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進行。當某個系統(tǒng)中存在結(jié)構(gòu)上完全分開的若干個數(shù)據(jù)庫時,則該系統(tǒng)包含一個數(shù)據(jù)庫集合”。3.7數(shù)據(jù)庫E-R圖概念模型是對信息世界建模,其表示方法有很多,其中最為常用的是實體-聯(lián)系模型,即E-R模型,它是用E-R圖來描述現(xiàn)實世界的概念模型。E-R圖中用矩形表示實體,用橢圓表示屬性,用菱形表示聯(lián)系。E-R圖顯示了要建模的數(shù)據(jù)內(nèi)部及數(shù)據(jù)之間的相互關系。本系統(tǒng)表示實體及其聯(lián)系的總體E-R圖,見圖3-2。圖3-11系統(tǒng)總體E-R圖3.8系統(tǒng)界面設計本系統(tǒng)是Web應用,所以采用CSS(層疊樣式表)+DIV模式和框架結(jié)構(gòu),可以通過簡單的更改CSS文件,改變網(wǎng)頁的整體表現(xiàn)形式,可以減少我們的工作量。采用CSS+DIV進行網(wǎng)頁重構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園如何開展集體活動
- 心境情感障礙的護理查房
- 幼兒園班級管理安全工作
- 2025關于合同法司法的相關解釋
- 2025房地產(chǎn)開發(fā)抵押借款合同范本
- 市場營銷行業(yè)市場專員工作總結(jié)
- 2025個人卓公積金借款合同
- 購物網(wǎng)站銷售代表銷售總結(jié)報告
- 理財規(guī)劃計劃
- 新材料領域技術發(fā)展總結(jié)
- 高三期末家長會 高中期末考試成績分析會ppt
- 15.5-博物館管理法律制度(政策與法律法規(guī)-第五版)
- 水泥廠鋼結(jié)構(gòu)安裝工程施工方案
- 2023光明小升初(語文)試卷
- 三年級上冊科學說課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設計原則、計算和檢驗
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學道德與法治學科高級(一級)教師職稱考試試題(有答案)
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 實用性閱讀與交流任務群設計思路與教學建議
- 應急柜檢查表
聯(lián)系客服
本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。人人文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知人人文庫網(wǎng),我們立即給予刪除!
- 川公網(wǎng)安備: 51019002004831號 | 備案號:蜀ICP備2022000484號-2 | 經(jīng)營許可證: 川B2-20220663
-
Copyright ? 2020-2025 renrendoc.com 人人文庫版權(quán)所有 違法與不良信息舉報電話:400-852-1180
評論
0/150
提交評論