版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 1 引言</b></p><p> “博客”(Blog或Weblog)一詞源于“Web Log(網(wǎng)絡(luò)日志)”的縮寫,是一種十分簡易的傻瓜化個人信息發(fā)布方式。任何人都可以像使用免費(fèi)電子郵件一樣,完成個人網(wǎng)頁的創(chuàng)建、發(fā)布和更新。博客就是開放的私人空間,可以充分利用超文本鏈接、網(wǎng)絡(luò)互動、動態(tài)更新等特點(diǎn),在網(wǎng)絡(luò)中,精選并鏈接全球互聯(lián)網(wǎng)中最有價值的信息、知識與資源;也
2、可以將個人工作過程、生活故事、思想歷程、閃現(xiàn)的靈感等及時記錄和發(fā)布,發(fā)揮個人無限的表達(dá)力;更可以以文會友,結(jié)識和匯聚朋友,進(jìn)行深度交流溝通[1]。</p><p> “博客”當(dāng)然是個大家都陌生的名詞,博客的英文名詞就是“Blog或Weblog”(指人時對應(yīng)于Blogger),是一個典型的網(wǎng)絡(luò)新事物,查閱最新的英文詞典也不可能查到。該詞來源于“Web Log(網(wǎng)絡(luò)日志)”的縮寫,特指一種特別的網(wǎng)絡(luò)個人出版形式,內(nèi)
3、容按照時間順序排列,并且不斷更新。</p><p> 博客是一種零編輯、零技術(shù)、零成本、零形式的網(wǎng)上個人出版方式。</p><p> 博客概念一般包含了三個要素(當(dāng)然,也不需要局限這些定義):</p><p> a)網(wǎng)頁主體內(nèi)容由不斷更新的、個性化的眾多日志組成。</p><p> b)按時間順序排列,而且是倒序方式,也就是最新的放在
4、最上面,最舊的放在最下面。</p><p> c)內(nèi)容可以是各種主題、各種外觀布局和各種寫作風(fēng)格,但是文章內(nèi)容以“超鏈接”作為重要的表達(dá)方式。</p><p> 因此,博客是個人性和公共性的結(jié)合體,其精髓不是主要表達(dá)個人思想,不是主要記錄個人日常經(jīng)歷;而是以個人的視角,以整個互聯(lián)網(wǎng)為視野,精選和記錄自己在互聯(lián)網(wǎng)上看到的精彩內(nèi)容,為他人提供幫助,使其具有更高的共享價值。</p>
5、;<p> 博客精神的核心并不是自娛自樂,甚至不是個人表達(dá)自由,相反,是體現(xiàn)一種利他的共享精神,為他人提供幫助。個人日記和個人網(wǎng)站主要表現(xiàn)的還是“小我”,而博客表現(xiàn)的是“大我”。也許形式上很接近,但內(nèi)在有著本質(zhì)的差異。所有優(yōu)秀博客網(wǎng)站中,真正表達(dá)作者個人的內(nèi)容非常有限,最多只是點(diǎn)綴,而不像個人網(wǎng)站那樣是核心。</p><p> 1.1 系統(tǒng)開發(fā)的背景</p><p>
6、 博客的精神是:自由表達(dá),開放寬容,個性張揚(yáng),專業(yè)精神。</p><p> 在沒有自己的博客之前,人們會經(jīng)常進(jìn)出于論壇發(fā)表貼子或者通過即時通信軟件聊天,來表達(dá)自已的想法,可是這些都是零散的和雜亂的。博客的出現(xiàn),讓人們可以不斷的把自己以前的和每天激發(fā)的一些想法或者感受整理放在自己的博客上,每次在寫文章的時候,可能又會產(chǎn)生新的想法。雖然一些想法一些思考只是皮毛,沒有什么深度,但是當(dāng)下筆去寫的時候每次都會對某個小小的
7、問題有了更多的一點(diǎn)點(diǎn)思考,再寫博客的時候就感覺到了一種滿足感,一種想法得以釋放思考得以延伸的滿足感。生活中每天的一個小小的事情都會引起人們的思考,甚至是和朋友的聊天中一個小小的火花迸發(fā)。督促自己努力、把一時的想法變成觀點(diǎn),爭取在生命中的每天里留下點(diǎn)什么,這也是人們寫博客的目的之一。這樣就能督促自己每一天不要渾渾噩噩,時光流逝無痕無聲無息,寫博客也是在自己的每一天上留下了一道淺淺的思考和劃痕。</p><p>
8、不僅如此,通過寫博客、記錄自己的想法可以幫助實(shí)現(xiàn)如下這些目的:</p><p> a)記錄生活,在自己的每一天上留下思考的劃痕。 </p><p> b)整理思路,固化知識,獲得更多更好的想法。 </p><p> c)分享,將自己的想法、經(jīng)驗(yàn)與人分享。</p><p> d)交流、提高,通過交流產(chǎn)生更多的思維火花,相互提高。 <
9、;/p><p> e)交友,互相鼓勵,一路同行。 </p><p> 如果說博客網(wǎng)站是一個舞臺,那么所有的博客都是其中的舞者,把自己有價值的真實(shí)的一面展示在網(wǎng)絡(luò)世界中,相互交流溝通; 如果博客僅僅為了寫日志,那么博客是一面鏡子,鏡子中展現(xiàn)的是真實(shí)的自己;如果博客是一個自由媒體,可以把自身感覺有價值的信息通過博客這個工具發(fā)布,與網(wǎng)友共享[2]。</p><p><
10、;b> 1.2國內(nèi)外現(xiàn)狀</b></p><p> 據(jù)不完全統(tǒng)計(jì),到今天,全世界博客總量已超過一億.其中中國的博客達(dá)到1600萬。博客數(shù)量大約6個月翻一番,2006年4月份每天新增博客7萬5千人。每天發(fā)貼120萬篇,平均一小時5萬貼。博客的影響力,早已超出了他作為個人,甚至作為自己所在行業(yè)的原有范圍。開始引起主流媒體的強(qiáng)烈關(guān)注。自2006年以后,博客迎來了它的飛速發(fā)展時期,作為專業(yè)領(lǐng)域的知識
11、傳播模式,博客成為了該領(lǐng)域最具影響力的方式之一,博客的影響力也將超越傳統(tǒng)媒體。它將成為一種全新的信息組織和傳播方式,發(fā)揮更大的作用。</p><p><b> 1.3博客發(fā)展趨勢</b></p><p> 趨勢一:博客現(xiàn)在正在形成個人的信譽(yù)機(jī)制,有了博客之后就確立了一個個人虛擬身份,簡單的來講就是個人在互聯(lián)網(wǎng)上是有名有姓的,而不再是一種匿名的行為,網(wǎng)民從流浪漢變成
12、了一個定居者。以前在互聯(lián)網(wǎng)上的各種行為都是在匿名狀態(tài)中,相互之間是不認(rèn)識的,但有了博客之后可以天天關(guān)注,而別的人也可以通過博客找到這個人。這樣隨著時間的積累就會產(chǎn)生一個新的東西,概括叫做“個人的信譽(yù)”,個人的信譽(yù)就是博客和博客之間發(fā)展各種關(guān)系的組合,這種信譽(yù)對每個人來講可能是不同的,但對每個博客來講就產(chǎn)生了新的評價機(jī)制,這個機(jī)制將是博客商業(yè)化的一個前提條件。</p><p> 趨勢二:博客越來越呈現(xiàn)出富媒體化,
13、早期的博客是以文字為主,但隨著多媒體發(fā)展博客相冊、博客圖片已經(jīng)成為博客的基本配置,而現(xiàn)在許多博客網(wǎng)站已經(jīng)提供了博客音頻和博客視頻。</p><p> 趨勢三:博客現(xiàn)在正在形成并完善精選機(jī)制,博客作為自媒體和個人媒體,產(chǎn)生的信息非常巨大。其中難免產(chǎn)生信息垃圾,隨著博客的發(fā)展,博客通過精選機(jī)制精選出大家喜聞樂見的信息,像國內(nèi)網(wǎng)摘、博客的評價系統(tǒng)等。</p><p> 1.4課題研究的意義&
14、lt;/p><p> 隨著Blog人數(shù)的增加,Blog作為一種新的生活方式、新的工作方式和新的學(xué)習(xí)方式已經(jīng)被越來越多的人所接受,并且在改變傳統(tǒng)的網(wǎng)絡(luò)和社會結(jié)構(gòu)。它使交流和溝通更有明確的選擇和方向性;單一的思想和群體的智慧結(jié)合變得更加有效;個人出版變成人人都可以實(shí)現(xiàn)的夢想。Blog正在影響和改變著我們的生活。</p><p> 本系統(tǒng)采用MVC模式設(shè)計(jì)實(shí)現(xiàn)了一個簡單的博客系統(tǒng)。MVC模式極大
15、地提高了系統(tǒng)的靈活性、復(fù)用性、開發(fā)效率、適應(yīng)性和可維護(hù)性,充分發(fā)揮了JSP、Servlet等J2EE組件的特點(diǎn)[3]。從而,使更多的人們通過文字、圖片、聲音、視頻、無線等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, share me,人人都可以博客,人人都需要博客。</p><p> 1.5 系統(tǒng)設(shè)計(jì)目標(biāo)分析</p><p> 本系統(tǒng)是用JSP實(shí)現(xiàn)的一個完全基于
16、瀏覽器的博客系統(tǒng),任何注冊個人博客的人都擁有以下功能:</p><p> a)登錄博客系統(tǒng)的后臺管理平臺。</p><p> b)更改博客賬號的基本信息。</p><p><b> c)撰寫日志。</b></p><p><b> d)日志管理。</b></p><p&g
17、t;<b> e)評論管理。</b></p><p><b> f)留言管理。</b></p><p> 博客訪問者具有以下功能:</p><p> a)瀏覽博客系統(tǒng)中的日志、留言、評論。</p><p> b)發(fā)表評論及留言。</p><p><b>
18、 c)檢索日志。</b></p><p><b> 2 基本技術(shù)方案</b></p><p> 2.1 JSP中的各種技術(shù)</p><p> 2.1.1 JSP概述</p><p> JSP即Java Server Pages,是由Sun Microsystem公司于1996年6月推出的新技術(shù),是
19、基于Java Servlet以及整個Java體系的Web開發(fā)技術(shù)[4]。JSP已經(jīng)成為開發(fā)Web動態(tài)網(wǎng)頁重要、快速和有效的工具,是全新的網(wǎng)絡(luò)服務(wù)器編程環(huán)境。JSP充分利用了Java的強(qiáng)大功能,是一種優(yōu)秀的服務(wù)器端技術(shù)。隨著Java技術(shù)的日益成熟和流行,JSP在網(wǎng)絡(luò)編程中也變得越來越重要。JSP基于強(qiáng)大的Java語言,具有極強(qiáng)的擴(kuò)展能力,良好的縮收性,以及與平臺無關(guān)的開發(fā)特性,成為構(gòu)建動態(tài)網(wǎng)站的主流技術(shù)之一,JSP有著其他技術(shù)所不具備的優(yōu)
20、勢[3]。其優(yōu)勢在于:可以將內(nèi)容的生成和顯示進(jìn)行分離、生成可重用的組件、采用標(biāo)識簡化頁面開發(fā)。JSP能提供所有Servlet的功能[5]</p><p> 2.1.2 Servlet概述</p><p> Servlet是Java編寫的服務(wù)器端程序,是由服務(wù)器端執(zhí)行和調(diào)用的Java類。Servlet是采用Java技術(shù)來實(shí)現(xiàn)CGI功能的一種技術(shù),能夠像CGI一樣動態(tài)地?cái)U(kuò)展Web服務(wù)器的功
21、能,并采用請求——響應(yīng)模式提供Web服務(wù)。Servlet和CGI一樣都是運(yùn)行在Web服務(wù)器上,用來生成Web頁面。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。其工作流程圖如圖2.1所示。</p><p> Servlet工作流程:</p><p> a)客戶端發(fā)送請求信息至服務(wù)器。</p><p> b)服務(wù)器將請求信息發(fā)送至Ser
22、vlet。</p><p> c)Servlet生成響應(yīng)內(nèi)容并將其傳給Servlet。響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求。</p><p> 圖2.1 Servlet工作流程圖</p><p> d)服務(wù)器將響應(yīng)信息返回至客戶端</p><p> 2.1.3 JavaBean概述</p><p> J
23、avaBean是Sun公司為了進(jìn)入因特網(wǎng)、企業(yè)網(wǎng)以及萬維網(wǎng)上進(jìn)行分布式計(jì)算的組件結(jié)構(gòu)入口。按照Sun公司的定義,JavaBean是一個可重復(fù)使用的軟件部件。JavaBean體系結(jié)構(gòu)是第一個全面地基于組件的標(biāo)準(zhǔn)模型之一,該組件是Java類,這些類遵循一個接口格式,以便于使方法命名、底層行為以及繼承或?qū)崿F(xiàn)的行為能夠把類看做標(biāo)準(zhǔn)的JavaBean組件的方式進(jìn)行構(gòu)造[7]。</p><p> 在Java模型中,通過Ja
24、vaBean可以無限擴(kuò)充Java程序的功能,通過JavaBean的組合可以快速生成新的應(yīng)用程序。JavaBean具有以下特點(diǎn):</p><p> a)可以實(shí)現(xiàn)代碼的重復(fù)利用。</p><p> b)易維護(hù)性、易使用性、易編寫性。</p><p> c)可以在Java的任何平臺上工作,不需要重新編譯。</p><p> d)可以在內(nèi)部網(wǎng)
25、或者網(wǎng)絡(luò)之間進(jìn)行傳輸。</p><p> e)可以以其它部件的模式進(jìn)行工作。</p><p> JavaBean在JSP程序中常用來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等,可以很好的實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺程序的分離,使得系統(tǒng)具有更好的健壯性和靈活性。</p><p> 2.2 基于B/S的WEB應(yīng)用體系結(jié)構(gòu)</p><p> 2.2.1 傳統(tǒng)的兩層體
26、系結(jié)構(gòu)</p><p> 在Web發(fā)展的初期,Web應(yīng)用主要是通過靜態(tài)頁面在Internet上發(fā)布信息。用戶通過瀏覽器向服務(wù)器發(fā)送請求,服務(wù)器接收用戶端的請求,向客戶端瀏覽器發(fā)送所請求的頁面。在這種結(jié)構(gòu)下,網(wǎng)站上的頁面是靜態(tài)的,無法根據(jù)用戶的實(shí)際使用情況做動態(tài)的變化。網(wǎng)站的信息提供者通過更新服務(wù)器上的網(wǎng)頁來向用戶提供最新的信息。用戶和瀏覽器之間只有有限的交互,而網(wǎng)站和用戶之間幾乎沒有交互。</p>
27、<p> 2.2.2 三層體系結(jié)構(gòu)</p><p> 三層體系結(jié)構(gòu)圖如圖2.2所示。</p><p> CGI,ASP,PHP等技術(shù)的出現(xiàn),使得開發(fā)動態(tài)交互式的Web應(yīng)用得以實(shí)現(xiàn)。用戶通過瀏覽器向服務(wù)器發(fā)送請求,Web服務(wù)器接收客戶端發(fā)送來的請求,對請</p><p> 圖2.2 三層體系結(jié)構(gòu)圖</p><p> 求進(jìn)
28、行分析,如果請求是靜態(tài)頁面,那么就將所請求的頁面發(fā)送到客戶端;如果請求的是動態(tài)頁面,那么就執(zhí)行此動態(tài)頁面,并將執(zhí)行結(jié)果發(fā)送給客戶端。動態(tài)頁面中的腳本程序可以和數(shù)據(jù)庫服務(wù)器進(jìn)行交互。</p><p> Web服務(wù)器可以根據(jù)用戶的請求動態(tài)更新頁面上的信息,Web信息提供者可以通過改變數(shù)據(jù)庫中的數(shù)據(jù)向用戶提供最新信息,而不需要逐個更改頁面。用戶可以通過這些動態(tài)頁面向數(shù)據(jù)庫中輸入信息,從而增強(qiáng)了用戶和服務(wù)器之間的交互性
29、。</p><p> 2.2.3 JSP網(wǎng)站開發(fā)模式</p><p> 目前,JSP技術(shù)已經(jīng)成為一種受大多數(shù)大型企業(yè)或中小型企業(yè)喜愛的動態(tài)網(wǎng)頁開發(fā)技術(shù)。越來越多的技術(shù)人員也逐步成為JSP技術(shù)的推崇者。JSP技術(shù)正是利用了Java的“一次開發(fā),處處使用”的性能,成為了網(wǎng)站開發(fā)技術(shù)人員的首選技術(shù)。當(dāng)然,JSP技術(shù)的最大優(yōu)勢在于能夠?qū)㈨撁娴谋憩F(xiàn)形式和頁面的商業(yè)邏輯分開。</p>
30、<p> JSP網(wǎng)站開發(fā)技術(shù)標(biāo)準(zhǔn)提供了兩種開發(fā)模式:一種是JSP+JavaBean開發(fā)模式;一種是JSP+Servlet+JavaBean開發(fā)模式[8,9]。</p><p> JSP+JavaBean模型圖如圖2.3所示。</p><p> 圖2.3 JSP+JavaBean模型圖</p><p> 在這種模型中,JSP頁面獨(dú)自響應(yīng)請求并將處
31、理結(jié)果返回給客戶,所有的數(shù)據(jù)通過JavaBean來處理,JSP實(shí)現(xiàn)頁面的顯示。此模型常常會導(dǎo)致頁面被嵌入大量的腳本語言或者Java代碼段,當(dāng)處理大型業(yè)務(wù)時,頁面程序?qū)⒆兊卯惓?fù)雜給開發(fā)和維護(hù)帶來困難。</p><p> JSP+Servlet+JavaBean模型圖如圖2.4所示。</p><p> 圖2.4 JSP+Servlet+JavaBean模型圖</p>&l
32、t;p> Servlet技術(shù)是一種采用Java技術(shù)來實(shí)現(xiàn)CGI功能的一種技術(shù)。Servlet是運(yùn)行在Web服務(wù)器上,用來生成Web頁面。Servlet技術(shù)非常適于服務(wù)器端的處理和編程。</p><p> 在此種開發(fā)模式中,JSP技術(shù)用來顯示頁面,該頁面中沒有任何的商業(yè)處理邏輯,通過Servlet技術(shù)來完成大量的事物處理工作。Servlet用來處理事務(wù)的請求,充當(dāng)著一個控制者的角色,并負(fù)責(zé)向客戶發(fā)送請求,
33、創(chuàng)建JSP需要的Bean和對象,根據(jù)用戶的請求行為,決定將哪個JSP頁面發(fā)送給用戶。</p><p> 從上面兩種開發(fā)模式來說:第二種模式要好些,更適合于團(tuán)隊(duì)開發(fā),速度相對較慢,但是可維護(hù)性高[6]。</p><p> 2.3 Eclipse簡介</p><p> Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提
34、供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。</p><p> Eclipse是一個開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個項(xiàng)目組成[10]。</p><p> 2.4 Tomcat簡介</p><p> 如
35、今,基于Web的應(yīng)用越來越多,傳統(tǒng)的Html已經(jīng)滿足不了如今的需求。因此需要一個交互式的Web,于是便誕生了各種Web語言。如Asp,Jsp,Php等。當(dāng)然,這些語言與傳統(tǒng)的語言有著密切的聯(lián)系,如Php基于C和C++語言,Jsp基于Java語言。Tomcat即是一個Jsp和Servlet的運(yùn)行平臺。</p><p> Tomcat是一個免費(fèi)的開源的Serlvet容器,是Apache基金會的Jakarta項(xiàng)目中的
36、一個核心項(xiàng)目,由Apache,Sun和其它一些公司及個人共同開發(fā)而成[11]。</p><p> 2.5 SQL Server簡介</p><p> Microsoft SQL Server 2000是微軟所推出的一套在Windows平臺上執(zhí)行的功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),用以作為應(yīng)用程序的數(shù)據(jù)來源,存放各種數(shù)據(jù),并可以讓用戶很容易地達(dá)成所要進(jìn)行的數(shù)據(jù)存取操作。同時,也提供了一些可
37、視化的管理工具,協(xié)助數(shù)據(jù)庫系統(tǒng)管理者更方便快速地管理及設(shè)計(jì)數(shù)據(jù)庫的內(nèi)容,以及對數(shù)據(jù)庫進(jìn)行維護(hù)。SQL Server 2000不僅可以實(shí)現(xiàn)個人數(shù)據(jù)庫的管理,更適合企業(yè)級數(shù)據(jù)庫的應(yīng)用[12,13]。</p><p> 2.6 MVC設(shè)計(jì)模式</p><p> MVC模式的基本形式圖如圖2.5所示。</p><p> 圖2.5 MVC模式的基本形式圖</p&
38、gt;<p> MVC(Model-View-Controller)模式并不是J2EE行業(yè)人士標(biāo)新立異的。MVC的核心就是要做到三級甚至多級的松散耦合,MVC模式將系統(tǒng)分為三個部分,分別是數(shù)據(jù)模型、視圖和控制器,并定義了這三個部分之間實(shí)現(xiàn)通信的一種模式,使每個部分不必</p><p> 卷入到其他部分的狀態(tài)表示和方法實(shí)現(xiàn)的細(xì)節(jié)中去。每個部分有自己的數(shù)據(jù)管理規(guī)則,各個對象之間的通信只能使用自己定義
39、的一個受限連接集合進(jìn)行。保持這種分離性通常是面向?qū)ο缶幊毯驮O(shè)計(jì)要追求的目標(biāo),讓各個對象只需專注于自己的事務(wù)。</p><p> 模型部分代表了商業(yè)數(shù)據(jù)的訪問及修改數(shù)據(jù)的操作。當(dāng)數(shù)據(jù)發(fā)生改變時,要負(fù)責(zé)通知視圖部分,并且提供視圖查詢狀態(tài)的能力。另外,還向控制部分提供應(yīng)用功能。</p><p> 視圖部分以自己的方式顯示模型的內(nèi)容。訪問模型的數(shù)據(jù),并且當(dāng)模型的數(shù)據(jù)發(fā)生變化時更新模型的顯示。視
40、圖還把從用戶那里得到的信息傳給控制部分。</p><p> 控制部分定義了應(yīng)用的行為。分發(fā)用戶請求和選擇表現(xiàn)視圖,還負(fù)責(zé)解釋用戶輸入,進(jìn)而調(diào)用模型的功能。在Web應(yīng)用中,用戶輸入包括對Web級資源的HTTP、GET和POST請求??刂撇糠指鶕?jù)用戶交互和模型的狀態(tài)選擇要顯示的視圖。一個應(yīng)用程序一般為相關(guān)的功能選擇一個控制部分[14,15]。</p><p> 3 系統(tǒng)分析與總體設(shè)計(jì)&l
41、t;/p><p> 博客信息系統(tǒng)包括:前臺信息顯示系統(tǒng)、后臺信息管理系統(tǒng)。前者是面向公眾的一個窗口,通過前臺信息顯示系統(tǒng)方便訪問者瀏覽日志、評論和留言;發(fā)表評論和留言。后者是后臺信息管理系統(tǒng),方便博客管理員發(fā)表日志;回復(fù)評論和留言;管理日志、評論、留言及個人信息 [12]。</p><p><b> 系統(tǒng)需求分析</b></p><p> 3
42、.1.1 用戶需求分析</p><p> 用例圖用來描述系統(tǒng)與參與者之間的相互作用,與用例圖相關(guān)的幾個概念:</p><p> a)角色:代表了某一事件發(fā)生的參與者,用一個小人表示。</p><p> b)用例:代表系統(tǒng)可以實(shí)現(xiàn)的功能,通常一個用例代表一組功能,實(shí)質(zhì)上規(guī)定了系統(tǒng)實(shí)現(xiàn)功能的范圍。</p><p> c)用例圖:當(dāng)角色和用
43、例發(fā)生某種關(guān)系時,就可以用一個圖將它們關(guān)聯(lián)起來,這就是用例圖。</p><p> 博客信息管理系統(tǒng)允許用戶有三種身份:博客訪問者、博客管理員及系統(tǒng)管理員。</p><p> 博客系統(tǒng)參與者中每種身份操作起來都很方便、快捷。博客訪問者無需登陸就可以瀏覽信息、發(fā)表評論或留言;博客管理員注冊后再登陸,就可以發(fā)布日志、管理個人主頁;而博客管理員的基本信息都由系統(tǒng)管理員對其統(tǒng)一管理。</p
44、><p> 博客信息管理系統(tǒng)用例圖如圖3.1所示。</p><p> 圖3.1 博客信息管理系統(tǒng)用例圖</p><p><b> 3.2 數(shù)據(jù)分析</b></p><p> 系統(tǒng)的用戶主要是博客訪問者和博客管理員,下面以博客前臺展示系統(tǒng)中的用戶查詢?nèi)罩緸槔M(jìn)行說明。該過程的數(shù)據(jù)流程圖如圖3.2所示。</p&g
45、t;<p> 圖3.2 用戶查詢?nèi)罩镜臄?shù)據(jù)流程圖</p><p> 用戶查詢?nèi)罩镜臄?shù)據(jù)流程:首先,用戶輸入需查找的關(guān)鍵字,然后提交表單數(shù)據(jù),服務(wù)器接收到關(guān)鍵字后,根據(jù)關(guān)鍵字對日志標(biāo)題進(jìn)行模糊查詢,處理后將結(jié)果以日志標(biāo)題鏈接的形式顯示給該用戶,用戶點(diǎn)擊相應(yīng)的鏈接就可以瀏覽日志內(nèi)容。 </p><p><b> 3.3 系統(tǒng)流程</b><
46、;/p><p> 根據(jù)博客信息管理系統(tǒng)的特點(diǎn),將其分為兩大模塊:前臺用戶瀏覽模塊和后臺用戶管理模塊。前臺用戶瀏覽模塊主要用于用戶瀏覽日志信息;后臺用戶管理模塊主要用于博客管理員對個人博客網(wǎng)站的管理,如日志管理、留言管理及評論管理等。</p><p> 博客系統(tǒng)平臺的前臺用戶瀏覽模塊流程圖如圖3.3所示。</p><p> 前臺用戶瀏覽模塊主要用于用戶瀏覽日志信息,
47、用戶瀏覽日志有三種瀏覽方式可以選擇:一是直接點(diǎn)擊日志標(biāo)題鏈接進(jìn)入日志顯示頁面瀏覽日志;二是點(diǎn)擊博客主題鏈接進(jìn)入該個人博客的首頁,然后在該首頁中選擇所需的日志標(biāo)題鏈接進(jìn)入日志顯示頁面瀏覽日志;三是通過首頁提供的搜索功能,搜索所需要的日志,然后在結(jié)果列表中選擇所需的日志標(biāo)題鏈接進(jìn)入日志顯示頁面瀏覽日志。瀏覽日志的同時用戶可以查看別人對該日志的評論,然后用戶也可以對該日志發(fā)表自已的評論。</p><p> 用戶進(jìn)入后
48、臺管理平臺,首先必需進(jìn)行權(quán)限驗(yàn)證,防止未授權(quán)的用戶非法登錄。若未通過驗(yàn)證,則顯示出錯提示,并跳轉(zhuǎn)到登錄界面。若通過驗(yàn)證,則進(jìn)入個人博客后臺管理平臺。用戶可以瀏覽已發(fā)表的日志,并對其進(jìn)行相應(yīng)的操作如修改日志和刪除日志;可以查看日志的評論信息并對其進(jìn)行回復(fù)或者刪除操作;可以發(fā)表新的日志;可以新建日志分類;可以瀏覽個人博客的留言信息并對其進(jìn)行相應(yīng)的操作如回復(fù)留言</p><p> 圖3.3 前臺用戶瀏覽模塊流程圖&
49、lt;/p><p> 圖3.4 后臺用戶管理模塊流程圖</p><p> 和刪除留言;還可以對個人信息進(jìn)行修改。</p><p> 博客系統(tǒng)平臺的后臺用戶管理模塊流程圖如圖3.4所示。</p><p> 3.4 功能模塊劃分</p><p> 前臺模塊功能結(jié)構(gòu)如圖3.5所示。</p><p&
50、gt; 圖3.5 博客信息系統(tǒng)前臺功能結(jié)構(gòu)圖</p><p> 后臺模塊功能結(jié)構(gòu)如圖3.6所示。</p><p> 圖3.6 博客信息系統(tǒng)后臺功能結(jié)構(gòu)圖</p><p><b> 3.5功能模塊設(shè)計(jì)</b></p><p> 博客信息管理系統(tǒng)分為面向網(wǎng)絡(luò)用戶的前臺及面向個人博客維護(hù)管理的后臺,依據(jù)博客網(wǎng)站中
51、所要實(shí)現(xiàn)的基本功能的設(shè)定,將所有功能分解為如下四個主要的功能模塊來加以實(shí)現(xiàn)。用戶以合法的用戶名及密碼登錄,系統(tǒng)即可按該登錄用戶的權(quán)限分配操作模塊。</p><p> 3.5.1博客注冊登錄管理模塊</p><p> 博客注冊登錄管理模塊用于建立博客網(wǎng)站固定的客戶群體,通過記錄對應(yīng)的博客檔案,實(shí)現(xiàn)對博客信息的后臺維護(hù)及管理,同時也便于通過博客檔案庫將網(wǎng)站最新動態(tài)及相關(guān)企業(yè)的信息方便地傳達(dá)
52、給每一位潛在的客戶。</p><p> 該功能模塊實(shí)現(xiàn)了以下幾個子功能。</p><p> a)新博客在線注冊。</p><p><b> b)博客登錄管理。</b></p><p> c)跳轉(zhuǎn)到博客主頁。</p><p> 只有進(jìn)行登錄并通過身份驗(yàn)證的用戶,才可以在個人博客頁面發(fā)表日志
53、,并借助個人設(shè)置實(shí)現(xiàn)對個人博客相關(guān)信息的管理維護(hù)。對于沒有經(jīng)過身份驗(yàn)證的網(wǎng)絡(luò)用戶不允許在博客頁面中發(fā)表日志,更不允許對博客頁面信息進(jìn)行管理維護(hù)。</p><p> 該模塊實(shí)現(xiàn)新博客的注冊及登錄驗(yàn)證功能。其中,注冊新博客時會對用戶輸入的注冊信息進(jìn)行有效性驗(yàn)證,包括基本數(shù)據(jù)格式的有效性以及邏輯有效性,例如,用戶名被占用時將及時給出提示。注冊成功的博客登錄時,會隨時根據(jù)博客輸入的登錄信息進(jìn)行提示,如用戶名錯誤或者密碼
54、錯誤。</p><p> 3.5.2博客及文章檢索查詢模塊</p><p> 博客及文章檢索查詢模塊為網(wǎng)絡(luò)用戶提供便捷的搜索,以及日志閱讀瀏覽等功能,同時對日志的評論信息、博客推薦也能夠及時反饋給網(wǎng)絡(luò)用戶。</p><p> 該功能模塊實(shí)現(xiàn)了以下幾個子功能。</p><p> a)熱門博客頁面推薦。</p><p&
55、gt; b)最新博客日志推薦。</p><p> c)日志信息關(guān)鍵字搜索。</p><p> 該模塊能夠在網(wǎng)頁中隨時提供在線的最新日志信息。該信息需要定期更新,網(wǎng)絡(luò)用戶可以隨時獲得最新日志以及最熱門的博客推薦。在客戶選擇了某個博客或者某個感興趣的日志后,可以方便地跳轉(zhuǎn)到對應(yīng)博客頁面進(jìn)行日志的閱讀,并和博客進(jìn)行交流互動。</p><p> 為了使網(wǎng)絡(luò)用戶盡快定
56、位到所需的博客資料及日志信息,本模塊提供了搜索功能,用戶可以對所關(guān)注的日志信息按照標(biāo)題進(jìn)行關(guān)鍵字搜索,以避免用戶瀏覽多個頁面來尋找所需的日志信息。</p><p> 3.5.3博客頁面顯示模塊</p><p> 當(dāng)網(wǎng)絡(luò)用戶進(jìn)入某個人博客主頁后,在該頁面中將提供博客日志列表的顯示,同時為了方便用戶瀏覽,在該模塊中提供根據(jù)分類名進(jìn)行日志列表的顯示,也提供日志評論的瀏覽,此外還允許用戶在博客
57、頁面中發(fā)表評論及留言。</p><p> 該功能模塊實(shí)現(xiàn)了如下幾個子功能。</p><p> a)用戶可以分頁查看對應(yīng)的日志內(nèi)容及評論信息。</p><p> b)用戶可以針對日志內(nèi)容發(fā)表評論。</p><p> c)用戶可以針對博客進(jìn)行留言。</p><p> d)用戶可以分類查看日志內(nèi)容。</p&g
58、t;<p> 在該模塊中還提供了博客頁面統(tǒng)計(jì)信息,日志、評論及留言信息分頁顯示等方便用戶的顯示效果。</p><p> 3.5.4博客個人管理維護(hù)模塊</p><p> 博客個人維護(hù)管理模塊用于實(shí)現(xiàn)用戶對博客個人主頁及相關(guān)信息的動態(tài)管理。</p><p> 該功能模塊實(shí)現(xiàn)了如下幾個子功能:</p><p> a)日志及
59、日志分類管理。</p><p> b)評論及留言管理。</p><p> c)個人基本信息維護(hù)管理。</p><p> 借助該模塊,用戶可以隨時對個人博客主頁中的內(nèi)容進(jìn)行增加或修改,包括日志分類信息的更新、評論及留言管理等功能,也允許用戶對博客的個人信息進(jìn)行維護(hù)及其管理。</p><p><b> 4 系統(tǒng)分析設(shè)計(jì)<
60、/b></p><p><b> 4.1數(shù)據(jù)庫分析</b></p><p> 數(shù)據(jù)庫是當(dāng)前應(yīng)用軟件系統(tǒng)的重要組成部分,如何使基于數(shù)據(jù)庫的應(yīng)用系統(tǒng)安全、可靠、高效的運(yùn)行一直是軟件開發(fā)技術(shù)研究的難題。所以本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)基于以下幾點(diǎn)來考慮:</p><p> a)數(shù)據(jù)庫規(guī)范化與非規(guī)范化的考慮。</p><p>
61、 b)數(shù)據(jù)查詢優(yōu)化與索引的建立。</p><p> c)存儲過程與視圖。</p><p> 4.1.1數(shù)據(jù)庫設(shè)計(jì)E-R圖</p><p> 為了把用戶的數(shù)據(jù)要求清晰明確地表達(dá)出來,通常要建立一個概念性的數(shù)據(jù)模型。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點(diǎn)來對數(shù)據(jù)和信息建模。描述了從用戶角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實(shí)環(huán)境。</p>
62、<p> 最常用的表示概念性數(shù)據(jù)模型的方法,是實(shí)體—聯(lián)系方法(Entity—Relationship Approach)。這種方法用ER圖描述現(xiàn)實(shí)世界中的實(shí)體,而不涉及這些實(shí)體在系統(tǒng)中的實(shí)現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱為ER模型。ER模型中包含“實(shí)體”,“聯(lián)系”和“屬性”。</p><p> 博客信息管理系統(tǒng)涉及的實(shí)體包括:</p><p> a)用戶:用戶I
63、D、用戶名稱、用戶密碼、博客主題、說明、E-mail、注冊日期、發(fā)表日志數(shù)。 </p><p> b)類別:類別編號、類別名、類別描述、用戶ID。</p><p> c)日志:日志編號、日志標(biāo)題、日志內(nèi)容、類別編號、發(fā)表日期、最后修改日期、用戶ID、瀏覽次數(shù)、評論數(shù)。</p><p> d)評論:評論編號、評論標(biāo)題、評論內(nèi)容、發(fā)表日期、最后回復(fù)日期、評論人、日
64、志編號。</p><p> e)留言:留言編號、留言標(biāo)題、留言內(nèi)容、發(fā)表日期、最后回復(fù)日期、留言人、用戶ID。</p><p> 綜合本系統(tǒng)各子模塊要實(shí)現(xiàn)的功能,通過前面對博客信息系統(tǒng)數(shù)據(jù)的分析可以得到:用戶表、類別表、日志表、日志評論表、留言表的數(shù)據(jù)庫概念模型(E-R圖)。</p><p> 用戶E-R圖如圖4.1所示。</p><p&g
65、t; 圖4.1 用戶E-R圖</p><p> 日志類別E-R圖如圖4.2所示。</p><p> 圖4.2 日志類別E-R圖</p><p> 日志E-R圖如圖4.3所示。</p><p> 圖4.3 日志E-R圖</p><p> 日志評論E-R圖如圖4.4所示。</p><p&
66、gt; 圖4.4 日志評論E-R圖</p><p> 留言E-R圖如圖4.5所示。</p><p> 圖4.5 留言E-R圖</p><p> 4.2 系統(tǒng)數(shù)據(jù)表設(shè)計(jì)</p><p> a)用戶表,此表主要用于保存用戶的基本信息。其結(jié)構(gòu)如表4.1所示。</p><p><b> 表4.1 用戶
67、表</b></p><p> b)日志表,此表主要用于保存日志的基本信息。其結(jié)構(gòu)如表4.2所示。 </p><p><b> 表4.2 日志表</b></p><p> c)日志評論表,此表主要用于保存日志評論的基本信息。其結(jié)構(gòu)如表4.3所示。</p><p> 表4.3 日志評論表</p>
68、;<p> d)留言表,此表主要用于保存留言的基本信息。其結(jié)構(gòu)如表4.4所示。 </p><p><b> 表4.4 留言表</b></p><p> e)類別表,此表用于保存日志類別的基本信息。其結(jié)構(gòu)如表4.5所示。</p><p><b> 表4.5 類別表</b></p><
69、p><b> 4.3數(shù)據(jù)連接</b></p><p> 目前流行的數(shù)據(jù)庫連接技術(shù)主要有:JDBC-ODBC橋、JDBC和數(shù)據(jù)連接池技術(shù)。該系統(tǒng)采用數(shù)據(jù)連接池技術(shù),使用連接池的優(yōu)點(diǎn)主要體現(xiàn)在兩個方面:對數(shù)據(jù)庫的連接統(tǒng)一進(jìn)行配置、管理、監(jiān)控,以及對數(shù)據(jù)庫連接池的參數(shù)進(jìn)行優(yōu)化調(diào)整,同時對應(yīng)用程序中沒有關(guān)閉或其他原因造成沒有關(guān)閉的數(shù)據(jù)庫連接由連接池統(tǒng)一進(jìn)行管理。便于程序的移植和后端數(shù)據(jù)庫的
70、切換,因?yàn)樵趹?yīng)用中通過統(tǒng)一的JNDI獲得數(shù)據(jù)庫的連接,而具體連接的是哪一臺機(jī)器上的數(shù)據(jù)庫與程序無關(guān)。</p><p> 數(shù)據(jù)庫連接池技術(shù)的思想非常簡單,將數(shù)據(jù)庫連接作為對象存儲在一個Vector對象中,一旦數(shù)據(jù)庫連接建立后,不同的數(shù)據(jù)庫訪問請求就可以共享這些連接。這樣,通過復(fù)用這些已經(jīng)建立的數(shù)據(jù)庫連接,可以克服上述缺點(diǎn),極大地節(jié)省系統(tǒng)資源和時間。</p><p> 數(shù)據(jù)庫連接池的主要操
71、作如下:</p><p> a)建立數(shù)據(jù)庫連接池對象(服務(wù)器啟動)。</p><p> b)按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫連接(即:空閑連接數(shù))。</p><p> c)對于一個數(shù)據(jù)庫訪問請求,直接從連接池中得到一個連接。如果數(shù)據(jù)庫連接池對象中沒有空閑的連接,且連接數(shù)沒有達(dá)到最大(即:最大活躍連接數(shù)),創(chuàng)建一個新的數(shù)據(jù)庫連接。</p>&
72、lt;p><b> d)存取數(shù)據(jù)庫。</b></p><p> e)關(guān)閉數(shù)據(jù)庫,釋放所有數(shù)據(jù)庫連接(此時的關(guān)閉數(shù)據(jù)庫連接,并非真正關(guān)閉,而是將其放入空閑隊(duì)列中。如實(shí)際空閑連接數(shù)大于初始空閑連接數(shù)則釋放連接)。</p><p> f)釋放數(shù)據(jù)庫連接池對象(服務(wù)器停止、維護(hù)期間,釋放數(shù)據(jù)庫連接池對象,并釋放所有連接)。</p><p>
73、 5 系統(tǒng)功能的具體實(shí)現(xiàn)</p><p><b> 5.1系統(tǒng)的主窗口</b></p><p> 系統(tǒng)的界面按照常規(guī)的WEB界面進(jìn)行設(shè)計(jì),設(shè)計(jì)的原則是界面友好,易于操作,容易上手,盡可能的貼切用戶實(shí)際。</p><p> 所有的網(wǎng)絡(luò)用戶都可以進(jìn)入該首頁進(jìn)行登錄、注冊、瀏覽等相關(guān)的操作。在頁面的上方是博客系統(tǒng)的導(dǎo)航列表,圖中顯示的導(dǎo)航條
74、包括登錄、注冊、博客隨筆以及站務(wù)公告。在頁面的左側(cè)用戶可以根據(jù)隨筆標(biāo)題進(jìn)行搜索;搜索的下方是系統(tǒng)對博客、隨筆、文章及評論的統(tǒng)計(jì)信息。最新文章則顯示在博客首頁的主要中心位置上。</p><p> 博客系統(tǒng)首頁圖如圖5.1所示。</p><p> 圖5.1 博客系統(tǒng)首頁圖</p><p> 所有的網(wǎng)絡(luò)用戶都可以進(jìn)入某個人的博客主頁進(jìn)行瀏覽、留言等相關(guān)的操作。在后
75、臺管理頁面的上方分別顯示博客首頁、隨筆、日志、鏈接、相冊、帳戶修改、密碼修改等表單。在這里博客用戶經(jīng)過身份認(rèn)證進(jìn)入,可以對自己的日志或者隨筆進(jìn)行刪除、添加、分類等管理。同時可以修改自己的用戶名和密碼。</p><p> 博客后臺管理界面圖如圖5.2所示。</p><p> 圖5.2 博客后臺管理界面圖</p><p> 5.2公共核心類的設(shè)計(jì)</p&g
76、t;<p> 5.2.1數(shù)據(jù)庫相關(guān)</p><p> 訪問數(shù)據(jù)庫相關(guān)類如下:</p><p> a)獲取數(shù)據(jù)源,其代碼如下:</p><p> public static Connection getConnection(){</p><p><b> try {</b></p>&
77、lt;p> Context ctx=(Context)new InitialContext().lookup(Contants.ENV);</p><p> DataSource ds=(DataSource)ctx.lookup(Constants.JDBC);</p><p> getConnection()方法:該方法通過Context類提供的lookup()方法查找數(shù)據(jù)
78、源,從而獲得jdbc/blog數(shù)據(jù)源的引用,得到DataSource對象的引用后,就可以通過DataSource的getConnection()方法獲得數(shù)據(jù)庫連接對象。</p><p> b)連接數(shù)據(jù)庫和操作數(shù)據(jù)庫;代碼如下:</p><p> // 構(gòu)造數(shù)據(jù)庫的連接和訪問類</p><p> public DBConnect() throws Excepti
79、on {</p><p> // 獲得數(shù)據(jù)庫連接對象</p><p> conn=DB.getConnection();</p><p> // 創(chuàng)建一個JDBC聲明</p><p> stmt = conn.createStatement();</p><p> // 預(yù)設(shè)SQL語句</p>
80、<p> public void prepareStatement(String sql) throws SQLException {</p><p> prepstmt = conn.prepareStatement(sql);</p><p><b> }</b></p><p> // 設(shè)置索引值位置的對應(yīng)值</p
81、><p> public void setString(int index, String value) throws SQLException {</p><p> prepstmt.setString(index, value);</p><p><b> }</b></p><p> public void s
82、etInt(int index, int value) throws SQLException {</p><p> prepstmt.setInt(index, value);</p><p><b> }</b></p><p> // 執(zhí)行SQL語句并返回字段集</p><p> public Result
83、Set executeQuery() throws SQLException {</p><p> if (prepstmt != null) {</p><p> return prepstmt.executeQuery();</p><p><b> } else</b></p><p> return nu
84、ll;</p><p><b> }</b></p><p> DBConnect()方法:該方法主要負(fù)責(zé)獲得數(shù)據(jù)庫連接對象。</p><p> prepareStatement(String sql)方法:該方法主要完成預(yù)設(shè)SQL語句,只有一個用來接收SQL語句的參數(shù),如果SQL語句有誤將拋出異常。</p><p&g
85、t; setString(int index, String value)方法:該方法用于設(shè)置預(yù)設(shè)SQL語句中的相應(yīng)字段值,index表示索引位置,value表示需設(shè)置字符串類型的值。</p><p> setInt(int index, int value)方法:該方法用于預(yù)設(shè)SQL語句中的相應(yīng)字段值,index表示索引位置,value表示需設(shè)置整型類型的值。</p><p> e
86、xecuteQuery()方法:該方法用于執(zhí)行預(yù)設(shè)的SQL語句。</p><p> 5.2.2編寫JavaBean類</p><p> 為每一個數(shù)據(jù)庫表建一個JavaBean類,完成對該表字段的獲取和設(shè)置。</p><p> 博客信息管理系統(tǒng)所用的JavaBean類列表如表5.1所示。</p><p> 表5.1 JavaBean類列
87、表</p><p> Feedback類的代碼如下:</p><p> public class Feedback {</p><p> // 屬性,對應(yīng)數(shù)據(jù)表中的字段名</p><p> private int feedbackid;</p><p> private String title;</p
88、><p> // 字段的訪問和設(shè)置方法</p><p> public int getFeedbackid() {</p><p> return feedbackid;</p><p><b> }</b></p><p> public void setFeedbackid (int f
89、eedbackid) {</p><p> this. feedbackid = feedbackid;</p><p><b> }</b></p><p> Feedback類:通過getFeedbackid()方法獲取feedbackid屬性的值,通過setFeedbackid (int feedbackid)方法設(shè)置feedbac
90、kid屬性的值。</p><p> 5.2.3管理類設(shè)計(jì)</p><p> 上面每一個JavaBean類都有一個相對應(yīng)的管理類,是在JavaBean類及數(shù)據(jù)庫相關(guān)類的基礎(chǔ)上完成對數(shù)據(jù)庫表的訪問、更新、統(tǒng)計(jì)操作。</p><p> 博客信息管理系統(tǒng)所用的管理類列表如表5.2所示。</p><p> 表5.2 管理類列表</p&g
91、t;<p> FeedbackMgr類的部分代碼如下:</p><p> public class FeedbackMgr {</p><p><b> /*</b></p><p><b> * 添加評論</b></p><p><b> */</b>
92、</p><p> public void add(Feedback feedback){</p><p> DBConnect dbc = null;</p><p> ResultSet rs = null;</p><p><b> try {</b></p><p> // 新建
93、數(shù)據(jù)庫連接和訪問對象</p><p> dbc = new DBConnect();</p><p> // 預(yù)設(shè)sql語句</p><p> dbc.prepareStatement("INSERT INTO </p><p> feedback (title,content,publishtime,lastmodifyt
94、ime,username,articleid)</p><p> VALUES ( ?,?,?,?,?,?)");</p><p><b> // 設(shè)置對應(yīng)值</b></p><p> dbc.setString(1, feedback.getTitle());</p><p> dbc.setStri
95、ng(2, feedback.getContent());</p><p> dbc.setDate(3, new java.sql.Date(new java.util.Date().getTime()));</p><p> dbc.setDate(4, new java.sql.Date(new java.util.Date().getTime()));</p>&
96、lt;p> dbc.setString(5, feedback.getUsername());</p><p> dbc.setInt(6, feedback.getArticleid());</p><p> // 執(zhí)行該更新語句</p><p> dbc.executeUpdate();</p><p><b>
97、 /*</b></p><p> * 查詢所有評論(按最后修改時間)</p><p><b> */</b></p><p> public Collection getAllByLastModifyTime() {</p><p> DBConnect dbc = null;</p>
98、<p> Collection c = new ArrayList();</p><p> ResultSet rs = null;</p><p><b> try {</b></p><p> // 新建數(shù)據(jù)庫連接和訪問對象</p><p> dbc = new DBConnect();</
99、p><p> // 執(zhí)行SQL語句,返回字段集</p><p> rs=dbc.executeQuery("SELECT * FROM feedback order </p><p> by lastmodifytime desc");</p><p> Feedback feedback = null;</p&
100、gt;<p> while (rs.next()) {</p><p><b> // 新建評論對象</b></p><p> feedback = new Feedback();</p><p> // 設(shè)置評論對象相關(guān)的屬性</p><p> feedback.setFeedbackid(rs
101、.getInt("feedbackid"));</p><p> feedback.setTitle(rs.getString("title"));</p><p> feedback.setContent(rs.getString("content"));</p><p> feedback.set
102、Strpublishtime(rs.getString("publishtime"));</p><p> feedback.setStrlastmodifytime(rs.getString("lastmodifytime"));</p><p> feedback.setUsername(rs.getString("username
103、"));</p><p> feedback.setArticleid(rs.getInt("articleid"));</p><p> // 將該評論對象存入集合對象中</p><p> c.add(feedback);</p><p> // 將該評論對象置為null</p><
104、p> feedback = null;</p><p> // 如果結(jié)果集不會空,則循環(huán)添加該評論對象</p><p><b> }</b></p><p><b> }</b></p><p> FeedbackMgr類:封裝了對評論表的所有操作,包括添加評論、回復(fù)評論、刪除評論、
105、查詢某日志的所有評論(按最后修改時間排序)和查詢某用戶的所有評論(按最后修改時間排序)等。</p><p> 5.3系統(tǒng)主要功能模塊詳述</p><p><b> 5.3.1登錄模塊</b></p><p> 當(dāng)用戶需發(fā)表新日志或者是對博客進(jìn)行管理時,就必須先進(jìn)行登錄驗(yàn)證操作,然后進(jìn)入博客系統(tǒng)后臺。用戶登錄界面圖如圖5.3所示。</
106、p><p> 5.3.2日志管理模塊</p><p> 日志管理顯示模塊列出了日志編號、日志標(biāo)題以及相應(yīng)的操作:編輯日志和刪除日志。根據(jù)選擇的分類顯示當(dāng)前分類下的日志列表。當(dāng)然,對日志進(jìn)行操作的前提條件是當(dāng)前登錄用戶具備相應(yīng)的管理權(quán)限。</p><p> 日志顯示界面圖如圖5.4所示。</p><p> 圖5.3 用戶登錄界面圖<
107、/p><p> 圖5.4 日志顯示界面圖</p><p> 當(dāng)用戶需要添加新的日志時,可單擊日志管理顯示界面中的添加日志鏈接,進(jìn)入添加新日志的界面。在日志標(biāo)題、內(nèi)容輸入域內(nèi)輸入相應(yīng)的文字,以及選擇分類后,單擊“確定”按鈕進(jìn)行表單提交,完成添加新日志的操作[14]。</p><p> 5.3.3撰寫日志模塊</p><p> 撰寫日志界面
108、圖如圖5.5所示。</p><p> 5.3.4刪除日志模塊</p><p> 如果需要刪除已發(fā)表的日志,可單擊日志管理顯示界面中的刪除日志鏈接,將彈出刪除日志確認(rèn)對話框圖如圖5.6所示。</p><p> 圖5.5 撰寫日志界面圖</p><p> 圖5.6 刪除日志確認(rèn)對話框圖</p><p> 再次確認(rèn)
109、用戶是否真的要進(jìn)行該日志的刪除操作,而不是誤操作。點(diǎn)擊確定按鈕完成日志刪除操作,點(diǎn)擊取消按鈕取消該刪除操作。</p><p> 完成日志刪除操作的核心代碼如下:</p><p><b> try{</b></p><p> conn=DB.getConnetion();</p><p> //禁止自動提交,設(shè)置回
110、滾點(diǎn)</p><p> conn.setAutoCommit(false);</p><p> stmt=conn.createStatement();</p><p> //刪除該日志的所有評論</p><p> stmt.prepareStatement(“delete from feedback where articleid=
111、?”);</p><p> stmt.setInt(1,articleid);</p><p> stmt.executeUpdate();</p><p><b> //刪除該日志</b></p><p> stmt.prepareStatement(“delete from article where art
112、icleid=?”);</p><p> stmt.setInt(1,articleid);</p><p> stmt.executeUpdate();</p><p> conn.commit(); //事務(wù)提交</p><p><b> }</b></p><p> catch(E
113、xception ex){</p><p> ex.printStackTrace();</p><p><b> try{</b></p><p> conn.rollback(); //操作不成功則回滾</p><p><b> }</b></p><p> c
114、atrch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> finally{</b></p><p>&
115、lt;b> try{</b></p><p> stmt.close();</p><p> conn.close();</p><p> }catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</
116、b></p><p><b> }</b></p><p> 由于每一篇日志允許用戶進(jìn)行評論,日志可能有相應(yīng)的日志評論,在進(jìn)行日志刪除操作時,得先刪除該日志的所有評論,然后刪除該日志。為了保持?jǐn)?shù)據(jù)庫中的數(shù)據(jù)一致性,本系統(tǒng)采用事務(wù)來完成該刪除操作。在數(shù)據(jù)庫操作中,一項(xiàng)事務(wù)是指由一條或多條數(shù)據(jù)庫更新的SQL語句所組成的一個不可分割的工作單元。只有當(dāng)事務(wù)中所有操作
117、都正常完成,整個事務(wù)才能被提交到數(shù)據(jù)庫;如果有一項(xiàng)操作沒有完成,就必須撤銷整個事務(wù)。</p><p> 5.3.5修改帳戶模塊</p><p> 修改帳戶界面圖如圖5.7所示</p><p> 圖5.7 修改帳戶界面圖</p><p> 博客用戶可以依照自己的需求在帳戶修改信息這個模塊對自己的帳號、博客名稱等進(jìn)行修改。</p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---個人博客系統(tǒng)設(shè)計(jì)
- 個人博客系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 個人博客系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 個人博客系統(tǒng)畢業(yè)設(shè)計(jì)論文 (2)
- jsp個人博客系統(tǒng)-畢業(yè)設(shè)計(jì)論文
- 個人博客系統(tǒng)項(xiàng)目畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)---個人博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 個人博客網(wǎng)站畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----個人博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---個人博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- asp.net個人博客系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 博客系統(tǒng)畢業(yè)設(shè)計(jì)論文
- jsp個人博客系統(tǒng)畢業(yè)設(shè)計(jì)說明書
- 畢業(yè)設(shè)計(jì)---個人博客的設(shè)計(jì)與實(shí)現(xiàn)
- php畢業(yè)設(shè)計(jì)--基于php的個人博客系統(tǒng)的實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--個人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)(論文)博客網(wǎng)站系統(tǒng)
- 個人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- node.js博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 個人博客系統(tǒng)畢業(yè)論文--博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
評論
0/150
提交評論