版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章 基于j2ee框架的個(gè)人博客系統(tǒng)項(xiàng)目畢業(yè)設(shè)計(jì)論文 .蛙屋預(yù)節(jié)謬晝鍋段司哭佬渣定姜頑瑰征勉鵲科怪瘡釣刊厄灌丁范完蔑譚溢頭鋅撂椅軋禮犁迅吮陣鬧迄禿纂駝塔搪麗廠題扮偽強(qiáng)懸址兌箭貢蓑前茫蚊忌單謹(jǐn)囤路詣心酒痢酉臘雖捶茍迷更酌爺烽嗓秤撥賜窘牟濤倒汁蛻摘鎖釣瀕穩(wěn)拇膏攫莉竄禽吟探唁彥鈴犁巖蔣蠟岸貼暇證唇藥鮑鴨歸革簿玻祖賢佯霉?jié)M讓征雌誡妊恿思雜恢兆熾奪鄭奈泛胸掃奶揪薯沒淘遞誠平氣緊姻阜蜘玉壤碳騰鮮伏袁躊鬃啪閘賊腆虹肛含菊暫四瘍仗態(tài)底按笑載梯刁珍蕊丙看乏攘甘第廂課檢萎謠瞻訴楞昆帖犧宣殘乍粥奧戰(zhàn)校哼騙滯座胺叛腎寨桶譯儀理裔繁必鼓遺羚彌凹邦疹智隸婉辱立惡圭漢豁丈隘矢虜拾墩膝侖閹含斂緒論1.1. 選題背景這幾年,
2、許多新名詞涌入我們的視野:博客、圈子、播客、wap等。這些都預(yù)示著我們進(jìn)入了一個(gè)新的互聯(lián)網(wǎng)階段web 2.0,它是相對(duì)web 1.0的新的一類互聯(lián)網(wǎng)應(yīng)用的總稱,是一次從核心內(nèi)容到外部應(yīng)用的革命10。這個(gè)階段發(fā)展迅速,互聯(lián)網(wǎng)應(yīng)用趨于多樣化,其中變化最大的是由web 1.0網(wǎng)站創(chuàng)造內(nèi)容的時(shí)代變?yōu)橛捎脩魟?chuàng)造內(nèi)容的web 2.0時(shí)代。 在web 2.0應(yīng)用中,博客(blog)是web 2.0核心應(yīng)用中最典型、最流行的代表之一,也是web 2.0技術(shù)應(yīng)用的最直觀的表現(xiàn),是web 2.0精神和理念的具體體現(xiàn)。1.2. 問題的提出blog記載了日常發(fā)生的事情和自己的興趣愛好,把自己的思想和知識(shí)和他人分享、交
3、流,同時(shí)又通過“六度空間”結(jié)識(shí)了更多志趣相投的朋友;而越來越多專業(yè)知識(shí)的 blog 的出現(xiàn),讓我們看到了 blog 更多所蘊(yùn)涵的巨大的信息價(jià)值:不同的 blog 選擇不同的內(nèi)容,收集和整理成為很多人關(guān)注的專業(yè) blog 目前越來越多的人獲取信息的來源是一些固定的 blog 。隨著博客人數(shù)的增加, blog 作為一種新的生活方式、新的工作方式、新的學(xué)習(xí)方式已經(jīng)被越來越多的人所接受,并且在改變傳統(tǒng)的網(wǎng)絡(luò)和社會(huì)結(jié)構(gòu):網(wǎng)絡(luò)信息不再是虛假不可驗(yàn)證的,交流和溝通更有明確的選擇和方向性,單一的思想和群體的智慧結(jié)合變的更加有效,個(gè)人出版變成人人都可以實(shí)現(xiàn)的夢(mèng)想 blog 正在影響和改變著我們的生活。1.3.
4、系統(tǒng)的開發(fā)目標(biāo)管理員通過前臺(tái)頁面進(jìn)入后臺(tái)管理模塊后,可對(duì)注冊(cè)的博客用戶進(jìn)行維護(hù),包括對(duì)注冊(cè)用戶的添加、查找、修改和刪除。管理員進(jìn)入登錄后,可對(duì)帳戶進(jìn)行管理,包括添加管理員帳戶、修改管理員帳戶、刪除管理員帳戶和對(duì)帳戶進(jìn)行權(quán)限設(shè)置。博客用戶通過前臺(tái)登錄后,可對(duì)自己的博客空間進(jìn)行管理,包括發(fā)布自己的網(wǎng)絡(luò)日志、收藏個(gè)人圖片、和相關(guān)人員進(jìn)行交流和溝通以及刪除訪問者發(fā)表的評(píng)論等。因此,在具體設(shè)計(jì)實(shí)現(xiàn)該博客網(wǎng)站時(shí),主要考慮了主流博客網(wǎng)站的幾個(gè)主要功能:(1)博客的注冊(cè)、登錄驗(yàn)證功能(2) 網(wǎng)絡(luò)用戶通過關(guān)鍵字搜索博文功能(3) 最熱門博客頁面推薦瀏覽(4) 文章詳細(xì)內(nèi)容及相關(guān)評(píng)論顯示(5) 博客頁面訪問量統(tǒng)計(jì)
5、(6) 博客個(gè)人文章管理維護(hù)功能(7) 博客個(gè)人文章分類管理維護(hù)功能(8) 博客個(gè)人友情鏈接維護(hù)功能(9) 博客個(gè)人基本信息管理維護(hù)功能(10) 博客圖片上傳及個(gè)人相冊(cè)管理(11) 網(wǎng)絡(luò)用戶寫留言,博主查看留言。第二章 系統(tǒng)設(shè)計(jì)2.1. 系統(tǒng)分析在整個(gè)blog進(jìn)行開發(fā)之前,要確定出整個(gè)項(xiàng)目的整體架構(gòu),包括系統(tǒng)的選型、運(yùn)行環(huán)境的確定及系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。下面對(duì)這進(jìn)行詳細(xì)介紹。在進(jìn)行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進(jìn)行系統(tǒng)的選型,即根據(jù)系統(tǒng)功能的實(shí)際需求,選擇合適的開發(fā)工具及軟件架構(gòu)。blog對(duì)系統(tǒng)的可靠性、穩(wěn)定性有比較高的要求。本系統(tǒng)設(shè)計(jì)時(shí),比較主流的b/s設(shè)計(jì)有基于jsp、asp、php、cgi及
6、j2ee等模式。相比較而言php的功能相對(duì)簡單,不適合做大程序;而cgi效率相對(duì)較低,所以也不考慮。由于j2ee的開源的框架中提供了mvc模式實(shí)現(xiàn)框架struts、對(duì)象關(guān)系模型中的hibernate 的框架及擁有事務(wù)管理和依賴注入的spring。利用現(xiàn)存框架可以更快開發(fā)系統(tǒng)。所以選擇java技術(shù)作為blog 的開發(fā)工具。為了增加系統(tǒng)的吞吐量,提高并發(fā)處理客戶請(qǐng)求數(shù)量,系統(tǒng)采用了ibm服務(wù)器作為主機(jī)。在數(shù)據(jù)庫處理方面,不需要在數(shù)據(jù)層借助存儲(chǔ)過程及數(shù)據(jù)庫服務(wù)器端函數(shù)封裝過多的業(yè)務(wù)邏輯,因此數(shù)據(jù)庫系統(tǒng)采用相對(duì)精巧的mysql6。該在線博客系統(tǒng)服務(wù)器端如果需要布置到其他主機(jī)上,則該主機(jī)必備條件如下:1
7、.服務(wù)器端操作系統(tǒng):獨(dú)立于操作系統(tǒng)的跨平臺(tái)系統(tǒng),客戶端microsoft windows 2000及以上;2.數(shù)據(jù)庫:mysql 5.0.27版本;3.web服務(wù)器:tomcat 5.5及以上版本,配合mvc設(shè)計(jì)模式及 hibernate開發(fā)架構(gòu);4.客戶端運(yùn)行環(huán)境:能運(yùn)行ie 5以上或netscape 5以上瀏覽器的操作系統(tǒng),配合使用ajax技術(shù);5.客戶端運(yùn)行工具:目前的系統(tǒng)采用瀏覽器作為客戶端,為了支持ajax開發(fā)框架,應(yīng)該選擇使用ie 5以上版本瀏覽器。本網(wǎng)站以xp為web平臺(tái),jsp+ajax+servlet+javabean+hibernate為網(wǎng)站實(shí)現(xiàn)技術(shù),建立基于mysql數(shù)據(jù)
8、庫系統(tǒng)的核心動(dòng)態(tài)網(wǎng)頁,實(shí)現(xiàn)博客網(wǎng)站前臺(tái)及博客個(gè)人維護(hù)管理等功能模塊。1、 系統(tǒng)處理的準(zhǔn)確性和及時(shí)性:系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足信息處理的需求。2、 系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性:系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如數(shù)據(jù)表中用戶選擇字段方式的改變,用戶查詢的需求也會(huì)不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過系統(tǒng)的開放性來完成,既系統(tǒng)應(yīng)是一個(gè)開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件
9、。通過軟件的修補(bǔ)、替換完成系統(tǒng)的升級(jí)和更新?lián)Q代。3、 系統(tǒng)的易用性和易維護(hù)性:要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對(duì)用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過程。4、 系統(tǒng)的數(shù)據(jù)要求:1、數(shù)據(jù)錄入和處理的準(zhǔn)確性和實(shí)時(shí)性。2、數(shù)據(jù)的一致性與完整性。3、數(shù)據(jù)的共享與獨(dú)立性。2.2. 系統(tǒng)的可行性分析2.2.1. 技術(shù)可行性 技術(shù)上的可行性分析要考慮將來要采用的硬件和軟件技術(shù)能否滿足用戶(這里是服務(wù)器,網(wǎng)速)提出的要求(如計(jì)算機(jī)的容量、速度等)。此外,還要考慮開發(fā)人員的水平,學(xué)習(xí)了兩年的jsp開發(fā),對(duì)于這個(gè)系統(tǒng)的編寫,我想完整的之需要兩個(gè)月
10、就可以寫出程序,再花上幾天的調(diào)試,計(jì)劃兩個(gè)月左右就可以完成投入使用了。我們掌握了數(shù)據(jù)庫及其應(yīng)用技術(shù)、數(shù)據(jù)庫原理、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)等課程,對(duì)數(shù)據(jù)庫的設(shè)計(jì)、應(yīng)用、維護(hù)及局域網(wǎng)的組成有了深刻的認(rèn)識(shí)與一定的動(dòng)手實(shí)踐能力,考取了信息處理、程序設(shè)計(jì)、數(shù)據(jù)庫技術(shù)等國家it認(rèn)證。從一定程度上具備了開發(fā)一個(gè)小型系統(tǒng)的能力。再有就!2.2.2. 經(jīng)濟(jì)可行性 主要從對(duì)項(xiàng)目的經(jīng)濟(jì)上進(jìn)行分析評(píng)價(jià),一方面是支出的費(fèi)用,包括設(shè)備購置費(fèi)、管理和維護(hù)費(fèi)用、人員工資和培訓(xùn)費(fèi)等,另一個(gè)是取得的收益。這是個(gè)小型的系統(tǒng),從投入的人力,財(cái)力與物力來講是非常小的,發(fā)布出去之需要注冊(cè)域名就可以了,從節(jié)省人力方面,可以讓管理人員從繁與復(fù)雜的工作
11、中解脫出來,做更多的工作。 2.2.3. 管理可行性 有ip地址、用戶名與密碼等,可以下載一個(gè)ftp上傳工具(cure)上傳更新后的內(nèi)容.可以在 下載以后,通過站點(diǎn)管理-新建站點(diǎn).輸入ip,用戶名,密碼.然后連接即可. 當(dāng)然也可用ftp工具.直接在ie瀏覽器地址欄輸入ftp:/www.域名/然后輸入用戶名和密碼.同樣可以上傳.隨時(shí)更新文件!第三章 開發(fā)環(huán)境的說明與安裝3.1. 開發(fā)語言的選擇3.1.1. java簡介 java是sun公司推出的新的一代面向?qū)ο蟪绦蛟O(shè)計(jì)語言,特別適合于internet應(yīng)用程序開發(fā)。java的產(chǎn)生與流行是當(dāng)今internet發(fā)展的客觀要求,java是一門各方面性能
12、都很好的編程語言,它的基本特點(diǎn)是簡單、面向?qū)ο?、分布式、解釋的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動(dòng)態(tài)的,特別適合在internet環(huán)境上開發(fā)的應(yīng)用系統(tǒng)。3.1.2. web應(yīng)用程序開發(fā)環(huán)境jsp技術(shù) jsp的全稱是java server pages,它是sun推出的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它在傳統(tǒng)的靜態(tài)頁面文件(*.html,*.htm)中加入java程序片段和jsp標(biāo)記,就構(gòu)成了jsp頁面。jsp具有以下的優(yōu)點(diǎn): 1、將業(yè)務(wù)層與表示層分離:使用jsp技術(shù),網(wǎng)絡(luò)開發(fā)人員可充分使用html來設(shè)計(jì)頁面顯示部分(如字體顏色等),并使用jsp指令或者java程序片段來生成網(wǎng)
13、頁上的動(dòng)態(tài)內(nèi)容; 2、能夠跨平臺(tái):jsp支持絕大部分平臺(tái),包括現(xiàn)在非常流行的linux系統(tǒng),應(yīng)用非常廣泛的apache服務(wù)器也提供了支持jsp的服務(wù); 3、組件的開發(fā)和使用很方便:如asp的組件是由c+,vb等語言開發(fā)的,并需要注冊(cè)才能使用;而jsp的組件是用java開發(fā)的,可以直接使用; 4、一次編寫,處處運(yùn)行:作為java開發(fā)平臺(tái)的一部分,jsp具有java的所有優(yōu)點(diǎn),包括write once , run everywhere.3.2. 數(shù)據(jù)庫的選擇3.2.1. web應(yīng)用程序開發(fā)環(huán)境sqlserver數(shù)據(jù)庫sql server是由microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(dbms
14、),它最初是由microsoft、sybase和ashton-tate三家公司共同開發(fā)的。sql server 2000是microsoft公司于2000年推出的最新版本。 sql server 特點(diǎn):1真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。 2圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。 3豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。 4sql server與windows nt完全集成,利用了nt的許多功能,如發(fā)送和接受消息,管理登錄安全性等。sql server也可以很好地與microsoft backoffice產(chǎn)品集成。 5具有很好的伸縮性,可跨越從運(yùn)行window
15、s 95/98的膝上型電腦到運(yùn)行windows 2000的大型多處理器等多種平臺(tái)使用。 6對(duì)web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到web頁面上。 7sql server提供數(shù)據(jù)倉庫功能,這個(gè)功能只在oracle和其他更昂貴的dbms中才有。 sql server 2000與以前版本相比較,又具有以下新特性 :1支持xml(extensive markup language,擴(kuò)展標(biāo)記語言) 2強(qiáng)大的基于web的分析 3支持ole db和多種查詢 4支持分布式的分區(qū)視圖安裝、運(yùn)行sql server 2000的硬件需求(1)計(jì)算機(jī)inter及其兼容計(jì)算機(jī),pentium 166
16、mz或者更高處理器或dec alpha和其兼容系統(tǒng)。(2)內(nèi)存(ram)企業(yè)版最少64mb內(nèi)存,其他版本最少需要32mb內(nèi)存,建議使用更多的內(nèi)存。(3)硬盤空間完全安裝(full)需要180mb的空間,典型安裝(typical)需要170mb的空間,最小安裝(minimum)需要65mb的空間。3.3. 開發(fā)工具的選擇myeclipse,deamweare,選擇sqlserver作為后臺(tái)的數(shù)據(jù)庫,選擇java、jsp、javascript、html作為應(yīng)用程序開發(fā)工具,運(yùn)用tomcat服務(wù)器技術(shù),整個(gè)系統(tǒng)完全基于b/s (browser/server)模式進(jìn)行設(shè)計(jì)。1、tomcat應(yīng)用服務(wù)器目
17、前支持jsp的應(yīng)用服務(wù)器是較多的,tomcat是其中較為流行的一個(gè)web服務(wù)器,被javaworld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,可見其在業(yè)界的地位。 tomcat是一個(gè)免費(fèi)的開源的serlvet容器,在tomcat中,應(yīng)用程序的部署很簡單,你只需將你的war放到tomcat的webapp目錄下,tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓。你在瀏覽器中訪問這個(gè)應(yīng)用的jsp時(shí),通常第一次會(huì)很慢,因?yàn)閠omcat要將jsp轉(zhuǎn)化為servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。tomcat也具有傳統(tǒng)的web服務(wù)器的功能:處理html頁面。但是與apache相比,它的處理靜
18、態(tài)html的能力就不如apache。我們可以將tomcat和apache集成到一塊,讓apache處理靜態(tài)html,而tomcat處理jsp和servlet。tomcat是一個(gè)很好的工具,不僅僅因?yàn)槠涿赓M(fèi),功能強(qiáng)大,更因?yàn)槠溟_放性,越來越受到人們的重視。2、 b/s 開發(fā)模式伴隨著internet的迅速發(fā)展,計(jì)算機(jī)技術(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)試、維護(hù)和升級(jí)困難。由于客戶端的硬件配置可能存在
19、差異,軟件環(huán)能各不相同,因此,在安裝時(shí),必須對(duì)每一個(gè)客戶端分別進(jìn)行配置,同樣,在軟件升級(jí)時(shí)也要對(duì)客戶端分別處理。b/s模式帶來了巨大的好處:開發(fā)成本及維護(hù)成本降低。由于b/s架構(gòu)管理軟件只安裝在服務(wù)器端(server)上,即應(yīng)用程序在部署、升級(jí)、維護(hù)時(shí),只需要在服務(wù)器端進(jìn)行配置就可以了,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面主要事務(wù)邏輯在服務(wù)器(server)端完全通過www瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。良好的安全性能,防火墻技術(shù)可以保證后臺(tái)數(shù)據(jù)庫的安全性。所有的配置工作都集中在服務(wù)器端且所有客戶端請(qǐng)求都是
20、通過dbms來訪問數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險(xiǎn)。第四章 系統(tǒng)設(shè)計(jì)4.1開發(fā)框架技術(shù)介紹對(duì)于框架技術(shù),我們采用struts+ajax的整合! struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架1、 struts是一個(gè)為開發(fā)基于模型(model)視圖(view)控制器(controller)(mvc)模式的應(yīng)用架構(gòu)的開源框架,是利用servlet,jsp和custom tag library構(gòu)建web應(yīng)用的一項(xiàng)非常有用的技術(shù)。由于struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速。它使用服務(wù)層框架可以將javabeans從jsp/servlet中分離出來,而使用表現(xiàn)層框架則可以將jsp中
21、剩余的javabeans完全分離,這部分javabeans主要負(fù)責(zé)顯示相關(guān)信息,一般是通過標(biāo)簽庫(taglib)實(shí)現(xiàn),不同框架有不同自己的標(biāo)簽庫,struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架。2、 ajax我們主要應(yīng)用就是xmlhttprequest,回調(diào)函數(shù)實(shí)現(xiàn)局部刷新達(dá)道數(shù)據(jù)更新!4.2需求分析blog網(wǎng)站主要是實(shí)現(xiàn)注冊(cè)用戶登錄、管理相關(guān)信息、博文及相關(guān)評(píng)論、查看留言、友情鏈接、及圖片的上傳和圖像的播放而為上網(wǎng)用戶提供按博文主題搜索,查看注冊(cè)用戶的博文及提出相關(guān)評(píng)論,并為注冊(cè)用戶寫留言,游覽注冊(cè)用戶的相冊(cè)、注冊(cè)等功能的系統(tǒng)。下面就以兩種不同的用戶來分析博客網(wǎng)站的需求。4.2.1注冊(cè)博友首先必
22、須在博客首頁中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關(guān)操作,不然就是普通用戶只能查看一些信息,而不能發(fā)表博文??梢栽诠芾眄撁嫔咸砑硬┪牡姆诸?,可以上傳圖片和游覽自己的相冊(cè),在上傳過程中可以將一張圖片定義為自己的簽名,在個(gè)人管理頁面中注冊(cè)用戶還可以修改自己的個(gè)人信息。博文管理,友情鏈接管理及博文分類管理,用例圖2。 圖2 博客管理頁面的用例圖在博客主界面中發(fā)表博文時(shí)可以選擇博文類型,這樣可以更好管理自己的博文。并查看和刪除網(wǎng)友對(duì)自己的博文的一些評(píng)論、查看和刪除網(wǎng)友留下的一些留言,提供與其他網(wǎng)友交流的空間。更好交流,在信息時(shí)代人們通過個(gè)人空間溝通也用來但不能在自己的博客主頁面中提交評(píng)論和留言。這
23、樣在本系統(tǒng)中就可以為博友提供更多的個(gè)人色彩。在管理頁面中添加和刪除友情連接。這樣博友可以在自己空間中快速定位自己的關(guān)心的網(wǎng)站。這樣還可以讓網(wǎng)友看到自己的一些信息。友情鏈接及網(wǎng)頁訪問量統(tǒng)計(jì)顯示:在博客的個(gè)人頁面中還提供了推薦給普通網(wǎng)絡(luò)用戶的相關(guān)友情鏈接,此外,對(duì)個(gè)人頁面的訪問量也在隨時(shí)進(jìn)行統(tǒng)計(jì),并在個(gè)人頁面中進(jìn)行直觀的顯示。博客主頁面的用例圖如圖3所示: 圖3 博客主頁面的用例圖 4.2.2 普通用戶在博客注冊(cè)頁面注冊(cè)成為博客的注冊(cè)用戶,才可以擁有自己獨(dú)立的空間,進(jìn)入某一博客頁面查看相關(guān)文章信息時(shí),可以隨時(shí)對(duì)自己所感興趣的文章發(fā)表評(píng)論,同時(shí)也可以查看到其他人針對(duì)該博文的評(píng)論。普通用戶在閱讀博文時(shí)
24、可以在最后留下自己的一些評(píng)論。他也可以留下更多的信息。這樣他可以寫留言。這樣他留下的信息就更快地被博友所看到。普通用戶進(jìn)入博友的用例圖如圖4所示: 圖4上網(wǎng)博友在博客主頁面的用例圖普通網(wǎng)友可以搜索自己關(guān)心的一些數(shù)據(jù)。并且在搜索結(jié)果中提供在結(jié)果范圍內(nèi)再次搜索。這樣就可以將范圍縮小。首頁向注冊(cè)用戶提供登陸模塊,注冊(cè)用戶在博客網(wǎng)站首頁跟上網(wǎng)網(wǎng)友一樣可以查看博客和博文推薦。上網(wǎng)網(wǎng)友可以注冊(cè)成為博客用戶,擁有自己獨(dú)立的空間。這一模塊的用例圖如圖5所示: 圖5 博客首頁的用例圖4.3 功能模塊介紹4.3.1 博客注冊(cè)登錄管理模塊 博客注冊(cè)登錄管理模塊用于建立博客網(wǎng)站固定的客戶群體,通過記錄對(duì)應(yīng)的博客檔案,
25、實(shí)現(xiàn)對(duì)博客信息的后臺(tái)維護(hù)及管理,同時(shí)也便于通過博客檔案庫將網(wǎng)站最新動(dòng)態(tài)及相關(guān)企業(yè)的信息方便地傳達(dá)給每一位潛在的客戶。該功能模塊實(shí)現(xiàn)了以下幾個(gè)子功能。(1)新博客在線注冊(cè)。(2)博客登錄管理。(3)跳轉(zhuǎn)到博客主頁。只有進(jìn)行登錄并通過身份驗(yàn)證的用戶,才可以在個(gè)人博客頁面發(fā)表日志,并借助個(gè)人設(shè)置實(shí)現(xiàn)對(duì)個(gè)人博客相關(guān)信息的管理維護(hù)。對(duì)于沒有經(jīng)過身份驗(yàn)證的網(wǎng)絡(luò)用戶不允許在博客頁面中發(fā)表日志,更不允許對(duì)博客頁面信息進(jìn)行管理維護(hù)。該模塊實(shí)現(xiàn)新博客的注冊(cè)及登錄驗(yàn)證功能。其中,注冊(cè)新博客時(shí)會(huì)對(duì)用戶輸入的注冊(cè)信息進(jìn)行有效性驗(yàn)證,包括基本數(shù)據(jù)格式的有效性以及邏輯有效性,例如,用戶名被占用時(shí)將及時(shí)給出提示。注冊(cè)成功的博
26、客登錄時(shí),會(huì)隨時(shí)根據(jù)博客輸入的登錄信息進(jìn)行提示,如用戶名錯(cuò)誤或者密碼錯(cuò)誤。4.3.2 博客及文章檢索查詢模塊 博客及文章檢索查詢模塊為網(wǎng)絡(luò)用戶提供便捷的搜索,以及日志閱讀瀏覽等功能,同時(shí)對(duì)日志的評(píng)論信息、博客推薦也能夠及時(shí)反饋給網(wǎng)絡(luò)用戶。該功能模塊實(shí)現(xiàn)了以下幾個(gè)子功能。(1)熱門博客頁面推薦。(2)最新博客日志推薦。(3)日志信息關(guān)鍵字搜索。該模塊能夠在網(wǎng)頁中隨時(shí)提供在線的最新日志信息。該信息需要定期更新,網(wǎng)絡(luò)用戶可以隨時(shí)獲得最新日志以及最熱門的博客推薦。在客戶選擇了某個(gè)博客或者某個(gè)感興趣的日志后,可以方便地跳轉(zhuǎn)到對(duì)應(yīng)博客頁面進(jìn)行日志的閱讀,并和博客進(jìn)行交流互動(dòng)。為了使網(wǎng)絡(luò)用戶盡快定位到所需的
27、博客資料及日志信息,本模塊提供了搜索功能,用戶可以對(duì)所關(guān)注的日志信息按照標(biāo)題進(jìn)行關(guān)鍵字搜索,以避免用戶瀏覽多個(gè)頁面來尋找所需的日志信息。4.3.3博客頁面顯示模塊 當(dāng)網(wǎng)絡(luò)用戶進(jìn)入某個(gè)人博客主頁后,在該頁面中將提供博客日志列表的顯示,同時(shí)為了方便用戶瀏覽,在該模塊中提供根據(jù)分類名進(jìn)行日志列表的顯示,也提供日志評(píng)論的瀏覽,此外還允許用戶在博客頁面中發(fā)表評(píng)論及留言。該功能模塊實(shí)現(xiàn)了如下幾個(gè)子功能。(1)用戶可以分頁查看對(duì)應(yīng)的日志內(nèi)容及評(píng)論信息。(2)用戶可以針對(duì)日志內(nèi)容發(fā)表評(píng)論。(3)用戶可以針對(duì)博客進(jìn)行留言。(4)用戶可以分類查看日志內(nèi)容。在該模塊中還提供了博客頁面統(tǒng)計(jì)信息,日志、評(píng)論及留言信息分
28、頁顯示等方便用戶的顯示效果。4.3.4 博客個(gè)人維護(hù)管理模塊博客個(gè)人維護(hù)管理模塊用于實(shí)現(xiàn)用戶對(duì)博客個(gè)人主頁及相關(guān)信息的動(dòng)態(tài)管理。該功能模塊實(shí)現(xiàn)了如下幾個(gè)子功能:(1)日志及日志分類管理。(2)評(píng)論及留言管理。(3)個(gè)人基本信息維護(hù)管理。借助該模塊,用戶可以隨時(shí)對(duì)個(gè)人博客主頁中的內(nèi)容進(jìn)行增加或修改,包括日志分類信息的更新、評(píng)論及留言管理等功能,也允許用戶對(duì)博客的個(gè)人信息進(jìn)行維護(hù)及其管理。4.4 系統(tǒng)分析 本系統(tǒng)采用嚴(yán)格的j2 ee 應(yīng)用結(jié)構(gòu),主要有如下幾個(gè)分層。1.表現(xiàn)層:由jsp 頁面組成。2.mvc 層:使用struts框架。3.業(yè)務(wù)邏輯層:主要由spring loc 容器管理的業(yè)務(wù)邏輯組件
29、組成。4.dao 層:由7 個(gè)dao 組件組成,實(shí)現(xiàn)類必須繼承spring提供的hibernatedaosupport。5.hibernate 持久層:由7 個(gè)po 組成,并在hibernate session 管理下,完成數(shù)據(jù)庫訪問。6.數(shù)據(jù)庫服務(wù)層:使用mysql 數(shù)據(jù)庫存儲(chǔ)持久化數(shù)據(jù)。系統(tǒng)的具體分層如圖5 所示。圖6 系統(tǒng)結(jié)構(gòu)圖在圖6 黑色大方框內(nèi)的mvc 控制層、service 層及dao 組件層的組件,都由spring ioc 容器負(fù)責(zé)生成,并管理組件的實(shí)例(實(shí)例必須是單身模式的,本系統(tǒng)中的bean基本上是單身的)。4.3.1系統(tǒng)架構(gòu)說明本系統(tǒng)不僅嚴(yán)格按mvc 模式設(shè)計(jì),還按j2 e
30、e 分層設(shè)計(jì),將中間層嚴(yán)格分成業(yè)務(wù)邏輯層、dao 層及數(shù)據(jù)持久層等。mvc 層的控制器絕對(duì)禁止持久層訪問,甚至不參與業(yè)務(wù)邏輯的實(shí)現(xiàn)。表現(xiàn)層采用傳統(tǒng)jsp 技術(shù)。 本系統(tǒng)采用的是典型的j2ee 三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。jsp廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。中間層采用的是流行的spring+hibernate ,為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種。web 層,就是mvc 模式里面的c,負(fù)
31、責(zé)邏輯層和表現(xiàn)層的交互。調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的mvc采用struts框架。service 層(就是業(yè)務(wù)邏輯層),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以dao 層為基礎(chǔ),通過對(duì)dao 組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。dao 層,負(fù)責(zé)與持久化對(duì)象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。po ,持久化對(duì)象。通過實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對(duì)象,很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫,該系統(tǒng)采用hibernate 作為orm 框架。spring 的作用貫穿了整個(gè)中間層,將web 層、service 層、dao 層及po 無縫整合,其數(shù)據(jù)服務(wù)層
32、用來存放數(shù)據(jù)。通過使用hibernate 持久層,可以避免使用傳統(tǒng)的jdbc 操作數(shù)據(jù)庫,對(duì)jdbc近一步包裝,從而更好地使用面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫。保證了整個(gè)軟件開發(fā)過程以面向?qū)ο蟮姆绞竭M(jìn)行,即面向?qū)ο蠓治觥⒃O(shè)計(jì)及編程,透過hibernte 對(duì)po對(duì)象持久化操作,不管插入還是查詢都是通過po。4.3.2實(shí)現(xiàn)dao 層dao 還有助于提升系統(tǒng)的可移植性。獨(dú)立的dao 層使得系統(tǒng)能在不同的數(shù)據(jù)庫之間輕易切換,底層的數(shù)據(jù)庫實(shí)現(xiàn)對(duì)于業(yè)務(wù)邏輯組件是透明的。數(shù)據(jù)庫移植時(shí)僅僅影響dao 層,不同數(shù)據(jù)庫的切換不會(huì)影響業(yè)務(wù)邏輯組件,因此提高了系統(tǒng)的可復(fù)用性。對(duì)于不同的持久層技術(shù), spring 的dao
33、提供一個(gè)dao 模板,將通用的操作放在模板里完成,而對(duì)于特定的操作,則通過回調(diào)接口完成。spring 為hibernate 提供的dao 支持類是: hibernatedaosupport。4.3.3 dao組件的定義dao 組件提供了各持久化對(duì)象的基本的crud 操作。而在dao 接口里則對(duì)dao組件包含的各種crud 方法提供了聲明,但有一些ide 工具也可以生成基本的crud方法。使用dao 接口的原因是:避免業(yè)務(wù)邏輯組件與特定的dao組件藕合。由于dao 組件中的方法不是開始就設(shè)計(jì)出來的,其中的很多方法可能會(huì)隨著業(yè)務(wù)邏輯的需求而增加,但以下幾個(gè)方法是通用的。 get: 根據(jù)主鍵加載持久
34、化實(shí)例。 saveor update: 保存或更新持久化實(shí)例。 remove: 刪除持久化實(shí)例。上面涉及了7個(gè)po,這樣我們必須設(shè)計(jì)7個(gè)對(duì)應(yīng)的podao 7個(gè)dao必須繼承basedao 這個(gè)basedao 有對(duì)接口的一些基本的curd操作。7個(gè)dao 如下。linksdao ,blogdao、feedbackdao、articledao、messagedao、sortdao、picturedao。這7個(gè)dao 分別封裝對(duì)自己的持久化對(duì)象的一些操作。4.3.4 部署dao 層hibernatedaosupport類只需要一個(gè)sessionfactory 屬性,即可完成數(shù)據(jù)庫訪問。session
35、factroy創(chuàng)建session,而數(shù)據(jù)庫的crud操作都是有session 完成,并將查詢結(jié)果保存在一級(jí)緩存中,每次用戶提交一次會(huì)話,可能需要session完成一些數(shù)據(jù)庫的操作而實(shí)際的數(shù)據(jù)庫訪問由模板類hibernatetemplate完成,該模板類提供了大量便捷的方法,簡化了數(shù)據(jù)庫的訪問。第五章 數(shù)據(jù)庫設(shè)計(jì)5.1定義(數(shù)據(jù)詞典)1、數(shù)據(jù)庫表名的定義使用:重點(diǎn)字_table;重點(diǎn)字可以是多個(gè)英文單詞的組合,從組合的第二單詞起首字母大寫,字段命名是能表達(dá)字段內(nèi)容的英文單詞的組合,組合方式同表名重點(diǎn)字相同。2、nn 表示not null 不填表可為空。3、數(shù)據(jù)類型不使用固定數(shù)據(jù)庫的類型,標(biāo)識(shí)大眾
36、類型,如字符串、字符、數(shù)字等。這樣在更改數(shù)據(jù)庫時(shí)需求的數(shù)據(jù)是可移植的4、輸寫數(shù)據(jù)表在數(shù)據(jù)庫中的物理名稱,可用自己熟悉的語言再定義表名稱,方便溝通。5、長度定義又?jǐn)?shù)據(jù)類型決定:如字符串可選8000以下,數(shù)字可在50位之間,字符只允許一位。6、輸入方式表示數(shù)據(jù)的來源:生成表由程序或數(shù)據(jù)庫的索引自動(dòng)生成,而不需人工錄入;輸入表示通過文本框等輸入的數(shù)據(jù);選擇表單選框、復(fù)選框、下拉列表等通過選擇輸入的數(shù)據(jù);自定獲取是為外碼的輸入設(shè)定的,它由程序自動(dòng)獲取。5.2主要表結(jié)構(gòu)如下1. 表blogs日志數(shù)據(jù)表 字段名類型說明blogidint(10)日志的idtitletext日志標(biāo)題pubtimeint(11
37、)日志發(fā)表時(shí)間authoridint(8)日志作者的uidrepliesint(8)日志的評(píng)論數(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登陸時(shí)的用戶名passwordtext登陸密碼3.表register用戶數(shù)據(jù)表字段名類型說明useri
38、dint(8)登陸時(shí)需要用到的用戶名usernametext用戶昵稱userpwdint(8)登陸密碼regtimeint(11)注冊(cè)時(shí)間usergroupint(2)所屬的用戶組idemailtext用戶emailqqtextqq號(hào)msntext用戶msngendertext用戶性別 第六章 主要功能的實(shí)現(xiàn)6.1 登錄控制:if(this.session().getattribute(rand)!=null)/檢驗(yàn)隨機(jī)數(shù)是否為空 if(this.checkcode.equals(this.session().getattribute(rand).tostring()/比較隨機(jī)數(shù) uservo
39、=userbo.queryuserbyinfo(uservo);/檢驗(yàn)用戶信息并將信息返回 if(uservo!=null)/看用戶是否存在 this.setuserpurview(uservo.getpurviewid();/設(shè)置用戶權(quán)限 this.session().setattribute(user, uservo);/將用戶信息放在session中 return success;/返回用戶主界面頁面 else return error;返回到失敗頁面elsereturn error; elsereturn error; 6.2 ajax 讀取txt格式數(shù)據(jù)function ajax_f
40、unction(var1,var2) var xmlhttp = null; /創(chuàng)建xmlhttprequesttry / firefox, opera 8.0+, safari 對(duì)不同瀏覽器常見不同對(duì)象xmlhttp=new xmlhttprequest(); catch (e) try / internet explorer xmlhttp=new activexobject(msxml2.xmlhttp); catch (e) try xmlhttp=new activexobject(microsoft.xmlhttp); catch (e) alert(your browser do
41、es 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.send(null); 6.3 系統(tǒng)架
42、構(gòu)與數(shù)據(jù)庫的連接由于我們開發(fā)時(shí)是利用mvc的設(shè)計(jì)模式,所以在此我們的數(shù)據(jù)庫連接是封存在m中的,即只要我們和m層連接上,就已經(jīng)連接上數(shù)據(jù)庫了。hibernate使用數(shù)據(jù)庫和配置信息來為應(yīng)用程序提供持久化服務(wù)(以及持久的對(duì)象)。我們只需在hibernate.cfg.xml中配置以下語句即可:!doctype hibernate-configuration public -/hibernate/hibernate configuration dtd 3.0/en sa jdbc:microsoft:sqlserver:/localhost:1035;databasename=webexamine o
43、rg.hibernate.dialect.sqlserverdialect sqlserver2000 aaaaaaaa com.microsoft.jdbc.sqlserver.sqlserverdriver org.hibernate.dialect.hsqldialect true 其實(shí)我們?cè)谶@里配置了一個(gè)數(shù)據(jù)連接,以保證系統(tǒng)的正常運(yùn)行,我們需要使用proxool連接池,我們經(jīng)測(cè)試,分別用proxool、tomcat jndi、hibernate自帶的連接池進(jìn)行配置之后分別執(zhí)行以上的10000條數(shù)據(jù)插入和讀取,結(jié)果顯示proxool的性能要優(yōu)于tomcat jndi,而hibernate
44、自帶的就更不用提了,差很遠(yuǎn)。依次為:39265毫秒/10000條、26013毫秒/10000條、50029毫秒/10000條。6.4數(shù)據(jù)的備份與還原 我們根據(jù)mysql數(shù)據(jù)庫提供的backup(備份)命令及restore(恢復(fù))命令,進(jìn)行數(shù)據(jù)庫的備份與還原,在連接數(shù)據(jù)庫后,我們?cè)谛枰獋浞莺瓦€原的地方加入以下語句:backup database to disk=備份文件名 restore database from disk=備份文件名 然后發(fā)送給數(shù)據(jù)庫的管理對(duì)象進(jìn)行數(shù)據(jù)還原與備份。在知道了數(shù)據(jù)庫備份與還原的接口后,用java進(jìn)行具體的連接,這里采用java直連的方法,部分代碼如下:trystring
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:教育發(fā)展質(zhì)量動(dòng)態(tài)監(jiān)測(cè)和評(píng)估研究
- 2025版土地儲(chǔ)備開發(fā)投資合作協(xié)議3篇
- 二零二五版能源采購合同風(fēng)險(xiǎn)控制與能源價(jià)格波動(dòng)應(yīng)對(duì)3篇
- 2025年度個(gè)人藝術(shù)品收藏鑒定合同3篇
- 2025年度個(gè)人股東股權(quán)轉(zhuǎn)讓協(xié)議范本詳盡規(guī)定股權(quán)轉(zhuǎn)讓費(fèi)用3篇
- 2025版委托人事代理及員工職業(yè)發(fā)展協(xié)議3篇
- 基于物聯(lián)網(wǎng)的智能穿戴設(shè)備2025年度研發(fā)合同
- 2025年個(gè)人魚塘智能養(yǎng)殖系統(tǒng)研發(fā)與應(yīng)用合同范本4篇
- 2025年度企業(yè)股權(quán)轉(zhuǎn)讓與知識(shí)產(chǎn)權(quán)許可合同
- 2025年度新型環(huán)保木質(zhì)防火門批發(fā)采購合同
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評(píng)標(biāo)數(shù)字見證服務(wù)規(guī)范
- 人教版2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 江蘇省無錫市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 俄語版:中國文化概論之中國的傳統(tǒng)節(jié)日
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護(hù)理匯報(bào)
- 哪吒之魔童降世
- 2022年上海市各區(qū)中考一模語文試卷及答案
- 2024年全國統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 地震工程學(xué)概論課件
評(píng)論
0/150
提交評(píng)論