微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

--------【摘要】隨著社會(huì)的進(jìn)步,時(shí)代的發(fā)展,微博的使用在網(wǎng)上已經(jīng)非常廣泛,微博系統(tǒng)對(duì)用戶而言,除了方便之外,還是與朋友之間溝通交流的橋梁.該微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)正是適應(yīng)了這種要求.本系統(tǒng)采用JavaStrutsHibernateSpring技術(shù)開(kāi)發(fā),以Eclipse作為開(kāi)發(fā)工具進(jìn)行研發(fā).模塊中有查看我的微博和查看我的好友功能,還有更多設(shè)置功能;在個(gè)人中心模塊中具體分為完善資料功能和對(duì)密碼的操作;在最新動(dòng)態(tài)模塊中可以發(fā)表微博和查看歷史微博內(nèi)容;【關(guān)鍵字】微博系統(tǒng),Java,Struts,Hibernate----Desgn And -mplementationOfMicroBlogSystem【Abstract】theprogressof society, thedevelopmentof the times.MicroBlogonlinehasbeenverywidely used,MicroBlogSystem forusers,inadditiontoconvenience,orbridgeofcommunicationbetwee(cuò)nfriends。TheMicroBlogSystemisadaptedtothe designandimplementationoftherequirements.Thesystemuses theJavalanguage,MySQLandStruts,Hibernat(yī)e,Springtechnology,Eclipseasdevelopment tool.Itsmain functionsinclude six partsofsystemloginandregistration,myMicroBlogmodule, personalcentermodule,recentnews module,messageboardmoduleandhelpcentermodule.MyMicroBlogmoduleincludes message'select, friends'select,add,delete,andmoresettings functions;personalcentermodule includes password’modifyandqueryfunctions; recentnewsmodule includesinformation'sadd,delete,modifyandqueryfunctions;messageboardmoduleincludesmessage'sadd,delete,modify andqueryfunctions;inthe help center module,is toanswersomecommonquestions。Thisthesis introducesthesystem’sfunctionsandprocedureofdevelopmentcompletely,thepoint ofdesignandthethinkingof design importantlyandstat(yī)estherequirement analysisofthesystemdevelopmentindetail.【Keywords】MicroBlog System, Java,Struts, Hibernate--------目 錄第一章緒論?錯(cuò)誤!未定義書(shū)簽。1.1微博的研究背景 錯(cuò)誤未定義書(shū)簽。1.2 ?錯(cuò)誤未定義書(shū)簽。1。3 本文結(jié)構(gòu) 錯(cuò)誤未定義書(shū)簽。第二章相關(guān)技術(shù)介紹?錯(cuò)誤!未定義書(shū)簽。2.1JAVA?錯(cuò)誤!未定義書(shū)簽。2.2JAVAEE平臺(tái)技術(shù)介紹 錯(cuò)誤未定義書(shū)簽。2。3MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介 142。4MVC16?第三章系統(tǒng)需求分析 錯(cuò)誤!未定義書(shū)簽。3.1 系統(tǒng)總體需求分析 錯(cuò)誤未定義書(shū)簽。3。2系統(tǒng)開(kāi)發(fā)設(shè)計(jì)思想 203。3 系統(tǒng)功能結(jié)構(gòu) 錯(cuò)誤未定義書(shū)簽。3。4 系統(tǒng)的操作過(guò)?錯(cuò)誤未定義書(shū)簽。3.5 系統(tǒng)總體結(jié)構(gòu)圖 錯(cuò)誤未定義書(shū)簽。3。6數(shù)據(jù)庫(kù)的概念 錯(cuò)誤未定義書(shū)簽。3.7數(shù)據(jù)庫(kù)E-R?錯(cuò)誤未定義書(shū)簽。3。8系統(tǒng)界面設(shè)計(jì) 錯(cuò)誤未定義書(shū)簽。第四章詳細(xì)設(shè)計(jì)?錯(cuò)誤!未定義書(shū)簽。4。1數(shù)據(jù)庫(kù)的選擇?錯(cuò)誤!未定義書(shū)簽。4。2數(shù)據(jù)庫(kù)表的描述?錯(cuò)誤!未定義書(shū)簽。4.3 ?錯(cuò)誤未定義書(shū)簽。第五章系統(tǒng)實(shí)現(xiàn)?錯(cuò)誤!未定義書(shū)簽。系統(tǒng)登錄和注冊(cè) 錯(cuò)誤未定義書(shū)簽。添加留言信息 錯(cuò)誤未定義書(shū)簽。5。3刪除好友功能 錯(cuò)誤未定義書(shū)簽。5。4 修改個(gè)人信息 錯(cuò)誤未定義書(shū)簽。5.5 查詢留言信息 錯(cuò)誤未定義書(shū)簽。5。6 其他功?錯(cuò)誤未定義書(shū)簽。第六章系統(tǒng)測(cè)試及維護(hù) 錯(cuò)誤!未定義書(shū)簽。6。1 系統(tǒng)測(cè)?錯(cuò)誤未定義書(shū)簽。6.2測(cè)試用例 錯(cuò)誤未定義書(shū)簽。6.3系統(tǒng)維護(hù) 錯(cuò)誤未定義書(shū)簽。第七章總結(jié)與展望 錯(cuò)誤!未定義書(shū)簽。7.1總結(jié)?錯(cuò)誤!未定義書(shū)簽。7。2展望 錯(cuò)誤未定義書(shū)簽。后 錯(cuò)誤!未定義書(shū)簽參考文錯(cuò)誤!未定義書(shū)簽第一章 緒論1.1 微博的研究背景微博,就是微博客(MicroBlog)的簡(jiǎn)稱,是一個(gè)基于用戶關(guān)系的信息分享、傳播WEB、WAP140字twitter2011月份,7500萬(wàn)注冊(cè)用戶。在200中第一家提供微博服務(wù)的網(wǎng)站,從此微博正式進(jìn)入中文上網(wǎng)主流人群的視野。微博是一種通過(guò)關(guān)注機(jī)制分享簡(jiǎn)短實(shí)時(shí)信息的廣播式的社交網(wǎng)絡(luò)平臺(tái)。陳永東,國(guó)內(nèi)知名新媒體領(lǐng)域研究學(xué)者,他在國(guó)內(nèi)率先給出了微博的定義。其中有五方面的理解:1關(guān)注機(jī)制:分為單向和雙向兩種;2、內(nèi)容簡(jiǎn)短:通常為140字;3、實(shí)時(shí)信息:最新的實(shí)時(shí)信息;4、廣播式:公開(kāi)的信息,誰(shuí)都可以瀏覽以及轉(zhuǎn)播;5、社交網(wǎng)絡(luò)平臺(tái):把微博歸為社交網(wǎng)絡(luò)。微博為廣大用戶提供了這樣一個(gè)平臺(tái),你既可以以觀眾的身份在微博上瀏覽你感興趣的信息,也可以以發(fā)布者的身份在微博上發(fā)布內(nèi)容供別人瀏覽。發(fā)布的內(nèi)容一般較短,為140字的限制,由此命名為微博.當(dāng)然,也可以發(fā)布圖片,分享歌曲、視頻等。微博有兩方面的含義:首先,對(duì)于一些強(qiáng)調(diào)版面布置的博客來(lái)說(shuō),微博主要是由簡(jiǎn)單,而且與博客相比,微博的特點(diǎn):信息獲取具有很強(qiáng)的自主性、選擇性;微博宣傳的影響力具有很大彈性,與內(nèi)容質(zhì)量高度相關(guān);內(nèi)容短小精悍。微博的內(nèi)容限定為140字左右,內(nèi)容簡(jiǎn)短,不需長(zhǎng)篇大論,門檻較低;信息共享便捷迅速,這也是微博最大的特點(diǎn)。1。2國(guó)內(nèi)外研究現(xiàn)狀1.2。1 微博在國(guó)外的發(fā)展史埃文·威廉姆斯Williams)是博客技術(shù)先驅(qū)blogger3Obviouswitter是由blogger(EvanWilliams)20063witter了一個(gè)叫微博的小小世界里。截至20075111er2007年,在得克薩斯州奧斯汀舉辦的南非西南會(huì)議中贏得了部落格類的網(wǎng)站獎(jiǎng)。PlurkJaikuTwitter的主要競(jìng)爭(zhēng)對(duì)手。由于Twitter2007年5月創(chuàng)建了飯否網(wǎng)。而作為一個(gè)擁有4.1QQ200713日騰訊滔滔面世。但事情沒(méi)有預(yù)期發(fā)展的好,Twitter建立的“微型王國(guó)"不是在短時(shí)間內(nèi)掘出黃金的淺礦,所以國(guó)內(nèi)微博企業(yè)1。2.2微博在國(guó)內(nèi)的現(xiàn)狀及發(fā)展趨勢(shì)中國(guó)第一家?guī)в形⒉┥实娘埛窬W(wǎng)于2007年開(kāi)張開(kāi)始,到2009年,微博這個(gè)新詞匯以摧枯拉朽的姿態(tài)掃蕩世界,不久便成為全世界最流行的詞匯.國(guó)內(nèi)大批老牌微博產(chǎn)品(飯否、騰訊滔滔等)在2009年7月中旬開(kāi)始停止運(yùn)營(yíng),一些新產(chǎn)品開(kāi)始進(jìn)入人們的視野:6月份開(kāi)放的Follow5,7月份開(kāi)放的9911,8月份開(kāi)放的新浪微博等。在2010年,國(guó)內(nèi)微博開(kāi)始崛起。四大門戶網(wǎng)站均開(kāi)設(shè)微博。根據(jù)一些相關(guān)公開(kāi)數(shù)據(jù)201017500萬(wàn)注冊(cè)用戶.2011年上331195208913.8%增至402010年底至今,手機(jī)微博在網(wǎng)民中15.5%34%.圖1-1中國(guó)微博市場(chǎng)用戶周覆蓋人數(shù)圖1—2用戶訪問(wèn)次數(shù)及有效瀏覽時(shí)間集中度1幾十億美金的巨額收入.而騰訊微博作為另一個(gè)微博巨頭,也發(fā)展迅猛.其擁有近5億的QQ注冊(cè)用戶,其中2通過(guò)微博來(lái)推動(dòng)了中國(guó)教育事業(yè)信息化發(fā)展的步伐.互聯(lián)網(wǎng)實(shí)驗(yàn)室認(rèn)為,我國(guó)微博將向工具化、細(xì)分化、移動(dòng)化和開(kāi)放化等方向發(fā)展。如下圖所示.圖1-3發(fā)展方向研究圖現(xiàn)在,已經(jīng)有很多微博服務(wù)商對(duì)微博網(wǎng)站進(jìn)行了專業(yè)細(xì)分,搜房網(wǎng)推出的房地產(chǎn)專業(yè)微博等.隨著這種細(xì)分與競(jìng)爭(zhēng),細(xì)分化的趨勢(shì)將更加明顯.1。2.2中外微博的文化差異也是新權(quán)力者關(guān)系資本積累的過(guò)程。在國(guó)外,微博Twitter的產(chǎn)品初衷正如單詞Twitter瑣碎的思索、片段化的情感的窗口。1.3本文結(jié)構(gòu)第1章緒論,介紹微博的研究背景,國(guó)內(nèi)外的發(fā)展史及論文的結(jié)構(gòu)等。第2章 相關(guān)技術(shù)介紹對(duì)微博的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中用到的開(kāi)發(fā)語(yǔ)言平臺(tái)技術(shù)以及框架技術(shù)進(jìn)行介紹,主要闡述了語(yǔ)言JAVAEE企業(yè)級(jí)應(yīng)用、三大框架MySQLMVC模式。,最新動(dòng)態(tài)模塊、留言板模塊、幫助中心模塊的需求進(jìn)行的分析。第4章詳細(xì)設(shè)計(jì),在需求分析的基礎(chǔ)上,進(jìn)行總體設(shè)計(jì),并對(duì)我的微博模塊、個(gè)人中心模塊、最新動(dòng)態(tài)模塊、留言板模塊進(jìn)行詳細(xì)設(shè)計(jì),進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),對(duì)并數(shù)據(jù)關(guān)系進(jìn)行說(shuō)明.5,和注冊(cè)、添加留言信息、刪除好友功能、修改個(gè)人信息等.第6章系統(tǒng)測(cè)試及維護(hù),包括對(duì)測(cè)試原理及常用軟件測(cè)試方法的介紹,針對(duì)登錄部分設(shè)計(jì)測(cè)試用例,并對(duì)測(cè)試的結(jié)果如何進(jìn)行說(shuō)明。第7,總結(jié)微博系統(tǒng)的研究情況,系統(tǒng)還需要進(jìn)行改進(jìn)的地方。第二章 相關(guān)技術(shù)介紹2。1JAVA語(yǔ)言概述最初被命名為Oak,機(jī)等家用電器的控制和通訊問(wèn)題,其目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語(yǔ)言,因?yàn)檫@Sun預(yù)期的高所以放棄了該項(xiàng)計(jì)劃。但是隨著互聯(lián)網(wǎng)的發(fā)展SunOakOak幾近失敗之時(shí)改造了Oak,并且正式發(fā)布,命名為“Java”.Java編程語(yǔ)言的風(fēng)格與C、C++語(yǔ)言十分類似。不同的是:Java對(duì)象的程序設(shè)計(jì)語(yǔ)言,JavaC(用引用來(lái)取代)重繼承(用接口來(lái)取代)、運(yùn)算符重載(operatoroverloading)等特性,Java繼C所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂[2]JavaSE1。5版本中,Java又引入了泛型編程(GenericProgramming、類型安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語(yǔ)言特性[3]。Java語(yǔ)言不同于一般的編譯執(zhí)行計(jì)算機(jī)語(yǔ)言和解釋執(zhí)行計(jì)算機(jī)語(yǔ)言。Java的運(yùn)行機(jī)制是首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),也就是所謂的機(jī)器語(yǔ)言,然后依賴各種不同平臺(tái)上的虛擬機(jī)來(lái)解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性.不過(guò),每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了Java程序的運(yùn)行效率。但是,在J2SE1.4.2發(fā)布后,Java的執(zhí)行速度有了大幅提升。SunJavaJavaJava軟件必須相互兼容.Sun公司的口號(hào)之一是“Java語(yǔ)言靠群體的力量而非公司的力量”,也獲得了廣大軟件開(kāi)發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式是完全不同的[4。JavaSunJava編程語(yǔ)言的解釋.Java平臺(tái)是基于Java語(yǔ)言的平臺(tái)。這樣的平臺(tái)目前非常流行,因此,微軟公司先后推出了與之競(jìng)爭(zhēng)的.NET平臺(tái)以及模仿Java的C#語(yǔ)言。Java的主要特性:Java,,Java系結(jié)構(gòu)是中立的,Java語(yǔ)言,Java是高性能的.JavaJavaJavaAPI能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用ava(JavaEnterpriseAPIs)2。2JAVAEE平臺(tái)技術(shù)介紹EE次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循JAVAEE容性,解決過(guò)去企業(yè)后端使用的信息產(chǎn)品彼此之間無(wú)法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。EEJavaJava2平臺(tái)的標(biāo)準(zhǔn)版,JAVAEE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBCAPI、CORBAInternet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,J(EnterriseJavaeansJavaServletsSJavaServerPages)以及X企業(yè)開(kāi)發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)[5].JAVAEEEE降低了開(kāi)發(fā)多,EnterpriseJavaBeans[6],有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。EE的四層模型,如圖2.1所示。(1)運(yùn)行在客戶端機(jī)器上的客戶層組件。(2)運(yùn)行在JAVAEE服務(wù)器上的Web層組件。(3)運(yùn)行在JAVAEE服務(wù)器上的業(yè)務(wù)邏輯層組件。(4)運(yùn)行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterpriseinformat(yī)ionsystem)層軟件.2—1EE的4層模型圖2.2.1Struts技術(shù)簡(jiǎn)介StrutsApacheJakarta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過(guò)對(duì)該項(xiàng)JavaServerPagesServletStruts這個(gè)名字來(lái)源于在建筑和舊式飛機(jī)中使用的支持金屬架.當(dāng)建立一個(gè)物理建筑時(shí),建筑工程師使用支柱為建筑的每一層提供支持。同樣,Struts為業(yè)務(wù)應(yīng)用MVWeb應(yīng)用的時(shí)間。隨著JSP與Servlet 技術(shù)大量應(yīng)用于以Web為基礎(chǔ)的應(yīng)用程序,Java 發(fā)人員群體認(rèn)為應(yīng)以較佳的模式以提升Web應(yīng)用程序的可維護(hù)性與重復(fù)使用性。早期JSP規(guī)格書(shū)中曾列舉兩種可行之JSP應(yīng)用架構(gòu)分別為Model1與Model2如想混合使用Servlets和JSP的優(yōu)點(diǎn)來(lái)建立可擴(kuò)展的應(yīng)用是一個(gè)不錯(cuò)的選擇在Model 1架構(gòu)中,JSP直接處理Web瀏覽器送來(lái)的請(qǐng)(Request并輔以JavaBean處理應(yīng)用相關(guān)邏輯Model1架構(gòu)單純編寫比較容易但在Model1中可能同時(shí)肩負(fù)View與Controller角色,兩類程序代碼有可能混雜而不易維護(hù).而Model 2中將Servlet納入架構(gòu)中扮演前端Controller角色,將Web瀏覽器送出的請(qǐng)求集中送至Servlet,Servlet處理。Model2中采用了較佳的MVC模式但增加了編寫復(fù)雜度.Struts是ApacheJakartaStrutsomcat,Antelocity2000CraigRMcClanahanstrutsJSPModel2架構(gòu)的ApplicationFrameworkApache基金會(huì),ApacheJakartaStrutsFramework前身。StrutsCraigR。McClanahan.Craigat4的主要架構(gòu)師,JavaWebDeveloperPack的主要架構(gòu)師和實(shí)現(xiàn)SunJavaServerFaces(JSR—127)以及J2EWeb層架構(gòu)的規(guī)CraigRMcClanahan先生是JCPExpertGroupJSP規(guī)格制定與TomcatFrameworkJava開(kāi)發(fā)人員群體所重視。Borland自2002年底開(kāi)始于開(kāi)發(fā)工具JBuilder中支持StrutsFramework。StrutsApacheJakarta項(xiàng)目的組成部分問(wèn)世運(yùn)作.項(xiàng)目的創(chuàng)立者希望JavaServerPagesServlet象的技術(shù)水準(zhǔn)。Struts、Tu(píng)rbine等諸多Apache項(xiàng)目一樣,是開(kāi)源軟件,這是它的一大優(yōu)點(diǎn),使開(kāi)發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。和頁(yè)面導(dǎo)航.Taglib是Struts的標(biāo)記庫(kù),靈活運(yùn)用,能大大提高開(kāi)發(fā)效率。另外,就目前國(guó)內(nèi)的JSP言,除了使用JSP,或許Struts點(diǎn)。Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),MVC應(yīng)用程序的開(kāi)發(fā).Struts可以清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡(jiǎn)化了開(kāi)發(fā)應(yīng)用程序的過(guò)程。Struts提供的類使得開(kāi)發(fā)工作更加簡(jiǎn)單,這些類包括:1.控制程序流程的類;2。實(shí)現(xiàn)和執(zhí)行程序事務(wù)邏輯的類;3.自定義的標(biāo)記庫(kù)使得創(chuàng)建和驗(yàn)證HTML表單更加容易.2.2。2Hibernate技術(shù)簡(jiǎn)介Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBJava程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù).te可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Javalet/JSP的Web應(yīng)用中使用,最具革命意義的是,HibernateEJBCMP,完成數(shù)據(jù)持久化的重任。Hibernate6個(gè),分別為:Session、SessionFactory、TransactionQueryCriteria和Configuration。這6個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這個(gè)核心接口分別加以介紹.Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUDL語(yǔ)句.ession的。同時(shí),HibernatesessionJSPHttpSessionsessionHibernatesession,而以后會(huì)將HttpSessionsession.SessionFactory接口負(fù)責(zé)初始化Hibernat(yī)e。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,SessionFactory。ConfigurationHibernate,創(chuàng)建SessionFactoryHibernat(yī)e的啟動(dòng)的過(guò)程中,Configuration配置,SessionFactory對(duì)象。Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作.它是可選的,開(kāi)發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。QueryCriteriaHQSQL句兩種表達(dá)方式。Hibernat(yī)e主鍵介紹:Assigned,并且要在save()之前指定否則會(huì)拋出異常特點(diǎn):主鍵的生成值完全由用戶決定,與底層數(shù)據(jù)庫(kù)無(wú)關(guān).用戶需要維護(hù)主鍵值,在調(diào)用ssion.save()之前要指定主鍵值。Hilo,然后把Hilo方式需要額外的數(shù)據(jù)庫(kù)表和hibernate_unique_key,next_h(yuǎn)i。next_hi必須有一條記錄否則會(huì)出現(xiàn)錯(cuò)誤。特點(diǎn):需要額外的數(shù)據(jù)庫(kù)表的支持,能保證同一個(gè)數(shù)據(jù)庫(kù)中主鍵的唯一性,Hibernat(yī)e維護(hù),所以Hilo修改hi/lo算法使用的表的值,否則會(huì)引起主鍵重復(fù)的異常。Increment,但要求底層數(shù)據(jù)SequenceOracle,DB2xxx。hbm.xmlrement標(biāo)志符的設(shè)置。特點(diǎn):由Hibernate本身維護(hù),適用于所有的數(shù)據(jù)庫(kù),多進(jìn)程并發(fā)更新數(shù)據(jù)庫(kù),適合單一進(jìn)程訪問(wèn)數(shù)據(jù)庫(kù)。不能用于群集環(huán)境。Identity當(dāng)時(shí)根據(jù)底層數(shù)據(jù)庫(kù),來(lái)支持自動(dòng)增長(zhǎng),不同的數(shù)據(jù)庫(kù)用不同的主鍵IdentityMySQlauto_increment,SQLServer中是Identity,支持的數(shù)據(jù)庫(kù)有MySql、SQLServer、DB2、SybaseHypersonicSQL。IdentityHibernate和用戶的干涉,使用較為方便,但不便于在不同的數(shù)據(jù)庫(kù)之間移植程序。SequenceSequenceOracle底層數(shù)據(jù)庫(kù)的支持序列,支持序列的數(shù)據(jù)庫(kù)有DB2PostgreSqlOracleSAPDb在不同數(shù)據(jù)庫(kù)之間移植程序,特別從支持序列的數(shù)據(jù)庫(kù)移植到不支持序列的數(shù)據(jù)庫(kù)需要修改配置文件。Nat(yī)ive主鍵生成方式會(huì)根據(jù)不同的底層數(shù)據(jù)庫(kù)自動(dòng)選擇Identity、Sequence、ilo.由于Hibernate,個(gè)數(shù)據(jù)庫(kù)時(shí),可以使用這種方式。UUID128UUID算法生成主鍵,的主鍵唯一性,這樣就可以節(jié)省存貯空間。ForeignSQServerMySQL數(shù)據(jù)庫(kù)。2.2.3Spring技術(shù)簡(jiǎn)介Spring是一個(gè)開(kāi)源框架,它由RodJohnson創(chuàng)建.它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring7個(gè)定義良好的模塊組成。Spring模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式,如下圖所示.圖2-2 Spring模塊Spring(或組件)實(shí)現(xiàn).每個(gè)模塊的功能如下:SpringFactoryBeanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi)。SpringpringSpring信息。SpringJNDI、EJB、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能。Spring AOP:通過(guò)配置管理特性,SpringAOP模塊直接將面向方面的編程功能集成到了 Spring框架中。所以,可以很容易地使Spring框架管理的任何對(duì)象支持AOPSpringAOP模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)通過(guò)使用SpringAOP,不用依賴 EJB組件就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。SpringDAO:JDBCDAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來(lái)管理異常處理和不同數(shù)據(jù)庫(kù)供應(yīng)商拋出的錯(cuò)誤消息.異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開(kāi)和關(guān)閉連接)。SpringDAO的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。SpringORM:Spring框架插入了若干個(gè)ORM框架,從而提供了 ORM的對(duì)關(guān)系工具,其中包括 JDO、Hibernate和iBatis SQLMap。所有這些都遵從pring的通用事務(wù)和DAO異常層次結(jié)構(gòu).SpringWeb模塊:Web上下文模塊建立在應(yīng)用程序上下文模塊之上,eb的應(yīng)用程序提供了上下文。所以,Spring框架支持與JakartaStruts的集成。WebSpringMVC框架:MVC框架是一個(gè)全功能的構(gòu)建Web應(yīng)用程序的MVC實(shí)現(xiàn)通過(guò)策略接口,MVC框架變成為高度可配置的,MVC 容納了大量視圖技術(shù),其中包括JSP、、Tiles、iText和POI。SpringJ2EE.Spring2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。毫無(wú)疑問(wèn),這樣的對(duì)象可以在不同J2EEEJB)序、測(cè)試環(huán)境之間重用。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架.IOC和AOP:(也稱作依賴性介入務(wù)。容器(在SpringOC容器)IOC場(chǎng)景中,OC的一個(gè)實(shí)現(xiàn)模式.1服務(wù)需要實(shí)現(xiàn)專門的接口,通過(guò)接口,由對(duì)象提供這些服務(wù),可以從對(duì)象查詢依賴性(例如,需要的附加服務(wù))2JavaBean(例如setter方法性類型3依賴性以構(gòu)造函數(shù)的形式提供,不以JavaBean屬性的形式公開(kāi)。SpringIOC容器采用類型23實(shí)現(xiàn).AOP就是面向方面的編程,是一種編程技術(shù),它允許程序員對(duì)橫切關(guān)注點(diǎn)或橫切典型的職責(zé)分界線的行為(例如日志和事務(wù)管理)那些影響多個(gè)類的行為封裝到可重用的模塊中.AOPIOC是補(bǔ)充性的技術(shù),它們都運(yùn)用模塊化方式解決企業(yè)應(yīng)用程序開(kāi)發(fā)中的Java類中才能實(shí)現(xiàn)日志功能.AOP方式中,可以反過(guò)來(lái)將日志服務(wù)模塊化,并以聲明的方式將它們應(yīng)用到需要日志的組件上.當(dāng)然,Java類不需要知道日志服務(wù)的存在,也不需要考慮相關(guān)的代碼.所以,SpringAOPpring事務(wù)管理、日志和其他各種特性的上下文中。IOC容器Spring設(shè)計(jì)的核心是org。springframework。beans包,它的設(shè)計(jì)目標(biāo)是JavaBeaneanFactoryBeanFactoryBeanFactory支持兩個(gè)對(duì)象模型.單態(tài)模型提供了具有特定名稱的對(duì)象的共享實(shí)例,可以在查詢時(shí)對(duì)其進(jìn)行檢索.Singleton是默認(rèn)的也是最常用的對(duì)象模型。對(duì)于無(wú)狀態(tài)服務(wù)對(duì)象很理想,原型模型最適合。beanpringIOCIO框架使用JavaBean屬性和配置數(shù)據(jù)來(lái)指出必須設(shè)置的依賴關(guān)系。2.3MySQLMySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),MySQLAB公司。2008116MySQLA2009年,Oracle又收購(gòu)了SUNMySQLMySQL被廣泛地應(yīng)用在Internet尤其MySQL了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù).MySQL特性:1。使用C和C++編寫,并經(jīng)過(guò)了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性;2FreeBSD、AIX、OpenBSD、MacOS、NovellNetware、SolarisHP-UX、Linux、OS/2、Windows等多種操作系統(tǒng);3。MySQL為多種編程語(yǔ)言提供了API.這些編程語(yǔ)言包括C、C++、Java、Python、PHP、Perl、Ruby、Tcl和Eiffel等;4。支持多線程,可以充分利用CPU資源;5。使用優(yōu)化的SQL查詢算法,有效地提高查詢速度;,一個(gè)庫(kù),嵌入到其他的軟件中提供多語(yǔ)言支持,常見(jiàn)的編碼如中文的BIG5、GB 2,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名;7.提供TCP/IP、JDBC和ODBC等多種數(shù)據(jù)庫(kù)連接途徑;8。提供一些管理工具,例如:管理、檢查、優(yōu)化數(shù)據(jù)庫(kù);9.可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。MySQL的應(yīng)用:與其他的大型數(shù)據(jù)庫(kù)例如OracleServer等相比,MySQL點(diǎn),如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,不會(huì)影響MySQL受歡迎的程度。MySQL業(yè)來(lái)說(shuō)已經(jīng)綽綽有余,而且由于MySQL是開(kāi)源的軟件,因此可以大大降低總體擁有成本。LAMP(Linux+Apache+MySQL+PHP)Internet:操作系統(tǒng)使用作為Web服務(wù)器,數(shù)據(jù)庫(kù)使用(FLOS以使用這種方式不用花一分錢就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。MySQL管理:MySQL數(shù)據(jù)庫(kù)可以使用命令行工具管理(mysqlmysqladmin),也可以MyL的網(wǎng)站下載圖形管理工具MySQLQueryrowseryQLAdministrator。phpMyAdminMySQLphpbMySQL資料庫(kù)。由PHPphpMyBackupPro,可以透過(guò)WebySQL數(shù)據(jù)庫(kù).除此之外,還有其他的GUImysql—frontemsmysqlmanager等等。MySQL最常見(jiàn)的應(yīng)用架構(gòu)有:適合小規(guī)模應(yīng)用的單點(diǎn)適合中小規(guī)模應(yīng)用的復(fù)制(Replication)大(Cluster。MySQL4。1版本中增加了不少新的性能,包括對(duì)子查詢的更好的支持,5041版本中的所有新特性,有以下新特點(diǎn):系統(tǒng)自動(dòng)報(bào)錯(cuò)機(jī)制;對(duì)外鍵的良好支持以及對(duì)存儲(chǔ)過(guò)程的充分支持。MySQL的主要原因是,MySQL數(shù)據(jù)庫(kù)的體積小,而且運(yùn)行速度快,總體擁有成本低,MySQLMySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。2.4MVC設(shè)計(jì)模式簡(jiǎn)介模型(Model),視圖(View)和控制(Controller)三個(gè)單詞組成了Model-ViewControllerMVCWebdelJavaBeanEJBView層通常用JSPModel與View之間溝通的橋梁是Controller們映射為模型層可執(zhí)行的操作。MVCDesktop程序中的,M指的是數(shù)據(jù)模型,V指的是用戶界面MVMVCcopyright:MVCM改變,V應(yīng)該同步更新。至今已被廣泛使用的模型-視圖-控制器(MVC)XeroxPARCSmalltalk-80Oracle旗下SunJavaEE平臺(tái)的設(shè)計(jì)模式,并且越來(lái)越多的使用ColdFusionPHP的MVC。MVC模式是一個(gè)有用的工具箱,它既有優(yōu)點(diǎn)又有缺點(diǎn)。MVC是如何工作的:MVC強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi),紹了這幾個(gè)模塊的功能以及之間的關(guān)系。圖2-3 MVC設(shè)計(jì)模式圖MVC的優(yōu)缺點(diǎn):(1)低耦合性。視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)MVC的模型層即可.因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則.(2)高重用性和可適用性。隨著技術(shù)的不斷進(jìn)步,現(xiàn)在需要用越來(lái)越多的方式來(lái)訪問(wèn)MVC模式允許你使用各種不同樣式的視圖來(lái)訪問(wèn)同一個(gè)服務(wù)器端的代碼。它瀏覽器或者無(wú)線瀏覽器通過(guò)手機(jī)來(lái)訂購(gòu)某樣產(chǎn)品,雖然訂購(gòu)的方式不一樣,但處理訂購(gòu)產(chǎn)品的方式是一樣的。由于模型返回的數(shù)據(jù)沒(méi)有進(jìn)行格式化,所以同樣的構(gòu)件能被不同的界面使用.例如,很多數(shù)據(jù)可能用HTML來(lái)表示,但是也有可能用W變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無(wú)需做任何改變。(3)較低的生命周期成本。MVC使開(kāi)發(fā)和維護(hù)用戶接口的技術(shù)含量降低。(4)MVC模式使開(kāi)發(fā)時(shí)間得到相當(dāng)大的縮減,Java集中精力于業(yè)務(wù)邏輯,HTML和JSP開(kāi)發(fā)人員集中精力于表現(xiàn)形式上.(5)可維護(hù)性。分離視圖層和業(yè)務(wù)邏輯層也使得WEBMVC的缺點(diǎn)是由于它沒(méi)有明確的定義,所以完全理解MVC并不是很容易。使用MVC需要精心的計(jì)劃,由于它的內(nèi)部原理比較復(fù)雜,所以需要花費(fèi)一些時(shí)間去思考.加了,但是請(qǐng)記住這與其所能帶來(lái)的好處相比是不值一提.MVC并不適合小型甚至中等規(guī)模的應(yīng)用程序,花費(fèi)大量時(shí)間將MVC應(yīng)用到規(guī)模并不是很大的應(yīng)用程序通常會(huì)得不償失。為什么要使用MVC:WebCFML這樣的過(guò)程化(自PHP5.0)語(yǔ)言來(lái)創(chuàng)建的.它們將像數(shù)據(jù)庫(kù)查詢語(yǔ)句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起.MVC強(qiáng)制性的將它們分開(kāi).MVC的好處是毋庸置疑的。首先,最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型,現(xiàn)在需要用越來(lái)越多的方式來(lái)訪問(wèn)你的應(yīng)用程序。對(duì)此,其中一個(gè)解決之道是使用MVC,無(wú)論你的用戶想要Flash面或是WAP 界面;用一個(gè)模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開(kāi)所以你可以最大化的重用你的代碼了由于模型返回的數(shù)據(jù)沒(méi)有進(jìn)行格式化以同樣的構(gòu)件能被不同界面使用。MVC設(shè)計(jì)模式是一個(gè)很好創(chuàng)建軟件的途徑,它所提倡的一些原則,像內(nèi)容和顯示互相分離可能比較好理解。但是如果你要隔離模型、視圖和控制器的構(gòu)件,你可能需要重新思考你的應(yīng)用程序,尤其是應(yīng)用程序的構(gòu)架方面。如果你肯接受MVC所帶來(lái)的額外的工作和復(fù)雜性,MVC個(gè)新的臺(tái)階。第三章 系統(tǒng)需求分析3.1系統(tǒng)總體需求分析在本章,主要對(duì)微博的設(shè)計(jì)與開(kāi)發(fā)進(jìn)行詳細(xì)的需求與分析.本系統(tǒng)對(duì)數(shù)字化信息資源的組織采用數(shù)據(jù)庫(kù)。系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)是關(guān)系數(shù)據(jù)庫(kù)MySQL,使用JSP平臺(tái)作為前臺(tái)開(kāi)發(fā)。目前,最完備的面向?qū)ο笳Z(yǔ)言就是JSP,其發(fā)展前景很可觀。MySQL數(shù)據(jù)庫(kù)的體積小,而且運(yùn)行速度快,總體擁有成本低,MySQL服務(wù)器是可靠的和易于使用的數(shù)據(jù)庫(kù)服務(wù)器,而且其是開(kāi)放源碼,并且支持SQL語(yǔ)法。從經(jīng)濟(jì)角度分析。對(duì)于一個(gè)普通的用戶來(lái)說(shuō),要想擁有一個(gè)微博,可以直接在Internet上注冊(cè)一個(gè)新浪微博或者是騰訊微博,這樣的微博都是免費(fèi)注冊(cè)的,對(duì)于用戶來(lái)說(shuō)及經(jīng)濟(jì)又實(shí)惠,是用戶擁有微博的最佳選擇.當(dāng)然,還有第二種方法可以擁有一個(gè)微博,就是自己去搭建,用戶可首先要買一個(gè)獨(dú)立的域名,然后購(gòu)買服務(wù)器托管在機(jī)房或者租用一個(gè)虛擬主機(jī),還需要下載一個(gè)開(kāi)放源碼的微博系統(tǒng)將其安裝在自己的服務(wù)器或者空間上,這種方法是需要花費(fèi)一定的費(fèi)用的,200相比起來(lái),,98%的用戶都會(huì)選擇直接在Internet上直接注冊(cè)開(kāi)通一個(gè)微博。微博在人們的生活中所扮演的角色.對(duì)于商人來(lái)說(shuō),微博是為他們制造利益的一種工.而對(duì)于一些普通用戶來(lái)說(shuō),微博只是一種娛樂(lè),他們可以在這里找到快樂(lè)。而對(duì)于機(jī)構(gòu)而言,引更多的消費(fèi)者就是他們的目的.從技術(shù)角度分析。在我們以往所學(xué)過(guò)的課程中,《JAVA語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)》,《數(shù)據(jù)庫(kù)原理》 《操作系統(tǒng)知識(shí)》,《網(wǎng)絡(luò)基礎(chǔ)》等為此課題的設(shè)計(jì)與開(kāi)發(fā)提供了堅(jiān)實(shí)的基礎(chǔ)。JSP也是一種簡(jiǎn)單的語(yǔ)言,對(duì)于會(huì)使用HTML語(yǔ)言的人來(lái)說(shuō)JSP很容易懂所以技術(shù)難度并不高。微博,作為一個(gè)很典型的Web應(yīng)用,其開(kāi)發(fā)所遇到的所有技術(shù)難題已經(jīng)分析到,有好的平臺(tái)和數(shù)據(jù)庫(kù),對(duì)于這樣的問(wèn)題會(huì)很好解決.從操作角度分析。在整個(gè)系統(tǒng)的開(kāi)發(fā)中,能否很好的掌握開(kāi)發(fā)的進(jìn)度,能否科學(xué)的分配時(shí)間與資源,能否使系統(tǒng)的開(kāi)發(fā)不間斷從而使得其能有條不紊的進(jìn)行是分析的重點(diǎn)。只要在開(kāi)發(fā)之前做好充足的準(zhǔn)備工作,制定好完善的計(jì)劃,在開(kāi)發(fā)中根據(jù)實(shí)際情況進(jìn)行修改和完善,在操作中就不會(huì)出現(xiàn)問(wèn)題。綜上所述:如果有良好的經(jīng)濟(jì)支撐和技術(shù)支持,外加操作上的支持,此系統(tǒng)就會(huì)達(dá)到統(tǒng)完全可以開(kāi)發(fā)。3。2系統(tǒng)開(kāi)發(fā)設(shè)計(jì)思想J2EE,(Mode層(Vie),控制層ControllrMVCMVCStruts.本系統(tǒng)的控制層是Struts的核心類org.apache。struts.action.ActionServlet,它根據(jù)struts-config.xml本系統(tǒng)的模型層是相應(yīng)的Java實(shí)體類和業(yè)務(wù)邏輯類,這些類是本系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)和根本。JSP技術(shù),適合頁(yè)面的顯示,并根據(jù)業(yè)務(wù)要求的不同,動(dòng)態(tài)的顯示這些數(shù)據(jù),JSP技術(shù)自1999以來(lái),經(jīng)過(guò)多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的JSP作為本系統(tǒng)的視圖層.3.3系統(tǒng)功能結(jié)構(gòu)此系統(tǒng)的主要模塊有五個(gè),分別是:我的微博模塊、個(gè)人中心模塊、最新動(dòng)態(tài)模塊、留言板模塊和幫助中心模塊.在我的微博模塊中有查看我的微博和查看我的好友功能,;塊中可以發(fā)表微博和查看歷史微博內(nèi)容;在留言板模塊中可以發(fā)表留言和查看歷史留言信息等;而幫助模塊中主要是對(duì)一些常見(jiàn)問(wèn)題進(jìn)行解答.系統(tǒng)總體用例圖如下:我的微博我的微博個(gè)人中心最新動(dòng)態(tài)留言板用戶幫助中心圖3—1系統(tǒng)總用例圖3。3.1我的微博模塊功能分析模塊中用戶可以根據(jù)自己的需求選擇相應(yīng)的功能進(jìn)行使用,具體如下圖:查看我的微博查看我的微博我的微博查看我的好友用戶更多設(shè)置圖3—2我的微博模塊用例圖并對(duì)其進(jìn)行操作。查看我的好友功能可以跳轉(zhuǎn)到好友信息界面,可以查看好友的詳信息并進(jìn)行操作.3。3.2個(gè)人中心模塊功能分析在個(gè)人中心模塊中可以對(duì)好友進(jìn)行管理,還可以完善用戶的基本信息和密碼修改等操作。好友管理好友管理個(gè)人中心完善資料用戶密碼操作圖3-3個(gè)人中心模塊用例圖查看所有好友查看好友信息好友管理添加好友用戶刪除好友在好友管理功能中用戶可以查看所有好友,還可以查看好友的詳細(xì)信息查看所有好友查看好友信息好友管理添加好友用戶刪除好友圖3-4 好友管理用例圖在完善資料功能中用戶可以查看自己的資料并且對(duì)其進(jìn)行修改等操作.查看自己的資料查看自己的資料完善資料修改自己的資料用戶圖3—5完善資料功能用例圖在密碼操作功能中,用戶可以修改自己的密碼,首先用戶需要填寫原密碼,如果原密用戶來(lái)選擇一些密碼問(wèn)題來(lái)進(jìn)行保存,也可以自己寫問(wèn)題來(lái)寫出相應(yīng)答案,可用于密碼找回和保護(hù)。修改密碼修改密碼密碼操作密碼保護(hù)用戶3.3.3最新動(dòng)態(tài)模塊功能分析

