版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章 緒論1.1. 選題背景這幾年,許多新名詞涌入我們的視野:博客、圈子、播客、wap等。這些都預示著我們進入了一個新的互聯(lián)網階段web 2.0,它是相對web 1.0的新的一類互聯(lián)網應用的總稱,是一次從核心內容到外部應用的革命10。這個階段發(fā)展迅速,互聯(lián)網應用趨于多樣化,其中變化最大的是由web 1.0網站創(chuàng)造內容的時代變?yōu)橛捎脩魟?chuàng)造內容的web 2.0時代。 在web 2.0應用中,博客(blog)是web 2.0核心應用中最典型、最流行的代表之一,也是web 2.0技術應用的最直觀的表現(xiàn),是web 2.0精神和理念的具體體現(xiàn)。1.2. 問題的提出blog記載了日常發(fā)生的事情和自己的興趣
2、愛好,把自己的思想和知識和他人分享、交流,同時又通過“六度空間”結識了更多志趣相投的朋友;而越來越多專業(yè)知識的 blog 的出現(xiàn),讓我們看到了 blog 更多所蘊涵的巨大的信息價值:不同的 blog 選擇不同的內容,收集和整理成為很多人關注的專業(yè) blog 目前越來越多的人獲取信息的來源是一些固定的 blog 。隨著博客人數(shù)的增加, blog 作為一種新的生活方式、新的工作方式、新的學習方式已經被越來越多的人所接受,并且在改變傳統(tǒng)的網絡和社會結構:網絡信息不再是虛假不可驗證的,交流和溝通更有明確的選擇和方向性,單一的思想和群體的智慧結合變的更加有效,個人出版變成人人都可以實現(xiàn)的夢想 blog
3、正在影響和改變著我們的生活。1.3. 系統(tǒng)的開發(fā)目標管理員通過前臺頁面進入后臺管理模塊后,可對注冊的博客用戶進行維護,包括對注冊用戶的添加、查找、修改和刪除。管理員進入登錄后,可對帳戶進行管理,包括添加管理員帳戶、修改管理員帳戶、刪除管理員帳戶和對帳戶進行權限設置。博客用戶通過前臺登錄后,可對自己的博客空間進行管理,包括發(fā)布自己的網絡日志、收藏個人圖片、和相關人員進行交流和溝通以及刪除訪問者發(fā)表的評論等。因此,在具體設計實現(xiàn)該博客網站時,主要考慮了主流博客網站的幾個主要功能:(1)博客的注冊、登錄驗證功能(2) 網絡用戶通過關鍵字搜索博文功能(3) 最熱門博客頁面推薦瀏覽(4) 文章詳細內容及
4、相關評論顯示(5) 博客頁面訪問量統(tǒng)計(6) 博客個人文章管理維護功能(7) 博客個人文章分類管理維護功能(8) 博客個人友情鏈接維護功能(9) 博客個人基本信息管理維護功能(10) 博客圖片上傳及個人相冊管理(11) 網絡用戶寫留言,博主查看留言。第二章 系統(tǒng)設計2.1. 系統(tǒng)分析在整個blog進行開發(fā)之前,要確定出整個項目的整體架構,包括系統(tǒng)的選型、運行環(huán)境的確定及系統(tǒng)結構設計。下面對這進行詳細介紹。在進行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進行系統(tǒng)的選型,即根據(jù)系統(tǒng)功能的實際需求,選擇合適的開發(fā)工具及軟件架構。blog對系統(tǒng)的可靠性、穩(wěn)定性有比較高的要求。本系統(tǒng)設計時,比較主流的b/s設計
5、有基于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è)務邏輯,因此數(shù)據(jù)庫系統(tǒng)采用相對精巧的mysql6。該在線博客系統(tǒng)服務器端如果需要布置
6、到其他主機上,則該主機必備條件如下:1.服務器端操作系統(tǒng):獨立于操作系統(tǒng)的跨平臺系統(tǒng),客戶端microsoft windows 2000及以上;2.數(shù)據(jù)庫:mysql 5.0.27版本;3.web服務器:tomcat 5.5及以上版本,配合mvc設計模式及 hibernate開發(fā)架構;4.客戶端運行環(huán)境:能運行ie 5以上或netscape 5以上瀏覽器的操作系統(tǒng),配合使用ajax技術;5.客戶端運行工具:目前的系統(tǒng)采用瀏覽器作為客戶端,為了支持ajax開發(fā)框架,應該選擇使用ie 5以上版本瀏覽器。本網站以xp為web平臺,jsp+ajax+servlet+javabean+hibernate
7、為網站實現(xiàn)技術,建立基于mysql數(shù)據(jù)庫系統(tǒng)的核心動態(tài)網頁,實現(xiàn)博客網站前臺及博客個人維護管理等功能模塊。1、 系統(tǒng)處理的準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應時間能夠滿足信息處理的需求。2、 系統(tǒng)的開放性和系統(tǒng)的可擴充性:系統(tǒng)在開發(fā)過程中,應該充分考慮以后的可擴充性。例如數(shù)據(jù)表中用戶選擇字段方式的改變,用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進行功能的調整和擴充。而要實現(xiàn)這一點,應通過系統(tǒng)的開放性來完成,既系統(tǒng)應是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單
8、的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補、替換完成系統(tǒng)的升級和更新?lián)Q代。3、 系統(tǒng)的易用性和易維護性:要實現(xiàn)這一點,就要求系統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。4、 系統(tǒng)的數(shù)據(jù)要求:1、數(shù)據(jù)錄入和處理的準確性和實時性。2、數(shù)據(jù)的一致性與完整性。3、數(shù)據(jù)的共享與獨立性。2.2. 系統(tǒng)的可行性分析2.2.1. 技術可行性 技術上的可行性分析要考慮將來要采用的硬件和軟件技術能否滿足用戶(這里是服務器,網速)提出的要求(如計算機的容量、速度等)。此外,還要考慮開發(fā)人員的水平,學習了兩年的jsp開發(fā),對于
9、這個系統(tǒng)的編寫,我想完整的之需要兩個月就可以寫出程序,再花上幾天的調試,計劃兩個月左右就可以完成投入使用了。我們掌握了數(shù)據(jù)庫及其應用技術、數(shù)據(jù)庫原理、計算機網絡技術等課程,對數(shù)據(jù)庫的設計、應用、維護及局域網的組成有了深刻的認識與一定的動手實踐能力,考取了信息處理、程序設計、數(shù)據(jù)庫技術等國家it認證。從一定程度上具備了開發(fā)一個小型系統(tǒng)的能力。再有就!2.2.2. 經濟可行性 主要從對項目的經濟上進行分析評價,一方面是支出的費用,包括設備購置費、管理和維護費用、人員工資和培訓費等,另一個是取得的收益。這是個小型的系統(tǒng),從投入的人力,財力與物力來講是非常小的,發(fā)布出去之需要注冊域名就可以了,從節(jié)省人
10、力方面,可以讓管理人員從繁與復雜的工作中解脫出來,做更多的工作。 2.2.3. 管理可行性 有ip地址、用戶名與密碼等,可以下載一個ftp上傳工具(cure)上傳更新后的內容.可以在 下載以后,通過站點管理-新建站點.輸入ip,用戶名,密碼.然后連接即可. 當然也可用ftp工具.直接在ie瀏覽器地址欄輸入ftp:/www.域名/然后輸入用戶名和密碼.同樣可以上傳.隨時更新文件!第三章 開發(fā)環(huán)境的說明與安裝3.1. 開發(fā)語言的選擇3.1.1. java簡介 java是sun公司推出的新的一代面向對象程序設計語言,特別適合于internet應用程序開發(fā)。java的產生與流行是當今internet發(fā)
11、展的客觀要求,java是一門各方面性能都很好的編程語言,它的基本特點是簡單、面向對象、分布式、解釋的、健壯的、安全的、結構中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的,特別適合在internet環(huán)境上開發(fā)的應用系統(tǒng)。3.1.2. web應用程序開發(fā)環(huán)境jsp技術 jsp的全稱是java server pages,它是sun推出的一種動態(tài)網頁技術標準。它在傳統(tǒng)的靜態(tài)頁面文件(*.html,*.htm)中加入java程序片段和jsp標記,就構成了jsp頁面。jsp具有以下的優(yōu)點: 1、將業(yè)務層與表示層分離:使用jsp技術,網絡開發(fā)人員可充分使用html來設計頁面顯示部分(如字體顏色等),并使用
12、jsp指令或者java程序片段來生成網頁上的動態(tà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)點,包括write once , run everywhere.3.2. 數(shù)據(jù)庫的選擇3.2.1. web應用程序開發(fā)環(huán)境sqlserver數(shù)據(jù)庫sql server是由microsoft開
13、發(fā)和推廣的關系數(shù)據(jù)庫管理系統(tǒng)(dbms),它最初是由microsoft、sybase和ashton-tate三家公司共同開發(fā)的。sql server 2000是microsoft公司于2000年推出的最新版本。 sql server 特點:1真正的客戶機/服務器體系結構。 2圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。 3豐富的編程接口工具,為用戶進行程序設計提供了更大的選擇余地。 4sql server與windows nt完全集成,利用了nt的許多功能,如發(fā)送和接受消息,管理登錄安全性等。sql server也可以很好地與microsoft backoffice產品集成。 5具有
14、很好的伸縮性,可跨越從運行windows 95/98的膝上型電腦到運行windows 2000的大型多處理器等多種平臺使用。 6對web技術的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到web頁面上。 7sql server提供數(shù)據(jù)倉庫功能,這個功能只在oracle和其他更昂貴的dbms中才有。 sql server 2000與以前版本相比較,又具有以下新特性 :1支持xml(extensive markup language,擴展標記語言) 2強大的基于web的分析 3支持ole db和多種查詢 4支持分布式的分區(qū)視圖安裝、運行sql server 2000的硬件需求(1)計算機inter
15、及其兼容計算機,pentium 166mz或者更高處理器或dec alpha和其兼容系統(tǒng)。(2)內存(ram)企業(yè)版最少64mb內存,其他版本最少需要32mb內存,建議使用更多的內存。(3)硬盤空間完全安裝(full)需要180mb的空間,典型安裝(typical)需要170mb的空間,最小安裝(minimum)需要65mb的空間。3.3. 開發(fā)工具的選擇myeclipse,deamweare,選擇sqlserver作為后臺的數(shù)據(jù)庫,選擇java、jsp、javascript、html作為應用程序開發(fā)工具,運用tomcat服務器技術,整個系統(tǒng)完全基于b/s (browser/server)模式
16、進行設計。1、tomcat應用服務器目前支持jsp的應用服務器是較多的,tomcat是其中較為流行的一個web服務器,被javaworld雜志的編輯選為2001年度最具創(chuàng)新的java產品,可見其在業(yè)界的地位。 tomcat是一個免費的開源的serlvet容器,在tomcat中,應用程序的部署很簡單,你只需將你的war放到tomcat的webapp目錄下,tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應用的jsp時,通常第一次會很慢,因為tomcat要將jsp轉化為servlet文件,然后編譯。編譯以后,訪問將會很快。tomcat也具有傳統(tǒng)的web服務器的功能:處理html頁
17、面。但是與apache相比,它的處理靜態(tài)html的能力就不如apache。我們可以將tomcat和apache集成到一塊,讓apache處理靜態(tài)html,而tomcat處理jsp和servlet。tomcat是一個很好的工具,不僅僅因為其免費,功能強大,更因為其開放性,越來越受到人們的重視。2、 b/s 開發(fā)模式伴隨著internet的迅速發(fā)展,計算機技術正在由基于c/s(client/ server)模式的應用系統(tǒng)轉變?yōu)榛赽/s模式的應用系統(tǒng)。過去,網絡軟件的開發(fā)都采用c/s(client)模式,在這種模式下,主要的業(yè)務邏輯都集中于客戶端程序,因此,必然導致以下問題:系統(tǒng)安裝、調試、維護和
18、升級困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時,必須對每一個客戶端分別進行配置,同樣,在軟件升級時也要對客戶端分別處理。b/s模式帶來了巨大的好處:開發(fā)成本及維護成本降低。由于b/s架構管理軟件只安裝在服務器端(server)上,即應用程序在部署、升級、維護時,只需要在服務器端進行配置就可以了,網絡管理人員只需要管理服務器就行了,用戶界面主要事務邏輯在服務器(server)端完全通過www瀏覽器實現(xiàn),極少部分事務邏輯在前端(browser)實現(xiàn),所有的客戶端只有瀏覽器,網絡管理人員只需要做硬件維護。良好的安全性能,防火墻技術可以保證后臺數(shù)據(jù)庫的安全性。所有的配置工
19、作都集中在服務器端且所有客戶端請求都是通過dbms來訪問數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風險。第四章 系統(tǒng)設計4.1開發(fā)框架技術介紹對于框架技術,我們采用struts+ajax的整合! struts是應用比較廣泛的一種表現(xiàn)層框架1、 struts是一個為開發(fā)基于模型(model)視圖(view)控制器(controller)(mvc)模式的應用架構的開源框架,是利用servlet,jsp和custom tag library構建web應用的一項非常有用的技術。由于struts能充分滿足應用開發(fā)的需求,簡單易用,敏捷迅速。它使用服務層框架可以將javabeans從jsp/servlet中分離
20、出來,而使用表現(xiàn)層框架則可以將jsp中剩余的javabeans完全分離,這部分javabeans主要負責顯示相關信息,一般是通過標簽庫(taglib)實現(xiàn),不同框架有不同自己的標簽庫,struts是應用比較廣泛的一種表現(xiàn)層框架。2、 ajax我們主要應用就是xmlhttprequest,回調函數(shù)實現(xiàn)局部刷新達道數(shù)據(jù)更新!4.2需求分析blog網站主要是實現(xiàn)注冊用戶登錄、管理相關信息、博文及相關評論、查看留言、友情鏈接、及圖片的上傳和圖像的播放而為上網用戶提供按博文主題搜索,查看注冊用戶的博文及提出相關評論,并為注冊用戶寫留言,游覽注冊用戶的相冊、注冊等功能的系統(tǒng)。下面就以兩種不同的用戶來分析博
21、客網站的需求。4.2.1注冊博友首先必須在博客首頁中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關操作,不然就是普通用戶只能查看一些信息,而不能發(fā)表博文??梢栽诠芾眄撁嫔咸砑硬┪牡姆诸?,可以上傳圖片和游覽自己的相冊,在上傳過程中可以將一張圖片定義為自己的簽名,在個人管理頁面中注冊用戶還可以修改自己的個人信息。博文管理,友情鏈接管理及博文分類管理,用例圖2。 圖2 博客管理頁面的用例圖在博客主界面中發(fā)表博文時可以選擇博文類型,這樣可以更好管理自己的博文。并查看和刪除網友對自己的博文的一些評論、查看和刪除網友留下的一些留言,提供與其他網友交流的空間。更好交流,在信息時代人們通過個人空間溝通也用來但不能
22、在自己的博客主頁面中提交評論和留言。這樣在本系統(tǒng)中就可以為博友提供更多的個人色彩。在管理頁面中添加和刪除友情連接。這樣博友可以在自己空間中快速定位自己的關心的網站。這樣還可以讓網友看到自己的一些信息。友情鏈接及網頁訪問量統(tǒng)計顯示:在博客的個人頁面中還提供了推薦給普通網絡用戶的相關友情鏈接,此外,對個人頁面的訪問量也在隨時進行統(tǒng)計,并在個人頁面中進行直觀的顯示。博客主頁面的用例圖如圖3所示: 圖3 博客主頁面的用例圖 4.2.2 普通用戶在博客注冊頁面注冊成為博客的注冊用戶,才可以擁有自己獨立的空間,進入某一博客頁面查看相關文章信息時,可以隨時對自己所感興趣的文章發(fā)表評論,同時也可以查看到其他人
23、針對該博文的評論。普通用戶在閱讀博文時可以在最后留下自己的一些評論。他也可以留下更多的信息。這樣他可以寫留言。這樣他留下的信息就更快地被博友所看到。普通用戶進入博友的用例圖如圖4所示: 圖4上網博友在博客主頁面的用例圖普通網友可以搜索自己關心的一些數(shù)據(jù)。并且在搜索結果中提供在結果范圍內再次搜索。這樣就可以將范圍縮小。首頁向注冊用戶提供登陸模塊,注冊用戶在博客網站首頁跟上網網友一樣可以查看博客和博文推薦。上網網友可以注冊成為博客用戶,擁有自己獨立的空間。這一模塊的用例圖如圖5所示: 圖5 博客首頁的用例圖4.3 功能模塊介紹4.3.1 博客注冊登錄管理模塊 博客注冊登錄管理模塊用于建立博客網站固
24、定的客戶群體,通過記錄對應的博客檔案,實現(xiàn)對博客信息的后臺維護及管理,同時也便于通過博客檔案庫將網站最新動態(tài)及相關企業(yè)的信息方便地傳達給每一位潛在的客戶。該功能模塊實現(xiàn)了以下幾個子功能。(1)新博客在線注冊。(2)博客登錄管理。(3)跳轉到博客主頁。只有進行登錄并通過身份驗證的用戶,才可以在個人博客頁面發(fā)表日志,并借助個人設置實現(xiàn)對個人博客相關信息的管理維護。對于沒有經過身份驗證的網絡用戶不允許在博客頁面中發(fā)表日志,更不允許對博客頁面信息進行管理維護。該模塊實現(xiàn)新博客的注冊及登錄驗證功能。其中,注冊新博客時會對用戶輸入的注冊信息進行有效性驗證,包括基本數(shù)據(jù)格式的有效性以及邏輯有效性,例如,用戶
25、名被占用時將及時給出提示。注冊成功的博客登錄時,會隨時根據(jù)博客輸入的登錄信息進行提示,如用戶名錯誤或者密碼錯誤。4.3.2 博客及文章檢索查詢模塊 博客及文章檢索查詢模塊為網絡用戶提供便捷的搜索,以及日志閱讀瀏覽等功能,同時對日志的評論信息、博客推薦也能夠及時反饋給網絡用戶。該功能模塊實現(xiàn)了以下幾個子功能。(1)熱門博客頁面推薦。(2)最新博客日志推薦。(3)日志信息關鍵字搜索。該模塊能夠在網頁中隨時提供在線的最新日志信息。該信息需要定期更新,網絡用戶可以隨時獲得最新日志以及最熱門的博客推薦。在客戶選擇了某個博客或者某個感興趣的日志后,可以方便地跳轉到對應博客頁面進行日志的閱讀,并和博客進行交
26、流互動。為了使網絡用戶盡快定位到所需的博客資料及日志信息,本模塊提供了搜索功能,用戶可以對所關注的日志信息按照標題進行關鍵字搜索,以避免用戶瀏覽多個頁面來尋找所需的日志信息。4.3.3博客頁面顯示模塊 當網絡用戶進入某個人博客主頁后,在該頁面中將提供博客日志列表的顯示,同時為了方便用戶瀏覽,在該模塊中提供根據(jù)分類名進行日志列表的顯示,也提供日志評論的瀏覽,此外還允許用戶在博客頁面中發(fā)表評論及留言。該功能模塊實現(xiàn)了如下幾個子功能。(1)用戶可以分頁查看對應的日志內容及評論信息。(2)用戶可以針對日志內容發(fā)表評論。(3)用戶可以針對博客進行留言。(4)用戶可以分類查看日志內容。在該模塊中還提供了博
27、客頁面統(tǒng)計信息,日志、評論及留言信息分頁顯示等方便用戶的顯示效果。4.3.4 博客個人維護管理模塊博客個人維護管理模塊用于實現(xiàn)用戶對博客個人主頁及相關信息的動態(tài)管理。該功能模塊實現(xiàn)了如下幾個子功能:(1)日志及日志分類管理。(2)評論及留言管理。(3)個人基本信息維護管理。借助該模塊,用戶可以隨時對個人博客主頁中的內容進行增加或修改,包括日志分類信息的更新、評論及留言管理等功能,也允許用戶對博客的個人信息進行維護及其管理。4.4 系統(tǒng)分析 本系統(tǒng)采用嚴格的j2 ee 應用結構,主要有如下幾個分層。1.表現(xiàn)層:由jsp 頁面組成。2.mvc 層:使用struts框架。3.業(yè)務邏輯層:主要由spr
28、ing loc 容器管理的業(yè)務邏輯組件組成。4.dao 層:由7 個dao 組件組成,實現(xiàn)類必須繼承spring提供的hibernatedaosupport。5.hibernate 持久層:由7 個po 組成,并在hibernate session 管理下,完成數(shù)據(jù)庫訪問。6.數(shù)據(jù)庫服務層:使用mysql 數(shù)據(jù)庫存儲持久化數(shù)據(jù)。系統(tǒng)的具體分層如圖5 所示。圖6 系統(tǒng)結構圖在圖6 黑色大方框內的mvc 控制層、service 層及dao 組件層的組件,都由spring ioc 容器負責生成,并管理組件的實例(實例必須是單身模式的,本系統(tǒng)中的bean基本上是單身的)。4.3.1系統(tǒng)架構說明本系統(tǒng)不
29、僅嚴格按mvc 模式設計,還按j2 ee 分層設計,將中間層嚴格分成業(yè)務邏輯層、dao 層及數(shù)據(jù)持久層等。mvc 層的控制器絕對禁止持久層訪問,甚至不參與業(yè)務邏輯的實現(xiàn)。表現(xiàn)層采用傳統(tǒng)jsp 技術。 本系統(tǒng)采用的是典型的j2ee 三層結構,分為表現(xiàn)層、中間層(業(yè)務邏輯層)和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。jsp廣泛的應用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術打下了堅實的基礎。中間層采用的是流行的spring+hibernate ,為了將控制層與業(yè)務邏輯層分離,又細分為以下幾種。w
30、eb 層,就是mvc 模式里面的c,負責邏輯層和表現(xiàn)層的交互。調用業(yè)務邏輯層,并將業(yè)務數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的mvc采用struts框架。service 層(就是業(yè)務邏輯層),負責實現(xiàn)業(yè)務邏輯。業(yè)務邏輯層以dao 層為基礎,通過對dao 組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務邏輯。dao 層,負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。po ,持久化對象。通過實體關系映射工具將關系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很方便地實現(xiàn)以面向對象方式操作數(shù)據(jù)庫,該系統(tǒng)采用hibernate 作為orm 框架。spring 的作用貫穿了整個中間層,將web 層、service 層、d
31、ao 層及po 無縫整合,其數(shù)據(jù)服務層用來存放數(shù)據(jù)。通過使用hibernate 持久層,可以避免使用傳統(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è)務邏輯組件是透明的。數(shù)據(jù)庫移植時僅僅影響dao 層,不同數(shù)據(jù)庫的切換不會影響業(yè)務邏輯組件,因此提高了系統(tǒng)的可復用性。對于不同的
32、持久層技術, spring 的dao 提供一個dao 模板,將通用的操作放在模板里完成,而對于特定的操作,則通過回調接口完成。spring 為hibernate 提供的dao 支持類是: hibernatedaosupport。4.3.3 dao組件的定義dao 組件提供了各持久化對象的基本的crud 操作。而在dao 接口里則對dao組件包含的各種crud 方法提供了聲明,但有一些ide 工具也可以生成基本的crud方法。使用dao 接口的原因是:避免業(yè)務邏輯組件與特定的dao組件藕合。由于dao 組件中的方法不是開始就設計出來的,其中的很多方法可能會隨著業(yè)務邏輯的需求而增加,但以下幾個方法
33、是通用的。 get: 根據(jù)主鍵加載持久化實例。 saveor update: 保存或更新持久化實例。 remove: 刪除持久化實例。上面涉及了7個po,這樣我們必須設計7個對應的podao 7個dao必須繼承basedao 這個basedao 有對接口的一些基本的curd操作。7個dao 如下。linksdao ,blogdao、feedbackdao、articledao、messagedao、sortdao、picturedao。這7個dao 分別封裝對自己的持久化對象的一些操作。4.3.4 部署dao 層hibernatedaosupport類只需要一個sessionfactory 屬
34、性,即可完成數(shù)據(jù)庫訪問。sessionfactroy創(chuàng)建session,而數(shù)據(jù)庫的crud操作都是有session 完成,并將查詢結果保存在一級緩存中,每次用戶提交一次會話,可能需要session完成一些數(shù)據(jù)庫的操作而實際的數(shù)據(jù)庫訪問由模板類hibernatetemplate完成,該模板類提供了大量便捷的方法,簡化了數(shù)據(jù)庫的訪問。第五章 數(shù)據(jù)庫設計5.1定義(數(shù)據(jù)詞典)1、數(shù)據(jù)庫表名的定義使用:重點字_table;重點字可以是多個英文單詞的組合,從組合的第二單詞起首字母大寫,字段命名是能表達字段內容的英文單詞的組合,組合方式同表名重點字相同。2、nn 表示not null 不填表可為空。3、數(shù)
35、據(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主要表結構如下1. 表blogs日志數(shù)據(jù)表 字段名類型說明blogidint(10)日志的idtitlete
36、xt日志標題pubtimeint(11)日志發(fā)表時間authoridint(8)日志作者的uidrepliesint(8)日志的評論數(shù)tbsint(8)日志的trackback數(shù)viewsint(8)日志的查看次數(shù)categoryint(3)日志所屬的分類的idcontentmediumtext日志正文內容propertyint(1)日志的屬性0 公開日志1 鎖定日志2 隱藏日志3 一般草稿 2.表user博友登陸信息表字段名類型說明useridint(10)博友idnichengtext博友在博客里的稱呼usernametext登陸時的用戶名passwordtext登陸密碼3.表regist
37、er用戶數(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).tost
38、ring()/比較隨機數(shù) uservo=userbo.queryuserbyinfo(uservo);/檢驗用戶信息并將信息返回 if(uservo!=null)/看用戶是否存在 this.setuserpurview(uservo.getpurviewid();/設置用戶權限 this.session().setattribute(user, uservo);/將用戶信息放在session中 return success;/返回用戶主界面頁面 else return error;返回到失敗頁面elsereturn error; elsereturn error; 6.2 ajax 讀取txt
39、格式數(shù)據(jù)function ajax_function(var1,var2) var xmlhttp = null; /創(chuàng)建xmlhttprequesttry / firefox, opera 8.0+, safari 對不同瀏覽器常見不同對象xmlhttp=new xmlhttprequest(); catch (e) try / internet explorer xmlhttp=new activexobject(msxml2.xmlhttp); catch (e) try xmlhttp=new activexobject(microsoft.xmlhttp); catch (e) al
40、ert(your browser does not support ajax!); return false; xmlhttp.onreadystatechange=function() if(xmlhttp.readystate = 4 & xmlhttp.status = 200) var somediv = document.getelementbyid(somediv); somediv.innerhtml=xmlhttp.responsetext; xmlhttp.open(get,www/index.jsp?param1=+var1+m2=+var2,true); xmlhttp.
41、send(null); 6.3 系統(tǒng)架構與數(shù)據(jù)庫的連接由于我們開發(fā)時是利用mvc的設計模式,所以在此我們的數(shù)據(jù)庫連接是封存在m中的,即只要我們和m層連接上,就已經連接上數(shù)據(jù)庫了。hibernate使用數(shù)據(jù)庫和配置信息來為應用程序提供持久化服務(以及持久的對象)。我們只需在hibernate.cfg.xml中配置以下語句即可:!doctype hibernate-configuration public -/hibernate/hibernate configuration dtd 3.0/en sa jdbc:microsoft:sqlserver:/localhost:1035;databa
42、sename=webexamine org.hibernate.dialect.sqlserverdialect sqlserver2000 aaaaaaaa com.microsoft.jdbc.sqlserver.sqlserverdriver org.hibernate.dialect.hsqldialect true 其實我們在這里配置了一個數(shù)據(jù)連接,以保證系統(tǒng)的正常運行,我們需要使用proxool連接池,我們經測試,分別用proxool、tomcat jndi、hibernate自帶的連接池進行配置之后分別執(zhí)行以上的10000條數(shù)據(jù)插入和讀取,結果顯示proxool的性能要優(yōu)于tom
43、cat jndi,而hibernate自帶的就更不用提了,差很遠。依次為:39265毫秒/10000條、26013毫秒/10000條、50029毫秒/10000條。6.4數(shù)據(jù)的備份與還原 我們根據(jù)mysql數(shù)據(jù)庫提供的backup(備份)命令及restore(恢復)命令,進行數(shù)據(jù)庫的備份與還原,在連接數(shù)據(jù)庫后,我們在需要備份和還原的地方加入以下語句:backup database to disk=備份文件名 restore database from disk=備份文件名 然后發(fā)送給數(shù)據(jù)庫的管理對象進行數(shù)據(jù)還原與備份。在知道了數(shù)據(jù)庫備份與還原的接口后,用java進行具體的連接,這里采用java直連的方法,部分代碼如下:trystring user=sa;/連接sqlserver2000數(shù)據(jù)庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度購車環(huán)保補貼申請合同3篇
- 二零二五版電子商務支付平臺跨境支付合規(guī)審查合同3篇
- 二零二五年貨車駕駛員駕駛技能考核及評價合同3篇
- 二零二五版房產抵押合同變更及合同履行監(jiān)督協(xié)議6篇
- 二零二五版酒店物業(yè)管理安保保潔服務全面承包合同3篇
- 二零二五版高空作業(yè)安全協(xié)議書-高空雨棚安全檢測與維護合同3篇
- 二零二五年度空壓機租賃與能源管理優(yōu)化合同3篇
- 二零二五版人工智能企業(yè)股權整合與行業(yè)應用開發(fā)合同3篇
- 二零二五年度會議禮品定制及贈送服務合同范本3篇
- 二零二五年度特種防盜門制造與銷售承攬合同范本3篇
- 氣胸病人的護理幻燈片
- JTS-167-2-2009重力式碼頭設計與施工規(guī)范
- DBJ-T15-81-2022 建筑混凝土結構耐火設計技術規(guī)程
- GB/T 22849-2024針織T恤衫
- 山東省淄博市2023-2024學年高二上學期教學質量檢測化學試題
- 人工智能在電影與影視制作中的創(chuàng)新與效果提升
- 新生兒腸絞痛的課件
- 酒店民宿自媒體營銷策劃
- 消除母嬰傳播培訓課件
- 包裝過程質量控制
- 通用電子嘉賓禮薄
評論
0/150
提交評論