Nxjnic基于JEE框架的個人博客系統(tǒng)項目畢業(yè)設計方案論文_第1頁
Nxjnic基于JEE框架的個人博客系統(tǒng)項目畢業(yè)設計方案論文_第2頁
Nxjnic基于JEE框架的個人博客系統(tǒng)項目畢業(yè)設計方案論文_第3頁
Nxjnic基于JEE框架的個人博客系統(tǒng)項目畢業(yè)設計方案論文_第4頁
Nxjnic基于JEE框架的個人博客系統(tǒng)項目畢業(yè)設計方案論文_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

PAGE2生命是永恒不斷的制造,由于在它內(nèi)部蘊含著過剩的精力,它不斷流溢,越出時間和空間的界限,它不停地追求,以形形色色的自我表現(xiàn)的形式表現(xiàn)出來。--泰戈爾緒論選題背景這幾年,很多新名詞涌入我們的視野:博客、圈子、播客、WAP等。這些都預示著我們進入了一個新的互聯(lián)網(wǎng)階段web2.0,它是相對web1。0的新的一類互聯(lián)網(wǎng)應用的總稱,是一次從核心內(nèi)容到外部應用的革命[10]。這個階段進展飛快,互聯(lián)網(wǎng)應用趨于多樣化,其中變化最大的是由web1.0網(wǎng)站制造內(nèi)容的時代變?yōu)橛捎脩糁圃靸?nèi)容的web2.0時代.?在web2.0應用中,博客(Blog)是web2。0核心應用中最典型、最流行的代表之一,也是web2.0技術應用的最直觀的表現(xiàn),是web2。0精神和理念的簡略體現(xiàn)。問題的提出Blog記載了日常發(fā)生的事情和自己的愛好愛好,把自己的思想和知識和他人共享、溝通,同時又通過“六度空間”結(jié)識了更多志趣相投的伴侶;而越來越多專業(yè)知識的Blog的消滅,讓我們看到了Blog更多所蘊涵的巨大的信息價值:不同的Blog選擇不同的內(nèi)容,收集和整理成為很多人關注的專業(yè)Blog—-目前越來越多的人獵取信息的來源是一些固定的Blog。隨著博客人數(shù)的增加,Blog作為一種新的生活方式、新的工作方式、新的學習方式已經(jīng)被越來越多的人所接受,并且在轉(zhuǎn)變傳統(tǒng)的網(wǎng)絡和社會結(jié)構:網(wǎng)絡信息不再是虛假不行驗證的,溝通和溝通更有明確的選擇和方向性,單一的思想和群體的才智結(jié)合變的更加有效,個人出版變成人人都可以實現(xiàn)的幻想——Blog正在影響和轉(zhuǎn)變著我們的生活.系統(tǒng)的開發(fā)目標管理員通過前臺頁面進入后臺管理模塊后,可對注冊的博客用戶進行維護,包括對注冊用戶的添加、查找、修改和刪除。管理員進入登錄后,可對帳戶進行管理,包括添加管理員帳戶、修改管理員帳戶、刪除管理員帳戶和對帳戶進行權限設置.博客用戶通過前臺登錄后,可對自己的博客空間進行管理,包括發(fā)布自己的網(wǎng)絡日志、保藏個人圖片、和相關人員進行溝通和溝通以及刪除訪問者發(fā)表的評論等。因此,在簡略設計實現(xiàn)該博客網(wǎng)站時,主要考慮了主流博客網(wǎng)站的幾個主要功能:(1)博客的注冊、登錄驗證功能(2)網(wǎng)絡用戶通過關鍵字搜尋博文功能(3)最熱門博客頁面推舉掃瞄(4)文章簡略內(nèi)容及相關評論顯示(5)博客頁面訪問量統(tǒng)計(6)博客個人文章管理維護功能(7)博客個人文章分類管理維護功能(8)博客個人友情鏈接維護功能(9)博客個人基本信息管理維護功能(10)博客圖片上傳及個人相冊管理(11)網(wǎng)絡用戶寫留言,博主查看留言。系統(tǒng)設計系統(tǒng)分析在整個blog進行開發(fā)之前,要確定出整個項目的整體架構,包括系統(tǒng)的選型、運行環(huán)境的確定及系統(tǒng)結(jié)構設計.下面對這進行簡略介紹。在進行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進行系統(tǒng)的選型,即依據(jù)系統(tǒng)功能的實際需求,選擇合適的開發(fā)工具及軟件架構.blog對系統(tǒng)的牢靠性、穩(wěn)定性有比較高的要求.本系統(tǒng)設計時,比較主流的B/S設計有基于JSP、ASP、PHP、CGI及J2EE等模式。相比較而言PHP的功能相對簡潔,不適合做大程序;而CGI效率相對較低,所以也不考慮。由于J2EE的開源的框架中供應了MVC模式實現(xiàn)框架Struts、對象關系模型中的Hibernate的框架及擁有事務管理和依靠注入的Spring.利用現(xiàn)存框架可以更快開發(fā)系統(tǒng)。所以選擇Java技術作為blog的開發(fā)工具.為了增加系統(tǒng)的吞吐量,提高并發(fā)處理客戶懇求數(shù)量,系統(tǒng)采納了IBM服務器作為主機。在數(shù)據(jù)庫處理方面,不需要在數(shù)據(jù)層借助存儲過程及數(shù)據(jù)庫服務器端函數(shù)封裝過多的業(yè)務規(guī)律,因此數(shù)據(jù)庫系統(tǒng)采納相對精致的MySQL[6].該在線博客系統(tǒng)服務器端如果需要布置到其他主機上,則該主機必備條件如下:1. 服務器端操作系統(tǒng):獨立于操作系統(tǒng)的跨平臺系統(tǒng),客戶端MicroSoftWindows2000及以上;2.?數(shù)據(jù)庫:MySQL5.0。27版本;3.?Web服務器:Tomcat5。5及以上版本,協(xié)作MVC設計模式及Hibernate開發(fā)架構;4.?客戶端運行環(huán)境:能運行IE5以上或Netscape5以上掃瞄器的操作系統(tǒng),協(xié)作使用Ajax技術;5.?客戶端運行工具:目前的系統(tǒng)采納掃瞄器作為客戶端,為了支持Ajax開發(fā)框架,應該選擇使用IE5以上版本掃瞄器。本網(wǎng)站以xp為Web平臺,JSP+Ajax+Servlet+JavaBean+Hibernate為網(wǎng)站實現(xiàn)技術,建立基于MySQL數(shù)據(jù)庫系統(tǒng)的核心動態(tài)網(wǎng)頁,實現(xiàn)博客網(wǎng)站前臺及博客個人維護管理等功能模塊。1、系統(tǒng)處理的精準性和準時性:系統(tǒng)處理的精準性和準時性是系統(tǒng)的必要性能。在系統(tǒng)設計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應時間能夠滿意信息處理的需求.2、系統(tǒng)的開放性和系統(tǒng)的可擴充性:系統(tǒng)在開發(fā)過程中,應該充分考慮以后的可擴充性。例如數(shù)據(jù)表中用戶選擇字段方式的轉(zhuǎn)變,用戶查詢的需求也會不斷的更新和完善。全部這些,都要求系統(tǒng)供應足夠的手段進行功能的調(diào)整和擴充。而要實現(xiàn)這一點,應通過系統(tǒng)的開放性來完成,既系統(tǒng)應是一個開放系統(tǒng),只要符合肯定的規(guī)范,可以簡潔的加入和削減系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補、替換完成系統(tǒng)的升級和更新?lián)Q代。3、系統(tǒng)的易用性和易維護性:要實現(xiàn)這一點,就要求系統(tǒng)應該盡量使用用戶熟識的術語和中文信息的界面;針對用戶可能消滅的使用問題,要供應足夠的在線幫助,縮短用戶對系統(tǒng)熟識的過程。4、系統(tǒng)的數(shù)據(jù)要求:1、數(shù)據(jù)錄入和處理的精準性和實時性。2、數(shù)據(jù)的全都性與完整性。3、數(shù)據(jù)的共享與獨立性。系統(tǒng)的可行性分析技術可行性技術上的可行性分析要考慮將來要采納的硬件和軟件技術能否滿意用戶(這里是服務器,網(wǎng)速)提出的要求(如計算機的容量、速度等)。此外,還要考慮開發(fā)人員的水平,學習了兩年的jsp開發(fā),對于這個系統(tǒng)的編寫,我想完整的之需要兩個月就可以寫出程序,再花上幾天的調(diào)試,計劃兩個月左右就可以完成投入使用了。我們掌握了數(shù)據(jù)庫及其應用技術、數(shù)據(jù)庫原理、計算機網(wǎng)絡技術等課程,對數(shù)據(jù)庫的設計、應用、維護及局域網(wǎng)的組成有了深刻的熟識與肯定的動手實踐能力,考取了信息處理、程序設計、數(shù)據(jù)庫技術等國家IT認證。從肯定程度上具備了開發(fā)一個小型系統(tǒng)的能力.再有就!經(jīng)濟可行性主要從對項目的經(jīng)濟上進行分析評價,一方面是支出的費用,包括設備購置費、管理和維護費用、人員工資和培訓費等,另一個是取得的收益。這是個小型的系統(tǒng),從投入的人力,財力與物力來講是格外小的,發(fā)布出去之需要注冊域名就可以了,從節(jié)省人力方面,可以讓管理人員從繁與簡潔的工作中解脫出來,做更多的工作.管理可行性有IP地址、用戶名與密碼等,可以下載一個FTP上傳工具(cure)上傳更新后的內(nèi)容.可以在HYPERLINK"http://www。skycn.com/soft/683。html"http://www.skycn.com/soft/683。html下載到.下載以后,通過"站點管理”——〉"新建站點”。輸入IP,用戶名,密碼.然后連接即可.當然也可用FTP工具.直接在IE掃瞄器地址欄輸入ftp://HYPERLINK"http://www。"www.域名/然后輸入用戶名和密碼.同樣可以上傳.隨時更新文件!開發(fā)環(huán)境的說明與安裝開發(fā)語言的選擇JAVA簡介Java是Sun公司推出的新的一代面對對象程序設計語言,格外適合于Internet應用程序開發(fā).Java的產(chǎn)生與流行是當今Internet進展的客觀要求,Java是一門各方面性能都很好的編程語言,它的基本特點是簡潔、面對對象、分布式、解釋的、健壯的、平安的、結(jié)構中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的,格外適合在Internet環(huán)境上開發(fā)的應用系統(tǒng)。Web應用程序開發(fā)環(huán)境—JSP技術JSP的全稱是JavaServerPages,它是SUN推出的一種動態(tài)網(wǎng)頁技術標準。它在傳統(tǒng)的靜態(tài)頁面文件(*.html,*。htm)中加入JAVA程序片段和JSP標記,就構成了JSP頁面。JSP具有以下的優(yōu)點:1、將業(yè)務層與表示層分離:使用JSP技術,網(wǎng)絡開發(fā)人員可充分使用HTML來設計頁面顯示部分(如字體顏色等),并使用JSP指令或者JAVA程序片段來生成網(wǎng)頁上的動態(tài)內(nèi)容;2、能夠跨平臺:JSP支持絕大部分平臺,包括現(xiàn)在格外流行的LINUX系統(tǒng),應用格外廣泛的Apache服務器也供應了支持JSP的服務;3、組件的開發(fā)和使用很便利:如ASP的組件是由C++,VB等語言開發(fā)的,并需要注冊才能使用;而JSP的組件是用Java開發(fā)的,可以直接使用;4、一次編寫,處處運行:作為JAVA開發(fā)平臺的一部分,JSP具有JAVA的全部優(yōu)點,包括Writeonce,Runeverywhere.數(shù)據(jù)庫的選擇Web應用程序開發(fā)環(huán)境—SQLserver數(shù)據(jù)庫SQLServer是由Microsoft開發(fā)和推廣的關系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。SQLServer2000是Microsoft公司于2000年推出的最新版本.SQLServer特點:1.真正的客戶機/服務器體系結(jié)構。2.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡潔。3.豐富的編程接口工具,為用戶進行程序設計供應了更大的選擇余地.4.SQLServer與WindowsNT完全集成,利用了NT的很多功能,如發(fā)送和接受消息,管理登錄平安性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成.5.具有很好的伸縮性,可跨越從運行Windows95/98的膝上型電腦到運行Windows2000的大型多處理器等多種平臺使用。6.對Web技術的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。7。SQLServer供應數(shù)據(jù)倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。SQLServer2000與以前版本相比較,又具有以下新特性:1。支持XML(ExtensiveMarkupLanguage,擴展標記語言)2。強大的基于Web的分析3.支持OLEDB和多種查詢4.支持分布式的分區(qū)視圖安裝、運行SQLServer2000的硬件需求(1)計算機Inter及其兼容計算機,Pentium166Mz或者更高處理器或DECAlpha和其兼容系統(tǒng).(2)內(nèi)存(RAM)企業(yè)版最少64MB內(nèi)存,其他版本最少需要32MB內(nèi)存,建議使用更多的內(nèi)存。(3)硬盤空間完全安裝(Full)需要180MB的空間,典型安裝(Typical)需要170MB的空間,最小安裝(Minimum)需要65MB的空間。開發(fā)工具的選擇MyEclipse,Deamweare,選擇SQLserver作為后臺的數(shù)據(jù)庫,選擇JAVA、JSP、JavaScript、Html作為應用程序開發(fā)工具,運用Tomcat服務器技術,整個系統(tǒng)完全基于B/S(Browser/Server)模式進行設計。1、Tomcat應用服務器目前支持JSP的應用服務器是較多的,Tomcat(yī)是其中較為流行的一個Web服務器,被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的Java產(chǎn)品,可見其在業(yè)界的地位。Tomcat是一個免費的開源的Serlvet容器,在Tomcat中,應用程序的部署很簡潔,你只需將你的WAR放到Tomcat的webapp名目下,Tomcat(yī)會自動檢測到這個文件,并將其解壓。你在掃瞄器中訪問這個應用的Jsp時,通常第一次會很慢,由于Tomcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會很快。Tomcat也具有傳統(tǒng)的Web服務器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。Tomcat是一個很好的工具,不僅僅由于其免費,功能強大,更由于其開放性,越來越受到人們的重視.2、B/S開發(fā)模式伴隨著Internet的飛快進展,計算機技術正在由基于C/S(client/Server)模式的應用系統(tǒng)轉(zhuǎn)變?yōu)榛冢?S模式的應用系統(tǒng)。過去,網(wǎng)絡軟件的開發(fā)都采納C/S(client)模式,在這種模式下,主要的業(yè)務規(guī)律都集中于客戶端程序,因此,必定導致以下問題:系統(tǒng)安裝、調(diào)試、維護和升級困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時,必須對每一個客戶端分別進行配置,同樣,在軟件升級時也要對客戶端分別處理。B/S模式帶來了巨大的好處:開發(fā)成本及維護成本降低。由于B/S架構管理軟件只安裝在服務器端(Server)上,即應用程序在部署、升級、維護時,只需要在服務器端進行配置就可以了,網(wǎng)絡管理人員只需要管理服務器就行了,用戶界面主要事務規(guī)律在服務器(Server)端完全通過WWW掃瞄器實現(xiàn),極少部分事務規(guī)律在前端(Browser)實現(xiàn),全部的客戶端只有掃瞄器,網(wǎng)絡管理人員只需要做硬件維護。良好的平安性能,防火墻技術可以保證后臺數(shù)據(jù)庫的平安性。全部的配置工作都集中在服務器端且全部客戶端懇求都是通過DBMS來訪問數(shù)據(jù)庫,從而大大削減了數(shù)據(jù)直接暴露的風險。系統(tǒng)設計4。1開發(fā)框架技術介紹對于框架技術,我們采納Struts+ajax的整合!Struts是應用比較廣泛的一種表現(xiàn)層框架1、Struts是一個為開發(fā)基于模型(Model)—視圖(View)-掌握器(Controller)(MVC)模式的應用架構的開源框架,是利用Servlet,JSP和customtaglibrary構建Web應用的一項格外有用的技術。由于Struts能充分滿意應用開發(fā)的需求,簡潔易用,靈敏飛快。它使用服務層框架可以將JavaBeans從Jsp/Servlet中分離出來,而使用表現(xiàn)層框架則可以將Jsp中剩余的JavaBeans完全分離,這部分JavaBeans主要負責顯示相關信息,一般是通過標簽庫(Taglib)實現(xiàn),不同框架有不同自己的標簽庫,Struts是應用比較廣泛的一種表現(xiàn)層框架。2、Ajax我們主要應用就是xmlhttprequest,回調(diào)函數(shù)實現(xiàn)局部刷新達道數(shù)據(jù)更新!4.2需求分析Blog網(wǎng)站主要是實現(xiàn)注冊用戶登錄、管理相關信息、博文及相關評論、查看留言、友情鏈接、及圖片的上傳和圖像的播放而為上網(wǎng)用戶供應按博文主題搜尋,查看注冊用戶的博文及提出相關評論,并為注冊用戶寫留言,巡游注冊用戶的相冊、注冊等功能的系統(tǒng)。下面就以兩種不同的用戶來分析博客網(wǎng)站的需求.4.2.1注冊博友首先必須在博客首頁中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關操作,不然就是一般用戶只能查看一些信息,而不能發(fā)表博文.可以在管理頁面上添加博文的分類,可以上傳圖片和巡游自己的相冊,在上傳過程中可以將一張圖片定義為自己的簽名,在個人管理頁面中注冊用戶還可以修改自己的個人信息。博文管理,友情鏈接管理及博文分類管理,用例圖2。圖2博客管理頁面的用例圖在博客主界面中發(fā)表博文時可以選擇博文類型,這樣可以更好管理自己的博文.并查看和刪除網(wǎng)友對自己的博文的一些評論、查看和刪除網(wǎng)友留下的一些留言,供應與其他網(wǎng)友溝通的空間。更好溝通,在信息時代人們通過個人空間溝通也用來但不能在自己的博客主頁面中提交評論和留言..這樣在本系統(tǒng)中就可以為博友供應更多的個人顏色.在管理頁面中添加和刪除友情連接。這樣博友可以在自己空間中快速定位自己的關心的網(wǎng)站。這樣還可以讓網(wǎng)友看到自己的一些信息.友情鏈接及網(wǎng)頁訪問量統(tǒng)計顯示:在博客的個人頁面中還供應了推舉給一般網(wǎng)絡用戶的相關友情鏈接,此外,對個人頁面的訪問量也在隨時進行統(tǒng)計,并在個人頁面中進行直觀的顯示。博客主頁面的用例圖如圖3所示:圖3博客主頁面的用例圖4.2.2一般用戶在博客注冊頁面注冊成為博客的注冊用戶,才可以擁有自己獨立的空間,進入某一博客頁面查看相關文章信息時,可以隨時對自己所感愛好的文章發(fā)表評論,同時也可以查看到其他人針對該博文的評論。一般用戶在閱讀博文時可以在最后留下自己的一些評論。他也可以留下更多的信息。這樣他可以寫留言.這樣他留下的信息就更快地被博友所看到。一般用戶進入博友的用例圖如圖4所示:圖4上網(wǎng)博友在博客主頁面的用例圖一般網(wǎng)友可以搜尋自己關心的一些數(shù)據(jù)。并且在搜尋結(jié)果中供應在結(jié)果范圍內(nèi)再次搜尋。這樣就可以將范圍縮小。首頁向注冊用戶供應登陸模塊,注冊用戶在博客網(wǎng)站首頁跟上網(wǎng)網(wǎng)友一樣可以查看博客和博文推舉.上網(wǎng)網(wǎng)友可以注冊成為博客用戶,擁有自己獨立的空間。這一模塊的用例圖如圖5所示:圖5博客首頁的用例圖4.3功能模塊介紹4。3.1博客注冊登錄管理模塊博客注冊登錄管理模塊用于建立博客網(wǎng)站固定的客戶群體,通過記錄對應的博客檔案,實現(xiàn)對博客信息的后臺維護及管理,同時也便于通過博客檔案庫將網(wǎng)站最新動態(tài)及相關企業(yè)的信息便利地傳達給每一位潛在的客戶。該功能模塊實現(xiàn)了以下幾個子功能。(1)新博客在線注冊。(2)博客登錄管理。(3)跳轉(zhuǎn)到博客主頁。只有進行登錄并通過身份驗證的用戶,才可以在個人博客頁面發(fā)表日志,并借助個人設置實現(xiàn)對個人博客相關信息的管理維護。對于沒有經(jīng)過身份驗證的網(wǎng)絡用戶不允許在博客頁面中發(fā)表日志,更不允許對博客頁面信息進行管理維護.該模塊實現(xiàn)新博客的注冊及登錄驗證功能。其中,注冊新博客時會對用戶輸入的注冊信息進行有效性驗證,包括基本數(shù)據(jù)格式的有效性以及規(guī)律有效性,例如,用戶名被占用時將準時給出提示。注冊成功的博客登錄時,會隨時依據(jù)博客輸入的登錄信息進行提示,如用戶名錯誤或者密碼錯誤。4.3.2博客及文章檢索查詢模塊博客及文章檢索查詢模塊為網(wǎng)絡用戶供應便捷的搜尋,以及日志閱讀掃瞄等功能,同時對日志的評論信息、博客推舉也能夠準時反饋給網(wǎng)絡用戶。該功能模塊實現(xiàn)了以下幾個子功能。(1)熱門博客頁面推舉。(2)最新博客日志推舉。(3)日志信息關鍵字搜尋。該模塊能夠在網(wǎng)頁中隨時供應在線的最新日志信息。該信息需要定期更新,網(wǎng)絡用戶可以隨時獲得最新日志以及最熱門的博客推舉。在客戶選擇了某個博客或者某個感愛好的日志后,可以便利地跳轉(zhuǎn)到對應博客頁面進行日志的閱讀,并和博客進行溝通互動。為了使網(wǎng)絡用戶盡快定位到所需的博客資料及日志信息,本模塊供應了搜尋功能,用戶可以對所關注的日志信息依據(jù)標題進行關鍵字搜尋,以避開用戶掃瞄多個頁面來尋找所需的日志信息。4.3.3博客頁面顯示模塊當網(wǎng)絡用戶進入某個人博客主頁后,在該頁面中將供應博客日志列表的顯示,同時為了便利用戶掃瞄,在該模塊中供應依據(jù)分類名進行日志列表的顯示,也供應日志評論的掃瞄,此外還允許用戶在博客頁面中發(fā)表評論及留言.該功能模塊實現(xiàn)了如下幾個子功能.(1)用戶可以分頁查看對應的日志內(nèi)容及評論信息。(2)用戶可以針對日志內(nèi)容發(fā)表評論.(3)用戶可以針對博客進行留言。(4)用戶可以分類查看日志內(nèi)容。在該模塊中還供應了博客頁面統(tǒng)計信息,日志、評論及留言信息分頁顯示等便利用戶的顯示效果。4.3。4博客個人維護管理模塊博客個人維護管理模塊用于實現(xiàn)用戶對博客個人主頁及相關信息的動態(tài)管理。該功能模塊實現(xiàn)了如下幾個子功能:(1)日志及日志分類管理。(2)評論及留言管理。(3)個人基本信息維護管理。借助該模塊,用戶可以隨時對個人博客主頁中的內(nèi)容進行增加或修改,包括日志分類信息的更新、評論及留言管理等功能,也允許用戶對博客的個人信息進行維護及其管理.4.4系統(tǒng)分析本系統(tǒng)采納嚴格的J2EE應用結(jié)構,主要有如下幾個分層.1。?表現(xiàn)層:由JSP頁面組成。2.?MVC層:使用Struts框架。3. 業(yè)務規(guī)律層:主要由SpringloC容器管理的業(yè)務規(guī)律組件組成。4。 DAO層:由7個DAO組件組成,實現(xiàn)類必須繼承Spring供應的HibernateDaoSupport。5.?Hibernate持久層:由7個PO組成,并在HibernateSession管理下,完成數(shù)據(jù)庫訪問。6.?數(shù)據(jù)庫服務層:使用MySQL數(shù)據(jù)庫存儲持久化數(shù)據(jù)。系統(tǒng)的簡略分層如圖5所示。圖6系統(tǒng)結(jié)構圖在圖6黑色大方框內(nèi)的MVC掌握層、Service層及DAO組件層的組件,都由SpringIOC容器負責生成,并管理組件的實例(實例必須是單身模式的,本系統(tǒng)中的bean基本上是單身的)。4.3.1系統(tǒng)架構說明本系統(tǒng)不僅嚴格按MVC模式設計,還按J2EE分層設計,將中間層嚴格分成業(yè)務規(guī)律層、DAO層及數(shù)據(jù)持久層等。MVC層的掌握器肯定禁止持久層訪問,甚至不參加業(yè)務規(guī)律的實現(xiàn).表現(xiàn)層采納傳統(tǒng)JSP技術。本系統(tǒng)采納的是典型的J2EE三層結(jié)構,分為表現(xiàn)層、中間層(業(yè)務規(guī)律層)和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)章、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。Jsp廣泛的應用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術打下了堅實的基礎.中間層采納的是流行的Spring+Hibernate,為了將掌握層與業(yè)務規(guī)律層分離,又細分為以下幾種.Web層,就是MVC模式里面的C,負責規(guī)律層和表現(xiàn)層的交互。調(diào)用業(yè)務規(guī)律層,并將業(yè)務數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC采納Struts框架。Service層(就是業(yè)務規(guī)律層),負責實現(xiàn)業(yè)務規(guī)律。業(yè)務規(guī)律層以DAO層為基礎,通過對DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務規(guī)律。DAO層,負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。PO,持久化對象.通過實體關系映射工具將關系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很便利地實現(xiàn)以面對對象方式操作數(shù)據(jù)庫,該系統(tǒng)采納Hibernate作為ORM框架。Spring的作用貫穿了整個中間層,將Web層、Service層、DAO層及PO無縫整合,其數(shù)據(jù)服務層用來存放數(shù)據(jù)。通過使用Hibernat(yī)e持久層,可以避開使用傳統(tǒng)的JDBC操作數(shù)據(jù)庫,對JDBC近一步包裝,從而更好地使用面對對象的方式來操作數(shù)據(jù)庫。保證了整個軟件開發(fā)過程以面對對象的方式進行,即面對對象分析、設計及編程,透過Hibernte對PO對象持久化操作,不管插入還是查詢都是通過PO.4.3。2實現(xiàn)DAO層DAO還有助于提升系統(tǒng)的可移植性。獨立的DAO層使得系統(tǒng)能在不同的數(shù)據(jù)庫之間輕易切換,底層的數(shù)據(jù)庫實現(xiàn)對于業(yè)務規(guī)律組件是透明的。數(shù)據(jù)庫移植時僅僅影響DAO層,不同數(shù)據(jù)庫的切換不會影響業(yè)務規(guī)律組件,因此提高了系統(tǒng)的可復用性。對于不同的持久層技術,Spring的DAO供應一個DAO模板,將通用的操作放在模板里完成,而對于特定的操作,則通過回調(diào)接口完成。Spring為Hibernate供應的DAO支持類是:HibernateDaoSupport。4.3.3DAO組件的定義DAO組件供應了各持久化對象的基本的CRUD操作。而在DAO接口里則對DAO組件包含的各種CRUD方法供應了聲明,但有一些IDE工具也可以生成基本的CRUD方法。使用DAO接口的緣由是:避開業(yè)務規(guī)律組件與特定的DAO組件藕合。由于DAO組件中的方法不是開頭就設計出來的,其中的很多方法可能會隨著業(yè)務規(guī)律的需求而增加,但以下幾個方法是通用的。?get:依據(jù)主鍵加載持久化實例。?saveorupdate:保存或更新持久化實例。?remove:刪除持久化實例。上面涉及了7個PO,這樣我們必須設計7個對應的PODao7個Dao必須繼承BaseDao這個BaseDao有對接口的一些基本的CURD操作。7個Dao如下.LinksDao,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。這7個Dao分別封裝對自己的持久化對象的一些操作。4.3.4部署DAO層HibernateDaoSupport類只需要一個SessionFactory屬性,即可完成數(shù)據(jù)庫訪問。SessionFactroy創(chuàng)建Session,而數(shù)據(jù)庫的CRUD操作都是有Session完成,并將查詢結(jié)果保存在一級緩存中,每次用戶提交一次會話,可能需要Session完成一些數(shù)據(jù)庫的操作而實際的數(shù)據(jù)庫訪問由模板類HibernateTemplate完成,該模板類供應了大量便捷的方法,簡化了數(shù)據(jù)庫的訪問。數(shù)據(jù)庫設計5.1定義(數(shù)據(jù)詞典)1、數(shù)據(jù)庫表名的定義使用:重點字_table;重點字可以是多個英文單詞的組合,從組合的其次單詞起首字母大寫,字段命名是能表達字段內(nèi)容的英文單詞的組合,組合方式同表名重點字相同。2、NN表示notnull不填表可為空。3、數(shù)據(jù)類型不使用固定數(shù)據(jù)庫的類型,標識大眾類型,如字符串、字符、數(shù)字等。這樣在更改數(shù)據(jù)庫時需求的數(shù)據(jù)是可移植的4、輸寫數(shù)據(jù)表在數(shù)據(jù)庫中的物理名稱,可用自己熟識的語言再定義表名稱,便利溝通。5、長度定義又數(shù)據(jù)類型決定:如字符串可選8000以下,數(shù)字可在50位之間,字符只允許一位。6、輸入方式表示數(shù)據(jù)的來源:生成表由程序或數(shù)據(jù)庫的索引自動生成,而不需人工錄入;輸入表示通過文本框等輸入的數(shù)據(jù);選擇表單選框、復選框、下拉列表等通過選擇輸入的數(shù)據(jù);自定獵取是為外碼的輸入設定的,它由程序自動獵取。5.2主要表結(jié)構如下表[blogs]日志數(shù)據(jù)表字段名類型說明blogidInt(10)日志的IDtitletext日志標題pubtimeInt(11)日志發(fā)表時間authoridInt(8)日志作者的UIDrepliesInt(8)日志的評論數(shù)tbsInt(8)日志的trackback數(shù)viewsInt(8)日志的查看次數(shù)categoryInt(3)日志所屬的分類的IDcontentmediumtext日志正文內(nèi)容propertyInt(1)日志的屬性0公開日志1鎖定日志2隱藏日志3一般草稿2.表[user]博友登陸信息表字段名類型說明useridInt(10)博友IDnichengText博友在博客里的稱呼usernametext登陸時的用戶名passwordtext登陸密碼3.表[register]用戶數(shù)據(jù)表字段名類型說明useridInt(8)登陸時需要用到的用戶名usernametext用戶昵稱userpwdInt(8)登陸密碼regtimeInt(11)注冊時間usergroupInt(2)所屬的用戶組IDemailtext用戶emailqqtextQq號msntext用戶msngendertext用戶性別主要功能的實現(xiàn)6。1登錄掌握:if(this.session().getAttribute(”rand")!=null){//檢驗隨機數(shù)是否為空if(this.checkCode.equals(this.session()。getAttribute("rand”).toString())){//比較隨機數(shù)?uservo=userbo.queryUserByINfo(uservo);//檢驗用戶信息并將信息返回 if(uservo!=null){//看用戶是否存在 ?this。setUserpurview(uservo.getPurviewId());//設置用戶權限?this.session().setAttribute("user",uservo);//將用戶信息放在session中?returnSUCCESS;//返回用戶主界面頁面?}else{returnERROR;返回到失敗頁面}}else{returnERROR;}}else{?returnERROR;}6.2Ajax讀?。魓t格式數(shù)據(jù)functionajax_function(var1,var2){?varxmlHttp=null;//創(chuàng)建xmlhttprequest?try?{?//Firefox,Opera8.0+,Safari對不同掃瞄器常見不同對象?xmlHttp=newXMLHttpRequest();?}?catch(e)