圖3-6密碼操作功能用例圖最新動(dòng)態(tài)模塊。用戶可以在最新動(dòng)態(tài)模塊中發(fā)表微博信息,還可以查看歷史微博信息并對(duì)其進(jìn)行操作.發(fā)表微博發(fā)表微博最新動(dòng)態(tài)查看歷史微博信息用戶圖3-7 最新動(dòng)態(tài)模塊用例圖3。3。4留言板模塊功能分析留言板模塊.用戶可以在留言板模塊中發(fā)表留言信息,還可以查看歷史留言信息并對(duì)其進(jìn)行操作.發(fā)表留言發(fā)表留言留言板查看歷史留言信息用戶圖3—8留言板模塊用例圖。5幫助中心模塊功能分析等.幫助中心幫助中心對(duì)一些常見(jiàn)問(wèn)題進(jìn)行解答用戶3。4系統(tǒng)的操作過(guò)程

圖3-9幫助中心模塊用例圖,此時(shí)要求用戶輸入賬號(hào)和密碼,正確的賬號(hào)和密碼才能通過(guò)驗(yàn)證并進(jìn)入到系統(tǒng)使用頁(yè)面。2。如果用戶沒(méi)有賬號(hào),可以直接注冊(cè),注冊(cè)時(shí)只需要填寫用戶名和密碼就好,進(jìn)入系統(tǒng)使用頁(yè)面后繼續(xù)補(bǔ)充好其他信息即可.登錄完成后進(jìn)入系統(tǒng)操作頁(yè)面,,選擇之后可以選擇進(jìn)一步的子功能。選擇相應(yīng)子功能后瀏覽器中會(huì)顯示相應(yīng)的操作供用戶操作.出系統(tǒng),直接返回到系統(tǒng)登錄時(shí)的界面;點(diǎn)擊“否"則留在剛剛的界面。3.5系統(tǒng)總體結(jié)構(gòu)圖我個(gè)最留幫的人新言助微中動(dòng)板中博心態(tài)心查查更好完密發(fā)查發(fā)查對(duì)看看多友善碼表看表看一我我設(shè)管資操微微留留些的的置理料作博博言言常微好內(nèi)信見(jiàn)博友容息問(wèn)題進(jìn)行解微博圖3-10系統(tǒng)總體結(jié)構(gòu)圖微博6 數(shù)據(jù)庫(kù)的概念當(dāng)人們從不同的角度來(lái)描述這一概念時(shí)就有不同的定義(當(dāng)然是描述性的).例如,(該定義強(qiáng)調(diào)了數(shù)據(jù)庫(kù)是若干記錄的集合,以一定的組織方式存儲(chǔ)在一起的相關(guān)的數(shù)據(jù)的集合(側(cè)重于數(shù)據(jù)的組織).更有甚者稱數(shù)據(jù)庫(kù)是“一個(gè)數(shù)據(jù)倉(cāng)庫(kù),這種說(shuō)法雖然形象,不嚴(yán)謹(jǐn)?!皞}(cāng)庫(kù)的處理。J.Martin,則該系統(tǒng)包含一個(gè)數(shù)據(jù)庫(kù)集合"。3。7數(shù)據(jù)庫(kù)E—R圖概念模型是對(duì)信息世界建模,其表示方法有很多,其中最為常用的是實(shí)體-聯(lián)系模型,即E-R模型,它是用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型.E-R圖中用矩形表示實(shí)體,用橢圓表示屬性,用菱形表示聯(lián)系。E-R圖顯示了要建模的數(shù)據(jù)內(nèi)部及數(shù)據(jù)之間的相互關(guān)系。本系統(tǒng)表示實(shí)體及其聯(lián)系的總體E-R圖,見(jiàn)圖3-2.3。8系統(tǒng)界面設(shè)計(jì)

