版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.z緒論選題背景這幾年,許多新名詞涌入我們的視野:博客、圈子、播客、WAP等。這些都預(yù)示著我們進入了一個新的互聯(lián)網(wǎng)階段web2.0,它是相對web1.0的新的一類互聯(lián)網(wǎng)應(yīng)用的總稱,是一次從核心內(nèi)容到外部應(yīng)用的革命[10]。這個階段開展迅速,互聯(lián)網(wǎng)應(yīng)用趨于多樣化,其中變化最大的是由web1.0創(chuàng)造內(nèi)容的時代變?yōu)橛捎脩魟?chuàng)造內(nèi)容的web2.0時代。
在web2.0應(yīng)用中,博客(Blog)是web2.0核心應(yīng)用中最典型、最流行的代表之一,也是web2.0技術(shù)應(yīng)用的最直觀的表現(xiàn),是web2.0精神和理念的具體表達。問題的提出Blog記載了日常發(fā)生的事情和自己的興趣愛好,把自己的思想和知識和他人分享、交流,同時又通過“六度空間〞結(jié)識了更多志趣相投的朋友;而越來越多專業(yè)知識的Blog的出現(xiàn),讓我們看到了Blog更多所蘊涵的巨大的信息價值:不同的Blog選擇不同的內(nèi)容,收集和整理成為很多人關(guān)注的專業(yè)Blog——目前越來越多的人獲取信息的來源是一些固定的Blog。隨著博客人數(shù)的增加,Blog作為一種新的生活方式、新的工作方式、新的學(xué)習(xí)方式已經(jīng)被越來越多的人所承受,并且在改變傳統(tǒng)的網(wǎng)絡(luò)和社會構(gòu)造:網(wǎng)絡(luò)信息不再是虛假不可驗證的,交流和溝通更有明確的選擇和方向性,單一的思想和群體的智慧結(jié)合變的更加有效,個人出版變成人人都可以實現(xiàn)的夢想——Blog正在影響和改變著我們的生活。系統(tǒng)的開發(fā)目標管理員通過前臺頁面進入后臺管理模塊后,可對注冊的博客用戶進展維護,包括對注冊用戶的添加、查找、修改和刪除。管理員進入登錄后,可對**進展管理,包括添加管理員**、修改管理員**、刪除管理員**和對**進展權(quán)限設(shè)置。博客用戶通過前臺登錄后,可對自己的博客空間進展管理,包括發(fā)布自己的網(wǎng)絡(luò)日志、收藏個人圖片、和相關(guān)人員進展交流和溝通以及刪除者發(fā)表的評論等。因此,在具體設(shè)計實現(xiàn)該博客時,主要考慮了主流博客的幾個主要功能:(1)博客的注冊、登錄驗證功能(2)網(wǎng)絡(luò)用戶通過關(guān)鍵字搜索博文功能(3)最熱門博客頁面推薦瀏覽(4)文章詳細內(nèi)容及相關(guān)評論顯示(5)博客頁面量統(tǒng)計(6)博客個人文章管理維護功能(7)博客個人文章分類管理維護功能(8)博客個人友情維護功能(9)博客個人根本信息管理維護功能(10)博客圖片上傳及個人相冊管理(11)網(wǎng)絡(luò)用戶寫留言,博主查看留言。系統(tǒng)設(shè)計系統(tǒng)分析在整個blog進展開發(fā)之前,要確定出整個工程的整體架構(gòu),包括系統(tǒng)的選型、運行環(huán)境確實定及系統(tǒng)構(gòu)造設(shè)計。下面對這進展詳細介紹。在進展軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進展系統(tǒng)的選型,即根據(jù)系統(tǒng)功能的實際需求,選擇適宜的開發(fā)工具及軟件架構(gòu)。blog對系統(tǒng)的可靠性、穩(wěn)定性有比較高的要求。本系統(tǒng)設(shè)計時,比較主流的B/S設(shè)計有基于JSP、ASP、PHP、CGI及J2EE等模式。相比較而言PHP的功能相對簡單,不適合做大程序;而CGI效率相對較低,所以也不考慮。由于J2EE的開源的框架中提供了MVC模式實現(xiàn)框架Struts、對象關(guān)系模型中的Hibernate的框架及擁有事務(wù)管理和依賴注入的Spring。利用現(xiàn)存框架可以更快開發(fā)系統(tǒng)。所以選擇Java技術(shù)作為blog的開發(fā)工具。為了增加系統(tǒng)的吞吐量,提高并發(fā)處理客戶請求數(shù)量,系統(tǒng)采用了IBM效勞器作為主機。在數(shù)據(jù)庫處理方面,不需要在數(shù)據(jù)層借助存儲過程及數(shù)據(jù)庫效勞器端函數(shù)封裝過多的業(yè)務(wù)邏輯,因此數(shù)據(jù)庫系統(tǒng)采用相對精巧的MySQL[6]。該在線博客系統(tǒng)效勞器端如果需要布置到其他主機上,則該主機必備條件如下:1. 效勞器端操作系統(tǒng):獨立于操作系統(tǒng)的跨平臺系統(tǒng),客戶端MicroSoftWindows2000及以上;2. 數(shù)據(jù)庫:MySQL版本;3. Web效勞器:Tomcat5.5及以上版本,配合MVC設(shè)計模式及Hibernate開發(fā)架構(gòu);4. 客戶端運行環(huán)境:能運行IE5以上或Netscape5以上瀏覽器的操作系統(tǒng),配合使用Aja*技術(shù);5. 客戶端運行工具:目前的系統(tǒng)采用瀏覽器作為客戶端,為了支持Aja*開發(fā)框架,應(yīng)該選擇使用IE5以上版本瀏覽器。本以*p為Web平臺,JSP+Aja*+Servlet+JavaBean+Hibernate為實現(xiàn)技術(shù),建立基于MySQL數(shù)據(jù)庫系統(tǒng)的核心動態(tài)網(wǎng)頁,實現(xiàn)博客前臺及博客個人維護管理等功能模塊。1、系統(tǒng)處理的準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足信息處理的需求。2、系統(tǒng)的開放性和系統(tǒng)的可擴大性:系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴大性。例如數(shù)據(jù)表中用戶選擇字段方式的改變,用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進展功能的調(diào)整和擴大。而要實現(xiàn)這一點,應(yīng)通過系統(tǒng)的開放性來完成,既系統(tǒng)應(yīng)是一個開放系統(tǒng),只要符合一定的規(guī)*,可以簡單的參加和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補、替換完成系統(tǒng)的升級和更新?lián)Q代。3、系統(tǒng)的易用性和易維護性:要實現(xiàn)這一點,就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。4、系統(tǒng)的數(shù)據(jù)要求:1、數(shù)據(jù)錄入和處理的準確性和實時性。2、數(shù)據(jù)的一致性與完整性。3、數(shù)據(jù)的共享與獨立性。系統(tǒng)的可行性分析技術(shù)可行性技術(shù)上的可行性分析要考慮將來要采用的硬件和軟件技術(shù)能否滿足用戶〔這里是效勞器,網(wǎng)速〕提出的要求〔如計算機的容量、速度等〕。此外,還要考慮開發(fā)人員的水平,學(xué)習(xí)了兩年的jsp開發(fā),對于這個系統(tǒng)的編寫,我想完整的之需要兩個月就可以寫出程序,再花上幾天的調(diào)試,方案兩個月左右就可以完成投入使用了。我們掌握了數(shù)據(jù)庫及其應(yīng)用技術(shù)、數(shù)據(jù)庫原理、計算機網(wǎng)絡(luò)技術(shù)等課程,對數(shù)據(jù)庫的設(shè)計、應(yīng)用、維護及局域網(wǎng)的組成有了深刻的認識與一定的動手實踐能力,考取了信息處理、程序設(shè)計、數(shù)據(jù)庫技術(shù)等國家IT認證。從一定程度上具備了開發(fā)一個小型系統(tǒng)的能力。再有就!經(jīng)濟可行性主要從對工程的經(jīng)濟上進展分析評價,一方面是支出的費用,包括設(shè)備購置費、管理和維護費用、人員工資和培訓(xùn)費等,另一個是取得的收益。這是個小型的系統(tǒng),從投入的人力,財力與物力來講是非常小的,發(fā)布出去之需要注冊域名就可以了,從節(jié)省人力方面,可以讓管理人員從繁與復(fù)雜的工作中解脫出來,做更多的工作。管理可行性有IP地址、用戶名與密碼等,可以下載一個FTP上傳工具〔cure〕上傳更新后的內(nèi)容.可以在.sky./soft/683.html下載到.下載以后,通過"站點管理"-->"新建站點".輸入IP,用戶名,密碼.然后連接即可.當然也可用FTP工具.直接在IE瀏覽器地址欄輸入ftp://.域名/然后輸入用戶名和密碼.同樣可以上傳.隨時更新文件!開發(fā)環(huán)境的說明與安裝開發(fā)語言的選擇JAVA簡介Java是Sun公司推出的新的一代面向?qū)ο蟪绦蛟O(shè)計語言,特別適合于Internet應(yīng)用程序開發(fā)。Java的產(chǎn)生與流行是當今Internet開展的客觀要求,Java是一門各方面性能都很好的編程語言,它的根本特點是簡單、面向?qū)ο?、分布式、解釋的、強健的、平安的、?gòu)造中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的,特別適合在Internet環(huán)境上開發(fā)的應(yīng)用系統(tǒng)。Web應(yīng)用程序開發(fā)環(huán)境—JSP技術(shù)JSP的全稱是JavaServerPages,它是SUN推出的一種動態(tài)網(wǎng)頁技術(shù)標準。它在傳統(tǒng)的靜態(tài)頁面文件〔*.html,*.htm〕中參加JAVA程序片段和JSP標記,就構(gòu)成了JSP頁面。JSP具有以下的優(yōu)點:1、將業(yè)務(wù)層與表示層別離:使用JSP技術(shù),網(wǎng)絡(luò)開發(fā)人員可充分使用HTML來設(shè)計頁面顯示局部〔如字體顏色等〕,并使用JSP指令或者JAVA程序片段來生成網(wǎng)頁上的動態(tài)內(nèi)容;2、能夠跨平臺:JSP支持絕大局部平臺,包括現(xiàn)在非常流行的LINU*系統(tǒng),應(yīng)用非常廣泛的Apache效勞器也提供了支持JSP的效勞;3、組件的開發(fā)和使用很方便:如ASP的組件是由C++,VB等語言開發(fā)的,并需要注冊才能使用;而JSP的組件是用Java開發(fā)的,可以直接使用;4、一次編寫,處處運行:作為JAVA開發(fā)平臺的一局部,JSP具有JAVA的所有優(yōu)點,包括Writeonce,Runeverywhere.數(shù)據(jù)庫的選擇Web應(yīng)用程序開發(fā)環(huán)境—SQLserver數(shù)據(jù)庫SQLServer是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)〔DBMS〕,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特點:1.真正的客戶機/效勞器體系構(gòu)造。2.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3.豐富的編程接口工具,為用戶進展程序設(shè)計提供了更大的選擇余地。4.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和承受消息,管理登錄平安性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成。5.具有很好的伸縮性,可跨越從運行Windows95/98的膝上型電腦到運行Windows2000的大型多處理器等多種平臺使用。6.對Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。7.SQLServer提供數(shù)據(jù)倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。SQLServer2000與以前版本相比較,又具有以下新特性:1.支持*ML(E*tensiveMarkupLanguage,擴展標記語言)2.強大的基于Web的分析3.支持OLEDB和多種查詢4.支持分布式的分區(qū)視圖安裝、運行SQLServer2000的硬件需求〔1〕計算機Inter及其兼容計算機,Pentium166Mz或者更高處理器或DECAlpha和其兼容系統(tǒng)?!?〕內(nèi)存〔RAM〕企業(yè)版最少64MB內(nèi)存,其他版本最少需要32MB內(nèi)存,建議使用更多的內(nèi)存?!?〕硬盤空間完全安裝〔Full〕需要180MB的空間,典型安裝〔Typical〕需要170MB的空間,最小安裝〔Minimum〕需要65MB的空間。開發(fā)工具的選擇MyEclipse,Deamweare,選擇SQLserver作為后臺的數(shù)據(jù)庫,選擇JAVA、JSP、JavaScript、Html作為應(yīng)用程序開發(fā)工具,運用Tomcat效勞器技術(shù),整個系統(tǒng)完全基于B/S(Browser/Server)模式進展設(shè)計。1、Tomcat應(yīng)用效勞器目前支持JSP的應(yīng)用效勞器是較多的,Tomcat是其中較為流行的一個Web效勞器,被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的Java產(chǎn)品,可見其在業(yè)界的地位。Tomcat是一個免費的開源的Serlvet容器,在Tomcat中,應(yīng)用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中這個應(yīng)用的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的迅速開展,計算機技術(shù)正在由基于C/S〔client/Server〕模式的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛贐/S模式的應(yīng)用系統(tǒng)。過去,網(wǎng)絡(luò)軟件的開發(fā)都采用C/S〔client〕模式,在這種模式下,主要的業(yè)務(wù)邏輯都集中于客戶端程序,因此,必然導(dǎo)致以下問題:系統(tǒng)安裝、調(diào)試、維護和升級困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不一樣,因此,在安裝時,必須對每一個客戶端分別進展配置,同樣,在軟件升級時也要對客戶端分別處理。B/S模式帶來了巨大的好處:開發(fā)本錢及維護本錢降低。由于B/S架構(gòu)管理軟件只安裝在效勞器端〔Server〕上,即應(yīng)用程序在部署、升級、維護時,只需要在效勞器端進展配置就可以了,網(wǎng)絡(luò)管理人員只需要管理效勞器就行了,用戶界面主要事務(wù)邏輯在效勞器〔Server〕端完全通過瀏覽器實現(xiàn),極少局部事務(wù)邏輯在前端〔Browser〕實現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護。良好的平安性能,防火墻技術(shù)可以保證后臺數(shù)據(jù)庫的平安性。所有的配置工作都集中在效勞器端且所有客戶端請求都是通過DBMS來數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險。系統(tǒng)設(shè)計4.1開發(fā)框架技術(shù)介紹對于框架技術(shù),我們采用Struts+aja*的整合!Struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架1、Struts是一個為開發(fā)基于模型(Model)-視圖(View)-控制器(Controller)(MVC)模式的應(yīng)用架構(gòu)的開源框架,是利用Servlet,JSP和customtaglibrary構(gòu)建Web應(yīng)用的一項非常有用的技術(shù)。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速。它使用效勞層框架可以將JavaBeans從Jsp/Servlet中別離出來,而使用表現(xiàn)層框架則可以將Jsp中剩余的JavaBeans完全別離,這局部JavaBeans主要負責(zé)顯示相關(guān)信息,一般是通過標簽庫〔Taglib〕實現(xiàn),不同框架有不同自己的標簽庫,Struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架。2、Aja*我們主要應(yīng)用就是*mlrequest,回調(diào)函數(shù)實現(xiàn)局部刷新達道數(shù)據(jù)更新!4.2需求分析Blog主要是實現(xiàn)注冊用戶登錄、管理相關(guān)信息、博文及相關(guān)評論、查看留言、友情、及圖片的上傳和圖像的播放而為上網(wǎng)用戶提供按博文主題搜索,查看注冊用戶的博文及提出相關(guān)評論,并為注冊用戶寫留言,游覽注冊用戶的相冊、注冊等功能的系統(tǒng)。下面就以兩種不同的用戶來分析博客的需求。注冊博友首先必須在博客首頁中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關(guān)操作,不然就是普通用戶只能查看一些信息,而不能發(fā)表博文??梢栽诠芾眄撁嫔咸砑硬┪牡姆诸?,可以上傳圖片和游覽自己的相冊,在上傳過程中可以將一*圖片定義為自己的簽名,在個人管理頁面中注冊用戶還可以修改自己的個人信息。博文管理,友情管理及博文分類管理,用例圖2。圖2博客管理頁面的用例圖在博客主界面中發(fā)表博文時可以選擇博文類型,這樣可以更好管理自己的博文。并查看和刪除網(wǎng)友對自己的博文的一些評論、查看和刪除網(wǎng)友留下的一些留言,提供與其他網(wǎng)友交流的空間。更好交流,在信息時代人們通過個人空間溝通也用來但不能在自己的博客主頁面中提交評論和留言。。這樣在本系統(tǒng)中就可以為博友提供更多的個人色彩。在管理頁面中添加和刪除友情連接。這樣博友可以在自己空間中快速定位自己的關(guān)心的。這樣還可以讓網(wǎng)友看到自己的一些信息。友情及網(wǎng)頁量統(tǒng)計顯示:在博客的個人頁面中還提供了推薦給普通網(wǎng)絡(luò)用戶的相關(guān)友情,此外,對個人頁面的量也在隨時進展統(tǒng)計,并在個人頁面中進展直觀的顯示。博客主頁面的用例圖如圖3所示:圖3博客主頁面的用例圖普通用戶在博客注冊頁面注冊成為博客的注冊用戶,才可以擁有自己獨立的空間,進入*一博客頁面查看相關(guān)文章信息時,可以隨時對自己所感興趣的文章發(fā)表評論,同時也可以查看到其他人針對該博文的評論。普通用戶在閱讀博文時可以在最后留下自己的一些評論。他也可以留下更多的信息。這樣他可以寫留言。這樣他留下的信息就更快地被博友所看到。普通用戶進入博友的用例圖如圖4所示:圖4上網(wǎng)博友在博客主頁面的用例圖普通網(wǎng)友可以搜索自己關(guān)心的一些數(shù)據(jù)。并且在搜索結(jié)果中提供在結(jié)果*圍內(nèi)再次搜索。這樣就可以將*圍縮小。首頁向注冊用戶提供登陸模塊,注冊用戶在博客首頁跟上網(wǎng)網(wǎng)友一樣可以查看博客和博文推薦。上網(wǎng)網(wǎng)友可以注冊成為博客用戶,擁有自己獨立的空間。這一模塊的用例圖如圖5所示:圖5博客首頁的用例圖4.3功能模塊介紹博客注冊登錄管理模塊博客注冊登錄管理模塊用于建立博客固定的客戶群體,通過記錄對應(yīng)的博客檔案,實現(xiàn)對博客信息的后臺維護及管理,同時也便于通過博客檔案庫將最新動態(tài)及相關(guān)企業(yè)的信息方便地傳達給每一位潛在的客戶。該功能模塊實現(xiàn)了以下幾個子功能。〔1〕新博客在線注冊?!?〕博客登錄管理?!?〕跳轉(zhuǎn)到博客主頁。只有進展登錄并通過身份驗證的用戶,才可以在個人博客頁面發(fā)表日志,并借助個人設(shè)置實現(xiàn)對個人博客相關(guān)信息的管理維護。對于沒有經(jīng)過身份驗證的網(wǎng)絡(luò)用戶不允許在博客頁面中發(fā)表日志,更不允許對博客頁面信息進展管理維護。該模塊實現(xiàn)新博客的注冊及登錄驗證功能。其中,注冊新博客時會對用戶輸入的注冊信息進展有效性驗證,包括根本數(shù)據(jù)格式的有效性以及邏輯有效性,例如,用戶名被占用時將及時給出提示。注冊成功的博客登錄時,會隨時根據(jù)博客輸入的登錄信息進展提示,如用戶名錯誤或者密碼錯誤。博客及文章檢索查詢模塊博客及文章檢索查詢模塊為網(wǎng)絡(luò)用戶提供便捷的搜索,以及日志閱讀瀏覽等功能,同時對日志的評論信息、博客推薦也能夠及時反響給網(wǎng)絡(luò)用戶。該功能模塊實現(xiàn)了以下幾個子功能?!?〕熱門博客頁面推薦?!?〕最新博客日志推薦?!?〕日志信息關(guān)鍵字搜索。該模塊能夠在網(wǎng)頁中隨時提供在線的最新日志信息。該信息需要定期更新,網(wǎng)絡(luò)用戶可以隨時獲得最新日志以及最熱門的博客推薦。在客戶選擇了*個博客或者*個感興趣的日志后,可以方便地跳轉(zhuǎn)到對應(yīng)博客頁面進展日志的閱讀,并和博客進展交流互動。為了使網(wǎng)絡(luò)用戶盡快定位到所需的博客資料及日志信息,本模塊提供了搜索功能,用戶可以對所關(guān)注的日志信息按照標題進展關(guān)鍵字搜索,以防止用戶瀏覽多個頁面來尋找所需的日志信息。博客頁面顯示模塊當網(wǎng)絡(luò)用戶進入*個人博客主頁后,在該頁面中將提供博客日志列表的顯示,同時為了方便用戶瀏覽,在該模塊中提供根據(jù)分類名進展日志列表的顯示,也提供日志評論的瀏覽,此外還允許用戶在博客頁面中發(fā)表評論及留言。該功能模塊實現(xiàn)了如下幾個子功能?!?〕用戶可以分頁查看對應(yīng)的日志內(nèi)容及評論信息。〔2〕用戶可以針對日志內(nèi)容發(fā)表評論?!?〕用戶可以針對博客進展留言。〔4〕用戶可以分類查看日志內(nèi)容。在該模塊中還提供了博客頁面統(tǒng)計信息,日志、評論及留言信息分頁顯示等方便用戶的顯示效果。博客個人維護管理模塊博客個人維護管理模塊用于實現(xiàn)用戶對博客個人主頁及相關(guān)信息的動態(tài)管理。該功能模塊實現(xiàn)了如下幾個子功能:〔1〕日志及日志分類管理?!?〕評論及留言管理?!?〕個人根本信息維護管理。借助該模塊,用戶可以隨時對個人博客主頁中的內(nèi)容進展增加或修改,包括日志分類信息的更新、評論及留言管理等功能,也允許用戶對博客的個人信息進展維護及其管理。4.4系統(tǒng)分析本系統(tǒng)采用嚴格的J2EE應(yīng)用構(gòu)造,主要有如下幾個分層。1. 表現(xiàn)層:由JSP頁面組成。2. MVC層:使用Struts框架。3. 業(yè)務(wù)邏輯層:主要由SpringloC容器管理的業(yè)務(wù)邏輯組件組成。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)構(gòu)造圖在圖6黑色大方框內(nèi)的MVC控制層、Service層及DAO組件層的組件,都由SpringIOC容器負責(zé)生成,并管理組件的實例〔實例必須是單身模式的,本系統(tǒng)中的bean根本上是單身的〕。系統(tǒng)架構(gòu)說明本系統(tǒng)不僅嚴格按MVC模式設(shè)計,還按J2EE分層設(shè)計,將中間層嚴格分成業(yè)務(wù)邏輯層、DAO層及數(shù)據(jù)持久層等。MVC層的控制器絕對制止持久層,甚至不參與業(yè)務(wù)邏輯的實現(xiàn)。表現(xiàn)層采用傳統(tǒng)JSP技術(shù)。本系統(tǒng)采用的是典型的J2EE三層構(gòu)造,分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)效勞層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。Jsp廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅實的根底。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務(wù)邏輯層別離,又細分為以下幾種。Web層,就是MVC模式里面的C,負責(zé)邏輯層和表現(xiàn)層的交互。調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC采用Struts框架。Service層(就是業(yè)務(wù)邏輯層),負責(zé)實現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO層為根底,通過對DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。DAO層,負責(zé)與持久化對象交互。該層封裝了數(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ù)效勞層用來存放數(shù)據(jù)。通過使用Hibernate持久層,可以防止使用傳統(tǒng)的JDBC操作數(shù)據(jù)庫,對JDBC近一步包裝,從而更好地使用面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫。保證了整個軟件開發(fā)過程以面向?qū)ο蟮姆绞竭M展,即面向?qū)ο蠓治觥⒃O(shè)計及編程,透過Hibernte對PO對象持久化操作,不管插入還是查詢都是通過PO。4.3.2實現(xiàn)DAODAO還有助于提升系統(tǒng)的可移植性。獨立的DAO層使得系統(tǒng)能在不同的數(shù)據(jù)庫之間輕易切換,底層的數(shù)據(jù)庫實現(xiàn)對于業(yè)務(wù)邏輯組件是透明的。數(shù)據(jù)庫移植時僅僅影響DAO層,不同數(shù)據(jù)庫的切換不會影響業(yè)務(wù)邏輯組件,因此提高了系統(tǒng)的可復(fù)用性。對于不同的持久層技術(shù),Spring的DAO提供一個DAO模板,將通用的操作放在模板里完成,而對于特定的操作,則通過回調(diào)接口完成。Spring為Hibernate提供的DAO支持類是:HibernateDaoSupport。4.3.3DAO組件提供了各持久化對象的根本的CRUD操作。而在DAO接口里則對DAO組件包含的各種CRUD方法提供了聲明,但有一些IDE工具也可以生成根本的CRUD方法。使用DAO接口的原因是:防止業(yè)務(wù)邏輯組件與特定的DAO組件藕合。由于DAO組件中的方法不是開場就設(shè)計出來的,其中的很多方法可能會隨著業(yè)務(wù)邏輯的需求而增加,但以下幾個方法是通用的。?get:根據(jù)主鍵加載持久化實例。?saveorupdate:保存或更新持久化實例。?remove:刪除持久化實例。上面涉及了7個PO,這樣我們必須設(shè)計7個對應(yīng)的PODao7個Dao必須繼承BaseDao這個BaseDao有對接口的一些根本的CURD操作。7個Dao如下。LinksDao,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。這7個Dao分別封裝對自己的持久化對象的一些操作。4.3.4部署DAOHibernateDaoSupport類只需要一個SessionFactory屬性,即可完成數(shù)據(jù)庫。SessionFactroy創(chuàng)立Session,而數(shù)據(jù)庫的CRUD操作都是有Session完成,并將查詢結(jié)果保存在一級緩存中,每次用戶提交一次會話,可能需要Session完成一些數(shù)據(jù)庫的操作而實際的數(shù)據(jù)庫由模板類HibernateTemplate完成,該模板類提供了大量便捷的方法,簡化了數(shù)據(jù)庫的。數(shù)據(jù)庫設(shè)計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ù);選擇表單項選擇框、復(fù)選框、下拉列表等通過選擇輸入的數(shù)據(jù);自定獲取是為外碼的輸入設(shè)定的,它由程序自動獲取。5.2主要表構(gòu)造如下表[blogs]日志數(shù)據(jù)表字段名類型說明blogidInt(10)日志的IDtitlete*t日志標題pubtimeInt(11)日志發(fā)表時間authoridInt(8)日志作者的UIDrepliesInt(8)日志的評論數(shù)tbsInt(8)日志的trackback數(shù)viewsInt(8)日志的查看次數(shù)categoryInt(3)日志所屬的分類的IDcontentmediumte*t日志正文內(nèi)容propertyInt(1)日志的屬性0公開日志1鎖定日志2隱藏日志3一般草稿2.表[user]博友登陸信息表字段名類型說明useridInt(10)博友IDnichengTe*t博友在博客里的稱呼usernamete*t登陸時的用戶名passwordte*t登陸密碼3.表[register]用戶數(shù)據(jù)表字段名類型說明useridInt(8)登陸時需要用到的用戶名usernamete*t用戶昵稱userpwdInt(8)登陸密碼regtimeInt(11)注冊時間usergroupInt(2)所屬的用戶組IDemailte*t用戶emailqqte*tQq號msnte*t用戶msngenderte*t用戶性別主要功能的實現(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());//設(shè)置用戶權(quán)限 this.session().setAttribute("user",uservo);//將用戶信息放在session中 returnSUCCESS;//返回用戶主界面頁面 }else{returnERROR;返回到失敗頁面}}else{returnERROR;}}else{ returnERROR;}6.2Aja*讀取t*t格式數(shù)據(jù)functionaja*_function(var1,var2){
var*ml=null;//創(chuàng)立*mlrequest
try
{
//Firefo*,Opera8.0+,Safari對不同瀏覽器常見不同對象
*ml=new*MLRequest();
}
catch(e)
{
try
{
//InternetE*plorer
*ml=newActive*Object('Ms*ml2.*ML');
}
catch(e)
{
try
{
*ml=newActive*Object('Microsoft.*ML');
}
catch(e)
{
alert('YourbrowserdoesnotsupportAJA*!');
returnfalse;
}
}
}
*ml.onreadystatechange=function()
{
if(*ml.readyState==4&&*ml.status==200)
{
varsomeDiv=document.getElementById('someDiv');
someDiv.innerHTML=*ml.responseTe*t;
}
}
*ml.open('GET','/inde*.jsp?param1='+var1+'?m2='+var2,true);
*ml.send(null);
}6.3系統(tǒng)架構(gòu)與數(shù)據(jù)庫的連接由于我們開發(fā)時是利用MVC的設(shè)計模式,所以在此我們的數(shù)據(jù)庫連接是封存在M中的,即只要我們和M層連接上,就已經(jīng)連接上數(shù)據(jù)庫了。Hibernate使用數(shù)據(jù)庫和配置信息來為應(yīng)用程序提供持久化效勞〔以及持久的對象〕。我們只需在hibernate.cfg.*ml中配置以下語句即可:<!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><propertyname="connection.username">sa</property><propertyname="connection.url">jdbc:microsoft:sqlserver://localhost:1035;DatabaseName=webe*amine</property><propertyname="dialect">org.hibernate.dialect.SQLServerDialect</property><propertyname="file">sqlserver2000</property><propertyname="connection.password">aaaaaaaa</property><propertyname="connection.driver_class">.microsoft.jdbc.sqlserver.SQLServerDriver</property> <propertyname="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property> <propertyname="show_sql">true</property> <mappingresource="http://perdure/hibernate/info/InfoTable.hbm.*ml"/> <mappingresource="http://perdure/hibernate/user/UserTable.hbm.*ml"/> </session-factory></hibernate-configuration>其實我們在這里配置了一個數(shù)據(jù)連接,以保證系統(tǒng)的正常運行,我們需要使用pro*ool連接池,我們經(jīng)測試,分別用pro*ool、tomcatJNDI、Hibernate自帶的連接池進展配置之后分別執(zhí)行以上的10000條數(shù)據(jù)插入和讀取,結(jié)果顯示pro*ool的性能要優(yōu)于tomcatJNDI,而Hibernate自帶的就更不用提了,差很遠。依次為:39265毫秒/10000條、26013毫秒/10000條、50029毫秒/10000條。6.4數(shù)據(jù)的備份與復(fù)原我們根據(jù)Mysql數(shù)據(jù)庫提供的backup(備份)命令及restor
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣東廣州市增城區(qū)荔江小學(xué)編外聘用制教師招聘3人備考考試題庫及答案解析
- 2026年云南省消防救援總隊訓(xùn)練與戰(zhàn)勤保障支隊招聘(1人)考試備考題庫及答案解析
- 2026河南商丘夏邑縣第三高級中學(xué)教師招聘考試備考試題及答案解析
- 護理站藥品管理科學(xué)化管理方法
- 《認識10以內(nèi)的數(shù)》數(shù)學(xué)課件教案
- 2026年急診胸痛患者快速評估與護理配合
- 2026年護理崗位風(fēng)險識別與應(yīng)急預(yù)案制定
- 《GAZ 1736-2020基于目標位置映射的主從攝像機協(xié)同系統(tǒng)技術(shù)要求》專題研究報告深度
- 《GAT 2149-2024機動車駕駛?cè)税踩逃W(wǎng)絡(luò)課程設(shè)置規(guī)范》專題研究報告
- 專利無效宣告請求合同協(xié)議2026
- 2025 年大學(xué)人工智能(AI 應(yīng)用)期中測試卷
- 《市場營銷(第四版)》中職完整全套教學(xué)課件
- (正式版)DB61∕T 2121-2025 《風(fēng)力發(fā)電場集電線路設(shè)計規(guī)范》
- 疑難病例討論制度落實常見問題與改進建議
- 創(chuàng)傷性脾破裂的護理
- 蓬深102井鉆井工程(重新報批)項目環(huán)境影響報告表
- 大模型金融領(lǐng)域可信應(yīng)用參考框架
- (新教材)2025年人教版七年級上冊歷史期末復(fù)習(xí)??贾R點梳理復(fù)習(xí)提綱(教師版)
- 中國全色盲診療專家共識2026
- 鋼鐵工藝流程課件
- 自流平地面施工安全方案
評論
0/150
提交評論