{?try

{

//InternetExplorer?xmlHttp=newActiveXObject('Msxml2.XMLHTTP');?}?catch(e)?{?try?{?xmlHttp=newActiveXObject(’Microsoft。XMLHTTP');?}?catch(e)?{

alert(’YourbrowserdoesnotsupportAJAX!');?returnfalse;?}?}

}?xmlHttp.onreadystat(yī)echange=function()?{?if(xmlHttp。readyState==4&&xmlHttp。status==200)

varsomeDiv=document。getElementById(’someDiv');?someDiv.innerHTML=xmlHttp。responseText;

}?}

xmlHttp.open('GET',’www/index.jsp?param1=’+var1+'?m2=’+var2,true);?xmlHttp.send(null);?}6.3系統(tǒng)架構與數(shù)據(jù)庫的連接由于我們開發(fā)時是利用MVC的設計模式,所以在此我們的數(shù)據(jù)庫連接是封存在M中的,即只要我們和M層連接上,就已經(jīng)連接上數(shù)據(jù)庫了。Hibernate使用數(shù)據(jù)庫和配置信息來為應用程序供應持久化服務(以及持久的對象)。我們只需在hibernate.cfg。xml中配置以下語句即可:<!DOCTYPEhibernate-configurationPUBLIC”-//Hibernate/Hibernat(yī)eConfigurat(yī)ionDTD3。0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3。0。dtd"><hibernate-configuration〉<session-factory〉<propertyname="connection。username">sa</property><propertyname="connection.url">jdbc:microsoft:sqlserver://localhost:1035;DatabaseName=webexamine〈/property〉<propertyname=”dialect”>org.hibernate.dialect.SQLServerDialect</property>〈propertyname="myeclipse。connection。profile">sqlserver2000</property><prope="connection.password"〉aaaaaaaa</property><propertyname="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>?〈propertyname="hibernate.dialect">org。hibernate.dialect.HSQLDialect〈/property>?〈propertyname="show_sql”>true〈/property>??<mappingresource=”/com/perdure/hibernate/info/InfoTable。hbm.xml"/>??<mappingresource="/com/perdure/hibernat(yī)e/user/UserTable.hbm.xml”/>?</session-factory>〈/hibernate-configuration〉其實我們在這里配置了一個數(shù)據(jù)連接,以保證系統(tǒng)的正常運行,我們需要使用proxool連接池,我們經(jīng)測試,分別用proxool、tomcatJNDI、Hibernate自帶的連接池進行配置之后分別執(zhí)行以上的10000條數(shù)據(jù)插入和讀取,結(jié)果顯示proxool的性能要優(yōu)于tomcat(yī)JNDI,而Hibernate自帶的就更不用提了,差很遠.依次為:39265毫秒/10000條、26013毫秒/10000條、50029毫秒/10000條.6。4數(shù)據(jù)的備份與還原我們依據(jù)Mysql數(shù)據(jù)庫供應的backup(備份)命令及restore(恢復)命令,進行數(shù)據(jù)庫的備份與還原,在連接數(shù)據(jù)庫后,我們在需要備份和還原的地方加入以下語句:backupdatabase<your

溫馨提示

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

評論

0/150

提交評論