圖3-11 系統(tǒng)總體E-R圖CSS(層疊樣式表)+DIVCSS文件,改變網(wǎng)頁(yè)的整體表現(xiàn)形式,可以減少我們的工作量.DIV進(jìn)行網(wǎng)頁(yè)重構(gòu)相對(duì)與傳統(tǒng)的TABLE網(wǎng)頁(yè)布局而具有以下3個(gè)顯著優(yōu)勢(shì):1.表現(xiàn)和內(nèi)容相分離將設(shè)計(jì)部分剝離出來(lái)放在一個(gè)獨(dú)立樣式文件中,HTML文件中只存放文本信息。這樣的頁(yè)面對(duì)搜索引擎更加友好.2.提高頁(yè)面瀏覽速度對(duì)于同一個(gè)頁(yè)面視覺(jué)效果,CSS+DIV面文件容量小得多,前者一般只有后者的1/2大小。瀏覽器就不用去編譯大量冗長(zhǎng)的標(biāo)簽。3.易于維護(hù)和改版只要簡(jiǎn)單的修改幾個(gè)CSS文件就可以重新設(shè)計(jì)整個(gè)系統(tǒng)的頁(yè)面。第四章 詳細(xì)設(shè)計(jì)4.1數(shù)據(jù)庫(kù)的選擇本系統(tǒng)使用的數(shù)據(jù)庫(kù)是關(guān)系型數(shù)據(jù)庫(kù)MySQL。MySQLMySQAB公司。n20081月16MySQLAB2009年,Oracle了SUN。當(dāng)時(shí),沒(méi)有任何人對(duì)MySQL的前途抱樂(lè)觀的態(tài)度。但是目前,MySQL應(yīng)用在Internet上的中小型網(wǎng)站中。由于其速度快、體積小、總體擁有成本低,尤其SQLSQL作為網(wǎng)站數(shù)據(jù)庫(kù)。4.2 數(shù)據(jù)庫(kù)表的描述本系統(tǒng)設(shè)計(jì)的所有數(shù)據(jù)表必須滿足三范式要求,即:1。表中的每一列都是不可再分割的原子值。3。表中不存在傳遞函數(shù)依賴,即非主屬性值不能函數(shù)依賴于非主屬性值.4。2。1 用戶信息表(Cust)10個(gè)字段來(lái)儲(chǔ)存信息.其中ID和是外鍵,分別對(duì)應(yīng)于動(dòng)態(tài)表的動(dòng)態(tài)IDID和好友表的好友編號(hào),具體如下表.har表4-1har標(biāo)識(shí)符數(shù)據(jù)類型長(zhǎng)度非空描述主鍵外鍵 說(shuō)明cidvarchar10Y用戶編號(hào)Y自增cnamevarchar20Y用戶姓名cpwdvarchar20Y用戶密碼csexvarchar4N用戶性別cageint11N用戶年齡ctelint10N用戶聯(lián)系方式caddressvarchar40N用戶地址didvarchar10Y動(dòng)態(tài)ID* 與動(dòng)態(tài)表外鍵關(guān)聯(lián)lidvarchar10Y留言IDY 與留言表外鍵關(guān)聯(lián)hid?varc10Y好友編號(hào)Y與好友表外鍵關(guān)聯(lián)4.2.2動(dòng)態(tài)信息表(Dongtai)44—2。說(shuō)明自增與用戶表外鍵關(guān)聯(lián)表4-說(shuō)明自增與用戶表外鍵關(guān)聯(lián)標(biāo)識(shí)符數(shù)據(jù)類型長(zhǎng)度非空描述主鍵外鍵didvarchar10Y動(dòng)態(tài)IDYddatedate20Y時(shí)間dcontentvarchar200Y內(nèi)容cidvarchar10Y用戶編號(hào)Y4.2.3留言信息表(Liuyan)該表主要保存用戶添加的留言信息,主要包括留言信息的ID、添加留言信息的時(shí)間以及留言信息的內(nèi)容。在此表中定義了以下4個(gè)屬性來(lái)存儲(chǔ)相關(guān)信息.具體如表4—3。說(shuō)明自增與用戶表外鍵關(guān)聯(lián)表4說(shuō)明自增與用戶表外鍵關(guān)聯(lián)標(biāo)識(shí)符數(shù)據(jù)類型長(zhǎng)度非空描述主鍵外鍵lidvarchar10Y留言IDYldatedate20Y時(shí)間lcontentvarchar200Y內(nèi)容cidvarchar10Y用戶編號(hào)Y2.4 好友信息表(Haoyou)該表主要用來(lái)保存好友信息,主要包括.在此表中定義了5個(gè)屬性來(lái)存儲(chǔ)相關(guān)的信息ID-4.說(shuō)明自增與用戶表外鍵關(guān)聯(lián)表說(shuō)明自增與用戶表外鍵關(guān)聯(lián)標(biāo)識(shí)符數(shù)據(jù)類型長(zhǎng)度非空描述主鍵外鍵hidvarchar10Y好友編號(hào)Yxcidvarchar10Y好友x的IDycidvarchar10Y好友y的IDxcnamevarchar20Y好友x姓名ycnamevarchar20Y好友y姓名cidvarchar10Y用戶編號(hào)Y4。3系統(tǒng)開(kāi)發(fā)環(huán)境介紹操作系統(tǒng):WINDOWS XP運(yùn)行工具:IE6。0開(kāi)發(fā)工具:Eclipse+ MyEclipse6。數(shù)據(jù)庫(kù):MySQL服務(wù)器: Tomcat6.0第五章 系統(tǒng)實(shí)現(xiàn)本系統(tǒng)功能主要分為系統(tǒng)登錄和注冊(cè),我的微博,個(gè)人中心,最新動(dòng)態(tài),留言板和幫助中心六個(gè)部分,在此只介紹系統(tǒng)登錄和注冊(cè),個(gè)人中心和留言板部分,因?yàn)槲业奈⒉┩瑐€(gè)人中心類似,最新動(dòng)態(tài)和留言板類似,所以在這里只詳細(xì)介紹系統(tǒng)登錄和注冊(cè),個(gè)人中心和留言板部分.并會(huì)附上相應(yīng)截圖。個(gè)人中心模塊中主要分為修改個(gè)人信息對(duì)好友進(jìn)行操作所以這里主要介紹修改個(gè)人信息,添加留言信息,查詢留言信息和對(duì)好友進(jìn)行刪除功能。5。15。1.1功能描述微博系統(tǒng)的登錄功能的設(shè)計(jì)采用用戶的編號(hào)和密碼兩條信息對(duì)用戶的合法性進(jìn)行驗(yàn)證,或“密碼錯(cuò)誤”等。注冊(cè)功能。首先用戶會(huì)進(jìn)入到登錄頁(yè)面,但是沒(méi)有賬號(hào)所以可以點(diǎn)擊注冊(cè)按鈕,此時(shí)瀏覽器會(huì)跳轉(zhuǎn)到注冊(cè)頁(yè)面,用戶可以填寫自己的信息,后臺(tái)會(huì)從頁(yè)面獲取到用戶所填寫的信息進(jìn)行驗(yàn)證是否合法,如果不正確就需要用戶重新填寫不合法的信息,如果正確就可以注冊(cè),注冊(cè)成功就會(huì)顯示成功信息,注冊(cè)失敗也會(huì)提示相應(yīng)的錯(cuò)誤信息。5。1。2功能流程圖圖5-1系統(tǒng)登錄流程圖圖5-2注冊(cè)流程圖5.1.3系統(tǒng)界面圖5-3系統(tǒng)登錄界面5.1.4 實(shí)現(xiàn)代碼publicStringlogin({try{request.removeAttribute(”login”);? Stringcid =rquest.getPrmeter("cid;? ?Stringcpwd=request.getParameter(”cpwd");? if (!””.equals(cid)&&!""。equals(cpwd)){??? ActionContext ac=ActionContext.getContext();? Map<ting,Object>session=.eCustcust=icsrvice。finByI(cd;??if (cust=null&cust。getCpwd().equals(cpwd)){???????

sssion.put(ci, ust;HttpSessionhs=reques。gtSesson(;?hs。setAttribute("login",cust);?? ?}else{? ?this.addActionError("用戶名或密碼錯(cuò)誤? ? return"index”;? }?}else{?? ?return "index";? }? }catch(Exceptione){。areturn"index”;? }??return "call";?}5.2添加留言信息功能描述添加留言信息功能,首先,用戶會(huì)進(jìn)入到添加留言信息頁(yè)面,用戶填寫留言信息點(diǎn)擊“提交留言”按鈕后,檢查留言信息是否為空,如果出現(xiàn)錯(cuò)誤則提示相應(yīng)的錯(cuò)誤信息,重應(yīng)的錯(cuò)誤信息。添加之后信息則會(huì)按照添加時(shí)間顯示在所有留言信息中,如圖5—5—6紅色框中所示.功能流程圖圖5—4添加留言信息流程圖。3系統(tǒng)界面圖5—5添加留言信息界面圖5-6添加留言信息之后返回的界面5。2.4 實(shí)現(xiàn)代碼public String insertLiuyan(){??try{?HttpSession session =request。getSession();Custcust= Cust)session.gtAttribut(ogin;?Liuyanly =newLiuyan();? ?ly.setLcontent(request。getParameter("lcontent"));?ly。setCid(cust。getCid());? l。setLat(GetDat。getTim(;??ilservice。saveLiuyan(ly);}catch (Exceptione){.pintSakTrae;? }?return selectAllLiuyan();?}5.3 5.3.1刪除好友的功能,用戶選中要?jiǎng)h除的好友點(diǎn)擊刪除按鈕之后,系統(tǒng)就把將這條好友信息從數(shù)據(jù)庫(kù)中的好友表中刪除,刪除成功則提示刪除成功,失敗則顯示相應(yīng)的錯(cuò)誤信息。3。2圖5-7刪除好友信息流程圖。3實(shí)現(xiàn)代碼publicStringdeleteByHids(){?try {? String[hids=request。getParameterValues("hd”);???ihservice.deleteByCids(hids);?}catch (Exception e) {? epritStackTace(;}?returnselectAllHaoyou();}5。4修改個(gè)人信息5.4.1功能描述修改個(gè)人信息功能。用戶先讀取到個(gè)人信息,然后點(diǎn)擊修改按鈕瀏覽器會(huì)跳轉(zhuǎn)到修改界面,此時(shí)用戶修改想要修改的內(nèi)容,用戶確認(rèn)無(wú)誤后點(diǎn)擊確認(rèn)修改按鈕后,驗(yàn)證輸入信息的合法性,驗(yàn)證失敗則提示錯(cuò)誤信息并要求用戶重新填寫個(gè)人信息,驗(yàn)證成功則將更新后的信息存入到數(shù)據(jù)庫(kù)中,存儲(chǔ)成功則顯示修改成功,失敗則顯示相應(yīng)的錯(cuò)誤信息。5。4.2功能流程圖圖5—8修改員工信息流程圖5.4.3 實(shí)現(xiàn)代碼publicString updateCust(){??try{ttpSession sesion= request。getession;? Custcust=(Cust)session.getAttribute("login");??cust.setCid(cust.getCid();?cust.setCname(request。getParameter("cname"));? custsetCage(IntegerparseInt(request.getParameter(”cage”));???cust.setCsex(request.getParameter(”csex");?cust.setCtel(Integer.parseInt(request.getParameter("ctel"));? cust.setCaddress(request.getParameter(”caddress");icservice。updateCust(cust);?}catch(NumberFormatExceptione){?? e。printStackTrace();}return"allxinxi";?}5。5查詢留言信息5。5。1 功能描述查詢留言信息功能首先管理員輸入要查詢員工的員工編碼如果管理員沒(méi)有輸任何字符就點(diǎn)擊了查詢或者數(shù)據(jù)庫(kù)中沒(méi)有與之相匹配的結(jié)果則顯示相應(yīng)的提示信息數(shù)庫(kù)中如果有與管理員輸入的員工編碼相對(duì)應(yīng)的員工信息,則顯示這條員工信息。5.5.2 功能流程圖圖5-9查詢留言信息流程圖5.5。3實(shí)現(xiàn)代碼publicStringfenye(){?intpage= Integer.parseInt(request.getParameter("next”));??try{? ?List list=ilservice。selectBypage(page,5);?inttotalpage= Integer。parseInt(request.getParameter(”tpage"));? reques。stAttribute(lilist;??request.setAttribute(”total”,totalpage);???request。setAttribute(”cur”,page);?}cat(yī)ch(NumberFormatException e) {? 。pintStckTace;? }?return"liuyan”;?}5.6其他功能幫助中心模塊。在幫助中心模塊中主要針對(duì)一些常見(jiàn)的問(wèn)題進(jìn)行解答。圖5—10幫助中心總界面圖5—11幫助中心解答界面第六章 系統(tǒng)測(cè)試及維護(hù)6.1 系統(tǒng)測(cè)試測(cè)試的目標(biāo)1.為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程,我們稱為測(cè)試,其目的是為了讓用戶有一個(gè)更好的體驗(yàn)。好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)且發(fā)現(xiàn)更多的錯(cuò)誤的測(cè)試方案。成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試.測(cè)試的原則所有的測(cè)試的原則都是建立在用戶需求

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論