版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、博客信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 摘 要 博客信息管理系統(tǒng)致力于為廣大用戶(hù)提供優(yōu)質(zhì)的互動(dòng)交流平臺(tái),提高網(wǎng)站的知名 度和訪(fǎng)問(wèn)量,從而獲得為企業(yè)提供更多產(chǎn)品介紹及展示的機(jī)會(huì),提升自己網(wǎng)站的價(jià)值。 為了滿(mǎn)足博客信息管理系統(tǒng)的要求,實(shí)現(xiàn)系統(tǒng)靜態(tài)與動(dòng)態(tài)頁(yè)面的相互分離,系統(tǒng)采用 JSP+JavaBean+Servlet 和 SQL Server2000 數(shù)據(jù)庫(kù)相結(jié)合的開(kāi)發(fā)模式。 論文首先論述了系統(tǒng)的開(kāi)發(fā)背景和設(shè)計(jì)目標(biāo),并對(duì)系統(tǒng)開(kāi)發(fā)所采用的技術(shù)進(jìn)行相 應(yīng)的簡(jiǎn)單介紹。在系統(tǒng)分析中,對(duì)系統(tǒng)的模型進(jìn)行簡(jiǎn)單分析,明確系統(tǒng)的操作流程, 并對(duì)系統(tǒng)進(jìn)行可行性分析,確定在目前的條件下,開(kāi)發(fā)博客信息管理系統(tǒng)是可行的。 在需求分析
2、結(jié)果的基礎(chǔ)上,對(duì)系統(tǒng)的功能模塊進(jìn)行劃分。接著對(duì)系統(tǒng)中的數(shù)據(jù)庫(kù)進(jìn)行 模型設(shè)計(jì),包括數(shù)據(jù)流圖、實(shí)體聯(lián)系圖及數(shù)據(jù)表結(jié)構(gòu)。在系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,確定 系統(tǒng)的開(kāi)發(fā)思想以及開(kāi)發(fā)環(huán)境,并對(duì)系統(tǒng)中的 JavaBean 和 Servlet 代碼進(jìn)行設(shè)計(jì)。 最后給出了系統(tǒng)中模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),并對(duì)系統(tǒng)模塊涉及到的關(guān)鍵源代碼進(jìn)行了 詳細(xì)的分析。 經(jīng)過(guò)調(diào)試運(yùn)行后表明,系統(tǒng)可以滿(mǎn)足用戶(hù)創(chuàng)建個(gè)人博客的各項(xiàng)要求。 關(guān)鍵詞:MVC,設(shè)計(jì)模式,知識(shí)共享,博客信息管理系統(tǒng) ABSTRACT The blog information management system is concentrates on high-qualit
3、y interactive exchanges platform for a large number of users, increasing the visits and making the website more and more famous, thereby can acquiring for the opportunity that business enterprise providing more introductions and shows of products, promoting the value of the website.Satisfy for the f
4、unctions of blog information management system, achieving the systems static page separate with dynamic page mutually, using JSP+ JavaBean+ Servlet with the mode of development that the database of SQL Server2000 combine together. The paper discusses the background of development of the system and t
5、he design of the target first, and introduces the tecknique which used to develop simply.In the analyse of system, proceeded the simple analysis to the model of the system, made sure the operation process of the system, proceed the analyse to the system, ensure that under the current term, developin
6、g blog information management system is feasible. At the foundation of requirement with the analyse result, proceeding the providing of the function module of the system. Follow, designing the database model, including the data flow diagram, entity relation diagram and data tables. during the design
7、 and realization of the system, making sure the development thought of the system and install the environment of development,at last show the design details with realize finally an a key for of detailed design with realization, and analyzed the program which relate to the system module. After debugg
8、ing and running ,it shows that the system can satisfy with users to create personal blog. Keywords: MVC,Design Patterns,Knowledge sharing,The Blog Information Management System 目 錄 第 1 章 緒論.1 1.1 博客信息系統(tǒng)概述.1 1.2 博客發(fā)展趨勢(shì).2 1.3 系統(tǒng)開(kāi)發(fā)的背景.2 1.4 技術(shù)路線(xiàn).3 1.5 系統(tǒng)設(shè)計(jì)目標(biāo)分析.3 第 2 章 基本技術(shù)方案.4 2.1 JSP 中的各種技術(shù).4 概述.4 概述.
9、4 概述.5 2.2 基于 B/S 的 WEB 應(yīng)用體系結(jié)構(gòu).5 傳統(tǒng)的兩層體系結(jié)構(gòu).5 三層體系結(jié)構(gòu).6 網(wǎng)站開(kāi)發(fā)模式.6 2.3 ECLIPSE簡(jiǎn)介.7 2.4 TOMCAT簡(jiǎn)介 .7 2.5 SQL SERVER簡(jiǎn)介.8 2.6 MVC 設(shè)計(jì)模式.8 第 3 章 系統(tǒng)分析與總體設(shè)計(jì).10 3.1 系統(tǒng)需求分析.10 用戶(hù)需求分析.10 3.2 數(shù)據(jù)分析.11 3.3 系統(tǒng)流程.11 3.4 功能模塊劃分.14 3.5 功能模塊介紹.15 博客注冊(cè)登錄管理模塊.15 博客及文章檢索查詢(xún)模塊.15 博客頁(yè)面顯示模塊.16 博客個(gè)人維護(hù)管理模塊.16 第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì).17 4.1 數(shù)
10、據(jù)庫(kù)分析.17 數(shù)據(jù)庫(kù)設(shè)計(jì) E-R 圖.17 4.2 系統(tǒng)數(shù)據(jù)表設(shè)計(jì).20 4.3 數(shù)據(jù)連接.23 第 5 章 系統(tǒng)功能的具體實(shí)現(xiàn).24 5.1 系統(tǒng)的主窗口.24 5.2 公共核心類(lèi)的設(shè)計(jì).26 數(shù)據(jù)庫(kù)相關(guān).26 編寫(xiě) JAVABEAN類(lèi) .28 管理類(lèi)設(shè)計(jì).29 5.3 系統(tǒng)主要功能模塊詳述.31 博客管理員登陸模塊.31 日志管理顯示模塊.32 撰寫(xiě)日志模塊.35 刪除日志模塊.36 修改日志模塊.38 日志搜索模塊.39 結(jié) 論.40 參考文獻(xiàn).41 致 謝.42 第 1 章 緒論 1.1 博客信息系統(tǒng)概述 “博客” (Blog 或 Weblog)一詞源于“Web Log(網(wǎng)絡(luò)日志)
11、”的縮寫(xiě),是一種十 分簡(jiǎn)易的傻瓜化個(gè)人信息發(fā)布方式。任何人都可以像使用免費(fèi)電子郵件一樣,完成個(gè) 人網(wǎng)頁(yè)的創(chuàng)建、發(fā)布和更新。博客就是開(kāi)放的私人空間,可以充分利用超文本鏈接、 網(wǎng)絡(luò)互動(dòng)、動(dòng)態(tài)更新等特點(diǎn),在網(wǎng)絡(luò)中,精選并鏈接全球互聯(lián)網(wǎng)中最有價(jià)值的信息、 知識(shí)與資源;也可以將個(gè)人工作過(guò)程、生活故事、思想歷程、閃現(xiàn)的靈感等及時(shí)記錄 和發(fā)布,發(fā)揮個(gè)人無(wú)限的表達(dá)力;更可以以文會(huì)友,結(jié)識(shí)和匯聚朋友,進(jìn)行深度交流 溝通1。 “博客”當(dāng)然是個(gè)大家都陌生的名詞,博客的英文名詞就是“Blog 或 Weblog” (指人時(shí)對(duì)應(yīng)于 Blogger) ,是一個(gè)典型的網(wǎng)絡(luò)新事物,查閱最新的英文詞典也不可 能查到。該詞來(lái)源于“
12、Web Log(網(wǎng)絡(luò)日志) ”的縮寫(xiě),特指一種特別的網(wǎng)絡(luò)個(gè)人出版 形式,內(nèi)容按照時(shí)間順序排列,并且不斷更新。 博客是一種零編輯、零技術(shù)、零成本、零形式的網(wǎng)上個(gè)人出版方式。 博客概念一般包含了三個(gè)要素(當(dāng)然,也不需要局限這些定義): (1)網(wǎng)頁(yè)主體內(nèi)容由不斷更新的、個(gè)性化的眾多日志組成。 (2)按時(shí)間順序排列,而且是倒序方式,也就是最新的放在最上面,最舊的放 在最下面。 (3)內(nèi)容可以是各種主題、各種外觀(guān)布局和各種寫(xiě)作風(fēng)格,但是文章內(nèi)容以 “超鏈接”作為重要的表達(dá)方式。 因此,博客是個(gè)人性和公共性的結(jié)合體,其精髓不是主要表達(dá)個(gè)人思想,不是主 要記錄個(gè)人日常經(jīng)歷;而是以個(gè)人的視角,以整個(gè)互聯(lián)網(wǎng)為視
13、野,精選和記錄自己在 互聯(lián)網(wǎng)上看到的精彩內(nèi)容,為他人提供幫助,使其具有更高的共享價(jià)值。 博客精神的核心并不是自?shī)首詷?lè),甚至不是個(gè)人表達(dá)自由,相反,是體現(xiàn)一種利 他的共享精神,為他人提供幫助。個(gè)人日記和個(gè)人網(wǎng)站主要表現(xiàn)的還是“小我” ,而 博客表現(xiàn)的是“大我” 。也許形式上很接近,但內(nèi)在有著本質(zhì)的差異。所有優(yōu)秀博客 網(wǎng)站中,真正表達(dá)作者個(gè)人的內(nèi)容非常有限,最多只是點(diǎn)綴,而不像個(gè)人網(wǎng)站那樣是 核心。 1.2 博客發(fā)展趨勢(shì) 趨勢(shì)一:博客現(xiàn)在正在形成個(gè)人的信譽(yù)機(jī)制,有了博客之后就確立了一個(gè)個(gè)人虛 擬身份,簡(jiǎn)單的來(lái)講就是個(gè)人在互聯(lián)網(wǎng)上是有名有姓的,而不再是一種匿名的行為, 網(wǎng)民從流浪漢變成了一個(gè)定居者。
14、以前在互聯(lián)網(wǎng)上的各種行為都是在匿名狀態(tài)中,相 互之間是不認(rèn)識(shí)的,但有了博客之后可以天天關(guān)注,而別的人也可以通過(guò)博客找到這 個(gè)人。這樣隨著時(shí)間的積累就會(huì)產(chǎn)生一個(gè)新的東西,概括叫做“個(gè)人的信譽(yù)” ,個(gè)人 的信譽(yù)就是博客和博客之間發(fā)展各種關(guān)系的組合,這種信譽(yù)對(duì)每個(gè)人來(lái)講可能是不同 的,但對(duì)每個(gè)博客來(lái)講就產(chǎn)生了新的評(píng)價(jià)機(jī)制,這個(gè)機(jī)制將是博客商業(yè)化的一個(gè)前提 條件。 趨勢(shì)二:博客越來(lái)越呈現(xiàn)出富媒體化,早期的博客是以文字為主,但隨著多媒體 發(fā)展博客相冊(cè)、博客圖片已經(jīng)成為博客的基本配置,而現(xiàn)在許多博客網(wǎng)站已經(jīng)提供了 博客音頻和博客視頻。 趨勢(shì)三:博客現(xiàn)在正在形成并完善精選機(jī)制,博客作為自媒體和個(gè)人媒體,產(chǎn)生
15、 的信息非常巨大。其中難免產(chǎn)生信息垃圾,隨著博客的發(fā)展,博客通過(guò)精選機(jī)制精選 出大家喜聞樂(lè)見(jiàn)的信息,像國(guó)內(nèi)網(wǎng)摘、博客的評(píng)價(jià)系統(tǒng)等2,3。 1.3 系統(tǒng)開(kāi)發(fā)的背景 博客的精神是:自由表達(dá),開(kāi)放寬容,個(gè)性張揚(yáng),專(zhuān)業(yè)精神。 在沒(méi)有自己的博客之前,人們會(huì)經(jīng)常進(jìn)出于論壇發(fā)表貼子或者通過(guò)即時(shí)通信軟件 聊天,來(lái)表達(dá)自已的想法,可是這些都是零散的和雜亂的。博客的出現(xiàn),讓人們可以 不斷的把自己以前的和每天激發(fā)的一些想法或者感受整理放在自己的博客上,每次在 寫(xiě)文章的時(shí)候,可能又會(huì)產(chǎn)生新的想法。雖然一些想法一些思考只是皮毛,沒(méi)有什么 深度,但是當(dāng)下筆去寫(xiě)的時(shí)候每次都會(huì)對(duì)某個(gè)小小的問(wèn)題有了更多的一點(diǎn)點(diǎn)思考,再 寫(xiě)博客
16、的時(shí)候就感覺(jué)到了一種滿(mǎn)足感,一種想法得以釋放思考得以延伸的滿(mǎn)足感。生 活中每天的一個(gè)小小的事情都會(huì)引起人們的思考,甚至是和朋友的聊天中一個(gè)小小的 火花迸發(fā)。督促自己努力、把一時(shí)的想法變成觀(guān)點(diǎn),爭(zhēng)取在生命中的每天里留下點(diǎn)什 么,這也是人們寫(xiě)博客的目的之一。這樣就能督促自己每一天不要渾渾噩噩,時(shí)光流 逝無(wú)痕無(wú)聲無(wú)息,寫(xiě)博客也是在自己的每一天上留下了一道淺淺的思考和劃痕。 不僅如此,通過(guò)寫(xiě)博客、記錄自己的想法可以幫助實(shí)現(xiàn)如下這些目的: (1)記錄生活,在自己的每一天上留下思考的劃痕。 (2)整理思路,固化知識(shí),獲得更多更好的想法。 (3)分享,將自己的想法、經(jīng)驗(yàn)與人分享。 (4)交流、提高,通過(guò)交流
17、產(chǎn)生更多的思維火花,相互提高。 (5)交友,互相鼓勵(lì),一路同行。 如果說(shuō)博客網(wǎng)站是一個(gè)舞臺(tái),那么所有的博客都是其中的舞者,把自己有價(jià)值的 真實(shí)的一面展示在網(wǎng)絡(luò)世界中,相互交流溝通; 如果博客僅僅為了寫(xiě)日志,那么博 客是一面鏡子,鏡子中展現(xiàn)的是真實(shí)的自己;如果博客是一個(gè)自由媒體,可以把自身 感覺(jué)有價(jià)值的信息通過(guò)博客這個(gè)工具發(fā)布,與網(wǎng)友共享。 1.4 技術(shù)路線(xiàn) 本系統(tǒng)的開(kāi)發(fā)采用的是 JSP+JavaBean+Servlet 模式,在該模式中,結(jié)合了 JSP 和 Servlet 技術(shù),充分利用了 JSP 和 Servlet 兩種技術(shù)原有的優(yōu)點(diǎn)。在此模式中, JavaBean 作為模型的角色,充當(dāng) J
18、SP 和 Servlet 通信的中間工具,Servlet 處理完后 設(shè)置 JavaBean 的屬性,JSP 讀取此 JavaBean 的屬性,然后進(jìn)行顯示。該模式更加明 顯地把顯示和邏輯分離,使得代碼更容易管理,適合大型項(xiàng)目的開(kāi)發(fā)4。 1.5 系統(tǒng)設(shè)計(jì)目標(biāo)分析 本系統(tǒng)是用 JSP 實(shí)現(xiàn)的一個(gè)完全基于瀏覽器的博客系統(tǒng),任何注冊(cè)個(gè)人博客的人 都擁有以下功能: (1)登錄博客系統(tǒng)的后臺(tái)管理平臺(tái)。 (2)更改博客賬號(hào)的基本信息。 (3)撰寫(xiě)日志。 (4)日志管理。 (5)評(píng)論管理。 (6)留言管理。 博客訪(fǎng)問(wèn)者具有以下功能: (1)瀏覽博客系統(tǒng)中的日志、留言、評(píng)論。 (2)發(fā)表評(píng)論及留言。 (3)檢索
19、日志。 第 2 章 基本技術(shù)方案 2.1 JSP 中的各種技術(shù) JSP 概述 JSP 即 Java Server Pages,是由 Sun Microsystem 公司于 1996 年 6 月推出的新 技術(shù),是基于 Java Servlet 以及整個(gè) Java 體系的 Web 開(kāi)發(fā)技術(shù)。JSP 已經(jīng)成為開(kāi)發(fā) Web 動(dòng)態(tài)網(wǎng)頁(yè)重要、快速和有效的工具,是全新的網(wǎng)絡(luò)服務(wù)器編程環(huán)境。JSP 充分利 用了 Java 的強(qiáng)大功能,是一種優(yōu)秀的服務(wù)器端技術(shù)。隨著 Java 技術(shù)的日益成熟和流 行,JSP 在網(wǎng)絡(luò)編程中也變得越來(lái)越重要。JSP 基于強(qiáng)大的 Java 語(yǔ)言,具有極強(qiáng)的擴(kuò) 展能力,良好的縮收性,以
20、及與平臺(tái)無(wú)關(guān)的開(kāi)發(fā)特性,成為構(gòu)建動(dòng)態(tài)網(wǎng)站的主流技術(shù) 之一,JSP 有著其他技術(shù)所不具備的優(yōu)勢(shì)。其優(yōu)勢(shì)在于:可以將內(nèi)容的生成和顯示進(jìn) 行分離、生成可重用的組件、采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā)。JSP 能提供所有 Servlet 的功 能5。 Servlet 概述 Servlet 是 Java 編寫(xiě)的服務(wù)器端程序,是由服務(wù)器端執(zhí)行和調(diào)用的 Java 類(lèi)。 Servlet 是采用 Java 技術(shù)來(lái)實(shí)現(xiàn) CGI 功能的一種技術(shù),能夠像 CGI 一樣動(dòng)態(tài)地?cái)U(kuò)展 Web 服務(wù)器的功能,并采用請(qǐng)求響應(yīng)模式提供 Web 服務(wù)。Servlet 和 CGI 一樣都 是運(yùn)行在 Web 服務(wù)器上,用來(lái)生成 Web 頁(yè)面。Ser
21、vlet 的主要功能在于交互式地瀏覽 和修改數(shù)據(jù),生成動(dòng)態(tài) Web 內(nèi)容。其工作流程圖如圖 2.1 所示。 Web Client HTTP Servlet request HTTP Servlet response Web Component DataBase Web Server 圖 2.1 Servlet 工作流程圖 Servlet 工作流程: (1)客戶(hù)端發(fā)送請(qǐng)求信息至服務(wù)器。 (2)服務(wù)器將請(qǐng)求信息發(fā)送至 Servlet。 (3)Servlet 生成響應(yīng)內(nèi)容并將其傳給 Servlet。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決 于客戶(hù)端的請(qǐng)求。 (4)服務(wù)器將響應(yīng)信息返回至客戶(hù)端。 JavaBean
22、概述 JavaBean 是 Sun 公司為了進(jìn)入因特網(wǎng)、企業(yè)網(wǎng)以及萬(wàn)維網(wǎng)上進(jìn)行分布式計(jì)算的 組件結(jié)構(gòu)入口。按照 Sun 公司的定義,JavaBean 是一個(gè)可重復(fù)使用的軟件部件。 JavaBean 體系結(jié)構(gòu)是第一個(gè)全面地基于組件的標(biāo)準(zhǔn)模型之一,該組件是 Java 類(lèi),這 些類(lèi)遵循一個(gè)接口格式,以便于使方法命名、底層行為以及繼承或?qū)崿F(xiàn)的行為能夠把 類(lèi)看做標(biāo)準(zhǔn)的 JavaBean 組件的方式進(jìn)行構(gòu)造7。 在 Java 模型中,通過(guò) JavaBean 可以無(wú)限擴(kuò)充 Java 程序的功能,通過(guò) JavaBean 的組合可以快速生成新的應(yīng)用程序。JavaBean 具有以下特點(diǎn): (1)可以實(shí)現(xiàn)代碼的重復(fù)
23、利用。 (2)易維護(hù)性、易使用性、易編寫(xiě)性。 (3)可以在 Java 的任何平臺(tái)上工作,不需要重新編譯。 (4)可以在內(nèi)部網(wǎng)或者網(wǎng)絡(luò)之間進(jìn)行傳輸。 (5)可以以其它部件的模式進(jìn)行工作。 JavaBean 在 JSP 程序中常用來(lái)封裝事務(wù)邏輯、數(shù)據(jù)庫(kù)操作等,可以很好的實(shí)現(xiàn) 業(yè)務(wù)邏輯和前臺(tái)程序的分離,使得系統(tǒng)具有更好的健壯性和靈活性。 2.2 基于 B/S 的 WEB 應(yīng)用體系結(jié)構(gòu) 傳統(tǒng)的兩層體系結(jié)構(gòu) 在 Web 發(fā)展的初期,Web 應(yīng)用主要是通過(guò)靜態(tài)頁(yè)面在 Internet 上發(fā)布信息。用 戶(hù)通過(guò)瀏覽器向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器接收用戶(hù)端的請(qǐng)求,向客戶(hù)端瀏覽器發(fā)送所 請(qǐng)求的頁(yè)面。在這種結(jié)構(gòu)下,網(wǎng)站
24、上的頁(yè)面是靜態(tài)的,無(wú)法根據(jù)用戶(hù)的實(shí)際使用情況 做動(dòng)態(tài)的變化。網(wǎng)站的信息提供者通過(guò)更新服務(wù)器上的網(wǎng)頁(yè)來(lái)向用戶(hù)提供最新的信息。 用戶(hù)和瀏覽器之間只有有限的交互,而網(wǎng)站和用戶(hù)之間幾乎沒(méi)有交互。 三層體系結(jié)構(gòu) 三層體系結(jié)構(gòu)圖如圖 2.2 所示。 瀏覽器Web 服務(wù)器數(shù)據(jù)庫(kù) 請(qǐng)求 響應(yīng) 圖 2.2 三層體系結(jié)構(gòu)圖 CGI,ASP,PHP 等技術(shù)的出現(xiàn),使得開(kāi)發(fā)動(dòng)態(tài)交互式的 Web 應(yīng)用得以實(shí)現(xiàn)。用戶(hù) 通過(guò)瀏覽器向服務(wù)器發(fā)送請(qǐng)求,Web 服務(wù)器接收客戶(hù)端發(fā)送來(lái)的請(qǐng)求,對(duì)請(qǐng)求進(jìn)行分 析,如果請(qǐng)求是靜態(tài)頁(yè)面,那么就將所請(qǐng)求的頁(yè)面發(fā)送到客戶(hù)端;如果請(qǐng)求的是動(dòng)態(tài) 頁(yè)面,那么就執(zhí)行此動(dòng)態(tài)頁(yè)面,并將執(zhí)行結(jié)果發(fā)送給客戶(hù)
25、端。動(dòng)態(tài)頁(yè)面中的腳本程序 可以和數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行交互。 Web 服務(wù)器可以根據(jù)用戶(hù)的請(qǐng)求動(dòng)態(tài)更新頁(yè)面上的信息,Web 信息提供者可以通 過(guò)改變數(shù)據(jù)庫(kù)中的數(shù)據(jù)向用戶(hù)提供最新信息,而不需要逐個(gè)更改頁(yè)面。用戶(hù)可以通過(guò) 這些動(dòng)態(tài)頁(yè)面向數(shù)據(jù)庫(kù)中輸入信息,從而增強(qiáng)了用戶(hù)和服務(wù)器之間的交互性。 JSP 網(wǎng)站開(kāi)發(fā)模式 目前,JSP 技術(shù)已經(jīng)成為一種受大多數(shù)大型企業(yè)或中小型企業(yè)喜愛(ài)的動(dòng)態(tài)網(wǎng)頁(yè)開(kāi) 發(fā)技術(shù)。越來(lái)越多的技術(shù)人員也逐步成為 JSP 技術(shù)的推崇者。JSP 技術(shù)正是利用了 Java 的“一次開(kāi)發(fā),處處使用”的性能,成為了網(wǎng)站開(kāi)發(fā)技術(shù)人員的首選技術(shù)。當(dāng) 然,JSP 技術(shù)的最大優(yōu)勢(shì)在于能夠?qū)㈨?yè)面的表現(xiàn)形式和頁(yè)面
26、的商業(yè)邏輯分開(kāi)。 JSP 網(wǎng)站開(kāi)發(fā)技術(shù)標(biāo)準(zhǔn)提供了兩種開(kāi)發(fā)模式:一種是 JSP+JavaBean 開(kāi)發(fā)模式; 一種是 JSP+Servlet+JavaBean 開(kāi)發(fā)模式8,9。 JSP+JavaBean 模型圖如圖 2.3 所示。 JSP 瀏 覽 器 DataBaseJavaBean 圖 2.3 JSP+JavaBean 模型圖 在這種模型中,JSP 頁(yè)面獨(dú)自響應(yīng)請(qǐng)求并將處理結(jié)果返回給客戶(hù),所有的數(shù)據(jù)通 過(guò) JavaBean 來(lái)處理,JSP 實(shí)現(xiàn)頁(yè)面的顯示。此模型常常會(huì)導(dǎo)致頁(yè)面被嵌入大量的腳 本語(yǔ)言或者 Java 代碼段,當(dāng)處理大型業(yè)務(wù)時(shí),頁(yè)面程序?qū)⒆兊卯惓?fù)雜給開(kāi)發(fā)和維 護(hù)帶來(lái)困難。 JSP+
27、Servlet+JavaBean 模型圖如圖 2.4 所示。 瀏 覽 器 DataBaseJavaBean Servlet JSP 圖 2.4 JSP+Servlet+JavaBean 模型圖 Servlet 技術(shù)是一種采用 Java 技術(shù)來(lái)實(shí)現(xiàn) CGI 功能的一種技術(shù)。Servlet 是運(yùn)行 在 Web 服務(wù)器上,用來(lái)生成 Web 頁(yè)面。Servlet 技術(shù)非常適于服務(wù)器端的處理和編程。 在此種開(kāi)發(fā)模式中,JSP 技術(shù)用來(lái)顯示頁(yè)面,該頁(yè)面中沒(méi)有任何的商業(yè)處理邏輯, 通過(guò) Servlet 技術(shù)來(lái)完成大量的事物處理工作。Servlet 用來(lái)處理事務(wù)的請(qǐng)求,充當(dāng) 著一個(gè)控制者的角色,并負(fù)責(zé)向客戶(hù)發(fā)
28、送請(qǐng)求,創(chuàng)建 JSP 需要的 Bean 和對(duì)象,根據(jù) 用戶(hù)的請(qǐng)求行為,決定將哪個(gè) JSP 頁(yè)面發(fā)送給用戶(hù)。 從上面兩種開(kāi)發(fā)模式來(lái)說(shuō):第二種模式要好些,更適合于團(tuán)隊(duì)開(kāi)發(fā),速度相對(duì)較 慢,但是可維護(hù)性高6。 2.3 Eclipse 簡(jiǎn)介 Eclipse 最初由 OTI 和 IBM 兩家公司的 IDE 產(chǎn)品開(kāi)發(fā)組創(chuàng)建,起始于 1999 年 4 月。IBM 提供了最初的 Eclipse 代碼基礎(chǔ),包括 Platform、JDT 和 PDE。 Eclipse 是一個(gè)開(kāi)放源代碼的軟件開(kāi)發(fā)項(xiàng)目,專(zhuān)注于為高度集成的工具開(kāi)發(fā)提供 一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。由 Eclipse 項(xiàng)目、Eclipse 工
29、具項(xiàng)目和 Eclipse 技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成10。 2.4 Tomcat 簡(jiǎn)介 如今,基于 Web 的應(yīng)用越來(lái)越多,傳統(tǒng)的 Html 已經(jīng)滿(mǎn)足不了如今的需求。因此 需要一個(gè)交互式的 Web,于是便誕生了各種 Web 語(yǔ)言。如 Asp,Jsp,Php 等。當(dāng)然, 這些語(yǔ)言與傳統(tǒng)的語(yǔ)言有著密切的聯(lián)系,如 Php 基于 C 和 C+語(yǔ)言,Jsp 基于 Java 語(yǔ) 言。Tomcat 即是一個(gè) Jsp 和 Servlet 的運(yùn)行平臺(tái)。 Tomcat 是一個(gè)免費(fèi)的開(kāi)源的 Serlvet 容器,是 Apache 基金會(huì)的 Jakarta 項(xiàng)目中 的一個(gè)核心項(xiàng)目,由 Apache,Sun 和其它一些公司及
30、個(gè)人共同開(kāi)發(fā)而成11。 2.5 SQL Server 簡(jiǎn)介 Microsoft SQL Server 2000 是微軟所推出的一套在 Windows 平臺(tái)上執(zhí)行的功能 強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),用以作為應(yīng)用程序的數(shù)據(jù)來(lái)源,存放各種數(shù)據(jù),并可 以讓用戶(hù)很容易地達(dá)成所要進(jìn)行的數(shù)據(jù)存取操作。同時(shí),也提供了一些可視化的管理 工具,協(xié)助數(shù)據(jù)庫(kù)系統(tǒng)管理者更方便快速地管理及設(shè)計(jì)數(shù)據(jù)庫(kù)的內(nèi)容,以及對(duì)數(shù)據(jù)庫(kù) 進(jìn)行維護(hù)。SQL Server 2000 不僅可以實(shí)現(xiàn)個(gè)人數(shù)據(jù)庫(kù)的管理,更適合企業(yè)級(jí)數(shù)據(jù)庫(kù) 的應(yīng)用12,13。 2.6 MVC 設(shè)計(jì)模式 MVC 模式的基本形式圖如圖 2.5 所示。 圖 2.5 MVC
31、模式的基本形式圖 MVC(Model-View-Controller)模式并不是 J2EE 行業(yè)人士標(biāo)新立異的。MVC 的核 心就是要做到三級(jí)甚至多級(jí)的松散耦合,MVC 模式將系統(tǒng)分為三個(gè)部分,分別是數(shù)據(jù) 模型、視圖和控制器,并定義了這三個(gè)部分之間實(shí)現(xiàn)通信的一種模式,使每個(gè)部分不 必卷入到其他部分的狀態(tài)表示和方法實(shí)現(xiàn)的細(xì)節(jié)中去。每個(gè)部分有自己的數(shù)據(jù)管理規(guī) 則,各個(gè)對(duì)象之間的通信只能使用自己定義的一個(gè)受限連接集合進(jìn)行。保持這種分離 性通常是面向?qū)ο缶幊毯驮O(shè)計(jì)要追求的目標(biāo),讓各個(gè)對(duì)象只需專(zhuān)注于自己的事務(wù)。 模型部分代表了商業(yè)數(shù)據(jù)的訪(fǎng)問(wèn)及修改數(shù)據(jù)的操作。當(dāng)數(shù)據(jù)發(fā)生改變時(shí),要負(fù)責(zé) 通知視圖部分,并且提
32、供視圖查詢(xún)狀態(tài)的能力。另外,還向控制部分提供應(yīng)用功能。 視圖部分以自己的方式顯示模型的內(nèi)容。訪(fǎng)問(wèn)模型的數(shù)據(jù),并且當(dāng)模型的數(shù)據(jù)發(fā) 生變化時(shí)更新模型的顯示。視圖還把從用戶(hù)那里得到的信息傳給控制部分。 控制部分定義了應(yīng)用的行為。分發(fā)用戶(hù)請(qǐng)求和選擇表現(xiàn)視圖,還負(fù)責(zé)解釋用戶(hù)輸 入,進(jìn)而調(diào)用模型的功能。在 Web 應(yīng)用中,用戶(hù)輸入包括對(duì) Web 級(jí)資源的 HTTP、GET 和 POST 請(qǐng)求??刂撇糠指鶕?jù)用戶(hù)交互和模型的狀態(tài)選擇要顯示的視圖。一個(gè)應(yīng)用程 序一般為相關(guān)的功能選擇一個(gè)控制部分14,15。 第 3 章 系統(tǒng)分析與總體設(shè)計(jì) 博客信息系統(tǒng)包括:前臺(tái)信息顯示系統(tǒng)、后臺(tái)信息管理系統(tǒng)。前者是面向公眾的 一
33、個(gè)窗口,通過(guò)前臺(tái)信息顯示系統(tǒng)方便訪(fǎng)問(wèn)者瀏覽日志、評(píng)論和留言;發(fā)表評(píng)論和留 言。后者是后臺(tái)信息管理系統(tǒng),方便博客管理員發(fā)表日志;回復(fù)評(píng)論和留言;管理日 志、評(píng)論、留言及個(gè)人信息 12。 3.1 系統(tǒng)需求分析 用戶(hù)需求分析 用例圖用來(lái)描述系統(tǒng)與參與者之間的相互作用,與用例圖相關(guān)的幾個(gè)概念: (1)角色:代表了某一事件發(fā)生的參與者,用一個(gè)小人表示。 (2)用例:代表系統(tǒng)可以實(shí)現(xiàn)的功能,通常一個(gè)用例代表一組功能,實(shí)質(zhì)上規(guī) 定了系統(tǒng)實(shí)現(xiàn)功能的范圍。 (3)用例圖:當(dāng)角色和用例發(fā)生某種關(guān)系時(shí),就可以用一個(gè)圖將它們關(guān)聯(lián)起來(lái), 這就是用例圖。 博客信息管理系統(tǒng)用例圖如圖 3.1 所示。 圖 3.1 博客信息管
34、理系統(tǒng)用例圖 博客信息管理系統(tǒng)允許用戶(hù)有三種身份:博客訪(fǎng)問(wèn)者、博客管理員及系統(tǒng)管理員。 博客系統(tǒng)參與者中每種身份操作起來(lái)都很方便、快捷。博客訪(fǎng)問(wèn)者無(wú)需登陸就可 以瀏覽信息、發(fā)表評(píng)論或留言;博客管理員注冊(cè)后再登陸,就可以發(fā)布日志、管理個(gè) 人主頁(yè);而博客管理員的基本信息都由系統(tǒng)管理員對(duì)其統(tǒng)一管理。 3.2 數(shù)據(jù)分析 本系統(tǒng)的用戶(hù)主要是博客訪(fǎng)問(wèn)者和博客管理員,下面以博客前臺(tái)展示系統(tǒng)中的用 戶(hù)查詢(xún)?nèi)罩緸槔M(jìn)行說(shuō)明。該過(guò)程的數(shù)據(jù)流程圖如圖 3.2 所示。 提交事物 事物處理程序 存儲(chǔ)文件 博客展示 系統(tǒng) 顯示結(jié)果 圖 3.2 用戶(hù)查詢(xún)?nèi)罩镜臄?shù)據(jù)流程圖 用戶(hù)查詢(xún)?nèi)罩镜臄?shù)據(jù)流程:首先,用戶(hù)輸入需查找的關(guān)鍵字
35、,然后提交表單數(shù)據(jù), 服務(wù)器接收到關(guān)鍵字后,根據(jù)關(guān)鍵字對(duì)日志標(biāo)題進(jìn)行模糊查詢(xún),處理后將結(jié)果以日志 標(biāo)題鏈接的形式顯示給該用戶(hù),用戶(hù)點(diǎn)擊相應(yīng)的鏈接就可以瀏覽日志內(nèi)容。 3.3 系統(tǒng)流程 根據(jù)博客信息管理系統(tǒng)的特點(diǎn),將其分為兩大模塊:前臺(tái)用戶(hù)瀏覽模塊和后臺(tái)用 戶(hù)管理模塊。前臺(tái)用戶(hù)瀏覽模塊主要用于用戶(hù)瀏覽日志信息;后臺(tái)用戶(hù)管理模塊主要 用于博客管理員對(duì)個(gè)人博客網(wǎng)站的管理,如日志管理、留言管理及評(píng)論管理等。 博客系統(tǒng)平臺(tái)的前臺(tái)用戶(hù)瀏覽模塊流程圖如圖 3.3 所示。 用戶(hù)進(jìn)入瀏覽 瀏覽方式 選擇博客直接選擇日志檢索日志 在博客中選擇 日志 在檢索結(jié)果中選 擇日志 將日志數(shù)據(jù)按照預(yù)先的組織形 式展現(xiàn)給瀏覽
36、者 評(píng)論 將日志評(píng)論保存到數(shù)據(jù) 庫(kù) 結(jié)束 圖 3.3 前臺(tái)用戶(hù)瀏覽模塊流程圖 前臺(tái)用戶(hù)瀏覽模塊主要用于用戶(hù)瀏覽日志信息,用戶(hù)瀏覽日志有三種瀏覽方式可 以選擇:一是直接點(diǎn)擊日志標(biāo)題鏈接進(jìn)入日志顯示頁(yè)面瀏覽日志;二是點(diǎn)擊博客主題 鏈接進(jìn)入該個(gè)人博客的首頁(yè),然后在該首頁(yè)中選擇所需的日志標(biāo)題鏈接進(jìn)入日志顯示 頁(yè)面瀏覽日志;三是通過(guò)首頁(yè)提供的搜索功能,搜索所需要的日志,然后在結(jié)果列表 中選擇所需的日志標(biāo)題鏈接進(jìn)入日志顯示頁(yè)面瀏覽日志。瀏覽日志的同時(shí)用戶(hù)可以查 看別人對(duì)該日志的評(píng)論,然后用戶(hù)也可以對(duì)該日志發(fā)表自已的評(píng)論。 博客系統(tǒng)平臺(tái)的后臺(tái)用戶(hù)管理模塊流程圖如圖 3.4 所示。 用戶(hù)進(jìn)入管理 結(jié)束 權(quán)限驗(yàn)
37、證 管理中心 日志管理評(píng)論管理留言管理 出錯(cuò)提示 未通過(guò) 通過(guò) 圖 3.4 后臺(tái)用戶(hù)管理模塊流程圖 用戶(hù)進(jìn)入后臺(tái)管理平臺(tái),首先必需進(jìn)行權(quán)限驗(yàn)證,防止未授權(quán)的用戶(hù)非法登錄。 若未通過(guò)驗(yàn)證,則顯示出錯(cuò)提示,并跳轉(zhuǎn)到登錄界面。若通過(guò)驗(yàn)證,則進(jìn)入個(gè)人博客 后臺(tái)管理平臺(tái)。用戶(hù)可以瀏覽已發(fā)表的日志,并對(duì)其進(jìn)行相應(yīng)的操作如修改日志和刪 除日志;可以查看日志的評(píng)論信息并對(duì)其進(jìn)行回復(fù)或者刪除操作;可以發(fā)表新的日志; 可以新建日志分類(lèi);可以瀏覽個(gè)人博客的留言信息并對(duì)其進(jìn)行相應(yīng)的操作如回復(fù)留言 和刪除留言;還可以對(duì)個(gè)人信息進(jìn)行修改。 3.4 功能模塊劃分 前臺(tái)模塊功能結(jié)構(gòu)如圖 3.5 所示。 博客信息管理系統(tǒng)前臺(tái)
38、博客展示日志展示評(píng)論展示留言展示用戶(hù)管理 熱 點(diǎn) 博 客 最 新 日 志 日 志 列 表 最 新 留 言 用 戶(hù) 登 陸 用 戶(hù) 注 冊(cè) 查詢(xún)管理 日 志 查 詢(xún) 發(fā) 表 留 言 博 客 列 表 最 新 博 客 精 華 日 志 最 新 評(píng) 論 發(fā) 表 評(píng) 論 博 客 查 詢(xún) 圖 3.5 博客信息系統(tǒng)前臺(tái)功能結(jié)構(gòu)圖 后臺(tái)模塊功能結(jié)構(gòu)如圖 3.6 所示。 博客管理員 個(gè)人信息管理日志管理評(píng)論管理留言管理分類(lèi)管理 登 陸 注 冊(cè) 修 改 個(gè) 人 信 息 撰 寫(xiě) 日 志 刪 除 日 志 修 改 日 志 刪 除 評(píng) 論 回 復(fù) 評(píng) 論 刪 除 留 言 回 復(fù) 留 言 添 加 分 類(lèi) 刪 除 分 類(lèi) 修
39、改 分 類(lèi) 圖 3.6 博客信息系統(tǒng)后臺(tái)功能結(jié)構(gòu)圖 3.5 功能模塊介紹 博客信息管理系統(tǒng)分為面向網(wǎng)絡(luò)用戶(hù)的前臺(tái)及面向個(gè)人博客維護(hù)管理的后臺(tái),依 據(jù)博客網(wǎng)站中所要實(shí)現(xiàn)的基本功能的設(shè)定,將所有功能分解為如下四個(gè)主要的功能模 塊來(lái)加以實(shí)現(xiàn)。用戶(hù)以合法的用戶(hù)名及密碼登錄,系統(tǒng)即可按該登錄用戶(hù)的權(quán)限分配 操作模塊。 博客注冊(cè)登錄管理模塊 博客注冊(cè)登錄管理模塊用于建立博客網(wǎng)站固定的客戶(hù)群體,通過(guò)記錄對(duì)應(yīng)的博客 檔案,實(shí)現(xiàn)對(duì)博客信息的后臺(tái)維護(hù)及管理,同時(shí)也便于通過(guò)博客檔案庫(kù)將網(wǎng)站最新動(dòng) 態(tài)及相關(guān)企業(yè)的信息方便地傳達(dá)給每一位潛在的客戶(hù)。 該功能模塊實(shí)現(xiàn)了以下幾個(gè)子功能。 (1)新博客在線(xiàn)注冊(cè)。 (2)博客登
40、錄管理。 (3)跳轉(zhuǎn)到博客主頁(yè)。 只有進(jìn)行登錄并通過(guò)身份驗(yàn)證的用戶(hù),才可以在個(gè)人博客頁(yè)面發(fā)表日志,并借助 個(gè)人設(shè)置實(shí)現(xiàn)對(duì)個(gè)人博客相關(guān)信息的管理維護(hù)。對(duì)于沒(méi)有經(jīng)過(guò)身份驗(yàn)證的網(wǎng)絡(luò)用戶(hù)不 允許在博客頁(yè)面中發(fā)表日志,更不允許對(duì)博客頁(yè)面信息進(jìn)行管理維護(hù)。 該模塊實(shí)現(xiàn)新博客的注冊(cè)及登錄驗(yàn)證功能。其中,注冊(cè)新博客時(shí)會(huì)對(duì)用戶(hù)輸入的 注冊(cè)信息進(jìn)行有效性驗(yàn)證,包括基本數(shù)據(jù)格式的有效性以及邏輯有效性,例如,用戶(hù) 名被占用時(shí)將及時(shí)給出提示。注冊(cè)成功的博客登錄時(shí),會(huì)隨時(shí)根據(jù)博客輸入的登錄信 息進(jìn)行提示,如用戶(hù)名錯(cuò)誤或者密碼錯(cuò)誤。 博客及文章檢索查詢(xún)模塊 博客及文章檢索查詢(xún)模塊為網(wǎng)絡(luò)用戶(hù)提供便捷的搜索,以及日志閱讀瀏覽等
41、功能, 同時(shí)對(duì)日志的評(píng)論信息、博客推薦也能夠及時(shí)反饋給網(wǎng)絡(luò)用戶(hù)。 該功能模塊實(shí)現(xiàn)了以下幾個(gè)子功能。 (1)熱門(mén)博客頁(yè)面推薦。 (2)最新博客日志推薦。 (3)日志信息關(guān)鍵字搜索。 該模塊能夠在網(wǎng)頁(yè)中隨時(shí)提供在線(xiàn)的最新日志信息。該信息需要定期更新,網(wǎng)絡(luò) 用戶(hù)可以隨時(shí)獲得最新日志以及最熱門(mén)的博客推薦。在客戶(hù)選擇了某個(gè)博客或者某個(gè) 感興趣的日志后,可以方便地跳轉(zhuǎn)到對(duì)應(yīng)博客頁(yè)面進(jìn)行日志的閱讀,并和博客進(jìn)行交 流互動(dòng)。 為了使網(wǎng)絡(luò)用戶(hù)盡快定位到所需的博客資料及日志信息,本模塊提供了搜索功能, 用戶(hù)可以對(duì)所關(guān)注的日志信息按照標(biāo)題進(jìn)行關(guān)鍵字搜索,以避免用戶(hù)瀏覽多個(gè)頁(yè)面來(lái) 尋找所需的日志信息。 博客頁(yè)面顯示模
42、塊 當(dāng)網(wǎng)絡(luò)用戶(hù)進(jìn)入某個(gè)人博客主頁(yè)后,在該頁(yè)面中將提供博客日志列表的顯示,同 時(shí)為了方便用戶(hù)瀏覽,在該模塊中提供根據(jù)分類(lèi)名進(jìn)行日志列表的顯示,也提供日志 評(píng)論的瀏覽,此外還允許用戶(hù)在博客頁(yè)面中發(fā)表評(píng)論及留言。 該功能模塊實(shí)現(xiàn)了如下幾個(gè)子功能。 (1)用戶(hù)可以分頁(yè)查看對(duì)應(yīng)的日志內(nèi)容及評(píng)論信息。 (2)用戶(hù)可以針對(duì)日志內(nèi)容發(fā)表評(píng)論。 (3)用戶(hù)可以針對(duì)博客進(jìn)行留言。 (4)用戶(hù)可以分類(lèi)查看日志內(nèi)容。 在該模塊中還提供了博客頁(yè)面統(tǒng)計(jì)信息,日志、評(píng)論及留言信息分頁(yè)顯示等方便 用戶(hù)的顯示效果。 博客個(gè)人維護(hù)管理模塊 博客個(gè)人維護(hù)管理模塊用于實(shí)現(xiàn)用戶(hù)對(duì)博客個(gè)人主頁(yè)及相關(guān)信息的動(dòng)態(tài)管理。 該功能模塊實(shí)現(xiàn)了如下
43、幾個(gè)子功能: (1)日志及日志分類(lèi)管理。 (2)評(píng)論及留言管理。 (3)個(gè)人基本信息維護(hù)管理。 借助該模塊,用戶(hù)可以隨時(shí)對(duì)個(gè)人博客主頁(yè)中的內(nèi)容進(jìn)行增加或修改,包括日志 分類(lèi)信息的更新、評(píng)論及留言管理等功能,也允許用戶(hù)對(duì)博客的個(gè)人信息進(jìn)行維護(hù)及 其管理。 第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì) 4.1 數(shù)據(jù)庫(kù)分析 數(shù)據(jù)庫(kù)是當(dāng)前應(yīng)用軟件系統(tǒng)的重要組成部分,如何使基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)安全、 可靠、高效的運(yùn)行一直是軟件開(kāi)發(fā)技術(shù)研究的難題。所以本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)基于以 下幾點(diǎn)來(lái)考慮: (1)數(shù)據(jù)庫(kù)規(guī)范化與非規(guī)范化的考慮。 (2)數(shù)據(jù)查詢(xún)優(yōu)化與索引的建立。 (3)存儲(chǔ)過(guò)程與視圖。 數(shù)據(jù)庫(kù)設(shè)計(jì) E-R 圖 為了把用戶(hù)的數(shù)
44、據(jù)要求清晰明確地表達(dá)出來(lái),通常要建立一個(gè)概念性的數(shù)據(jù)模型。 概念性數(shù)據(jù)模型是一種面向問(wèn)題的數(shù)據(jù)模型,是按照用戶(hù)的觀(guān)點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模。 描述了從用戶(hù)角度看到的數(shù)據(jù),反映了用戶(hù)的現(xiàn)實(shí)環(huán)境。 最常用的表示概念性數(shù)據(jù)模型的方法,是實(shí)體聯(lián)系方法(Entity Relationship Approach) 。這種方法用 ER 圖描述現(xiàn)實(shí)世界中的實(shí)體,而不涉及這些 實(shí)體在系統(tǒng)中的實(shí)現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱(chēng)為 ER 模型。ER 模 型中包含“實(shí)體” , “聯(lián)系”和“屬性” 。 博客信息管理系統(tǒng)涉及的實(shí)體包括: (1)用戶(hù):用戶(hù) ID、用戶(hù)名稱(chēng)、用戶(hù)密碼、博客主題、說(shuō)明、E-mail、注冊(cè)
45、日 期、發(fā)表日志數(shù)。 (2)類(lèi)別:類(lèi)別編號(hào)、類(lèi)別名、類(lèi)別描述、用戶(hù) ID。 (3)日志:日志編號(hào)、日志標(biāo)題、日志內(nèi)容、類(lèi)別編號(hào)、發(fā)表日期、最后修改 日期、用戶(hù) ID、瀏覽次數(shù)、評(píng)論數(shù)。 (4)評(píng)論:評(píng)論編號(hào)、評(píng)論標(biāo)題、評(píng)論內(nèi)容、發(fā)表日期、最后回復(fù)日期、評(píng)論 人、日志編號(hào)。 (5)留言:留言編號(hào)、留言標(biāo)題、留言?xún)?nèi)容、發(fā)表日期、最后回復(fù)日期、留言 人、用戶(hù) ID。 綜合本系統(tǒng)各子模塊要實(shí)現(xiàn)的功能,通過(guò)前面對(duì)博客信息系統(tǒng)數(shù)據(jù)的分析可以得 到:用戶(hù)表、類(lèi)別表、日志表、日志評(píng)論表、留言表的數(shù)據(jù)庫(kù)概念模型(E-R 圖)。 用戶(hù) E-R 圖如圖 4.1 所示。 博客管理員 ID 用戶(hù)名 密碼 主題 E-ma
46、il 說(shuō)明 發(fā)表日志數(shù) 注冊(cè)日期 圖 4.1 用戶(hù) E-R 圖 日志類(lèi)別 E-R 圖如圖 4.2 所示。 日志類(lèi)別 ID 類(lèi)別名類(lèi)別描述 所屬博客ID 圖 4.2 日志類(lèi)別 E-R 圖 日志 E-R 圖如圖 4.3 所示。 日志 ID 日志標(biāo)題 日志內(nèi)容 類(lèi)別ID 發(fā)表時(shí)間 所屬博客ID 瀏覽次數(shù) 評(píng)論數(shù) 最后修改時(shí)間 圖 4.3 日志 E-R 圖 日志評(píng)論 E-R 圖如圖 4.4 所示。 日志評(píng)論 ID 評(píng)論標(biāo)題 評(píng)論內(nèi)容 發(fā)表時(shí)間 評(píng)論者名字 評(píng)論日志ID 最后回復(fù)時(shí)間 圖 4.4 日志評(píng)論 E-R 圖 留言 E-R 圖如圖 4.5 所示。 留言 ID 留言標(biāo)題 留言?xún)?nèi)容 發(fā)表時(shí)間 最后回
47、復(fù)時(shí)間 留言者名字 博客ID 圖 4.5 留言 E-R 圖 4.2 系統(tǒng)數(shù)據(jù)表設(shè)計(jì) (1)用戶(hù)表,此表主要用于保存用戶(hù)的基本信息。其結(jié)構(gòu)如表 4.1 所示。 表 4.1 用戶(hù)表 列名含義類(lèi)型長(zhǎng)度缺省值允許空 BlogID 用戶(hù)編號(hào) Int4 無(wú)否 UserName 用戶(hù)名 Varchar20 無(wú)否 Password 用戶(hù)密碼 Varchar20 無(wú)否 NickName 博客主題 Varchar50 無(wú)否 Description 博客描述 Varchar100 無(wú)是 Email 電子郵件 Email50 無(wú)否 RegisterTime 注冊(cè)日期 Datetime8 無(wú)否 ArticleNum 發(fā)
48、表的日志數(shù) Int40 否 (2)日志表,此表主要用于保存日志的基本信息。其結(jié)構(gòu)如表 4.2 所示。 表 4.2 日志表 列名含義類(lèi)型長(zhǎng)度缺省值允許空 ArticleID 日志編號(hào) Int4 無(wú)否 Title 日志標(biāo)題 Varchar50 無(wú)否 Content 日志內(nèi)容 text8 無(wú)否 CategoryID 類(lèi)別 ID int4 無(wú)否 PublishTime 日志發(fā)表時(shí)間 Datetime8 無(wú)否 LastModifyTime 日志最后修改時(shí)間 Datetime8 無(wú)否 BlogID 用戶(hù) ID Int4 無(wú)否 ReadTimes日志瀏覽次數(shù)Int40否 FeedBackNum日志評(píng)論數(shù)In
49、t40否 (3)日志評(píng)論表,此表主要用于保存日志評(píng)論的基本信息。其結(jié)構(gòu)如表 4.3 所 示。 表 4.3 日志評(píng)論表 列名含義類(lèi)型長(zhǎng)度缺省值允許空 FeedBackID 評(píng)論編號(hào) Int4 無(wú)否 Title 評(píng)論標(biāo)題 Varchar20 無(wú)否 Content 評(píng)論內(nèi)容 Text8 無(wú)否 PublishTime 發(fā)表時(shí)間 Datetime8 無(wú)否 UserName 用戶(hù)名 Varchar20 無(wú)否 ArticleID 日志 ID Int4 無(wú)否 (4)留言表,此表主要用于保存留言的基本信息。其結(jié)構(gòu)如表 4.4 所示。 表 4.4 留言表 列名含義類(lèi)型長(zhǎng)度缺省值允許空 MessageID 留言編號(hào)
50、 Int4 無(wú)否 Title 留言標(biāo)題 Varchar20 無(wú)否 Content 留言?xún)?nèi)容 text8 無(wú)否 PublishTime 發(fā)表時(shí)間 Datetime8 無(wú)否 LastModifyTime 最后回復(fù)時(shí)間 Datetime8 無(wú)否 UserName 用戶(hù)名 Varchar20 無(wú)否 BlogID 用戶(hù) ID Int4 無(wú)否 (5)類(lèi)別表,此表用于保存日志類(lèi)別的基本信息。其結(jié)構(gòu)如表 4.5 所示。 表 4.5 類(lèi)別表 列名含義類(lèi)型長(zhǎng)度缺省值允許空 CategoryID 類(lèi)別編號(hào) Int4 無(wú)否 Name 類(lèi)別名 Varchar20 無(wú)否 Description 類(lèi)別描述 Varchar1
51、00 無(wú)是 BlogID 用戶(hù)編號(hào) Int4 無(wú)否 數(shù)據(jù)表在設(shè)計(jì)完成后,指定好各數(shù)據(jù)表主鍵、外鍵,通過(guò) SQL Server 2000 企業(yè) 管理器中提供的新建數(shù)據(jù)庫(kù)關(guān)系統(tǒng)圖即可自動(dòng)生成表與表之間的關(guān)系圖。各個(gè)關(guān)聯(lián)表 之間通過(guò)設(shè)置好的外鍵連接在一起。 本系統(tǒng)具體的數(shù)據(jù)表之間關(guān)系圖如圖 4.6 所示: 圖 4.6 數(shù)據(jù)表之間關(guān)系圖 4.3 數(shù)據(jù)連接 目前流行的數(shù)據(jù)庫(kù)連接技術(shù)主要有:JDBC-ODBC 橋、JDBC 和數(shù)據(jù)連接池技術(shù)。該 系統(tǒng)采用數(shù)據(jù)連接池技術(shù),使用連接池的優(yōu)點(diǎn)主要體現(xiàn)在兩個(gè)方面:對(duì)數(shù)據(jù)庫(kù)的連接 統(tǒng)一進(jìn)行配置、管理、監(jiān)控,以及對(duì)數(shù)據(jù)庫(kù)連接池的參數(shù)進(jìn)行優(yōu)化調(diào)整,同時(shí)對(duì)應(yīng)用 程序中沒(méi)有
52、關(guān)閉或其他原因造成沒(méi)有關(guān)閉的數(shù)據(jù)庫(kù)連接由連接池統(tǒng)一進(jìn)行管理。便于 程序的移植和后端數(shù)據(jù)庫(kù)的切換,因?yàn)樵趹?yīng)用中通過(guò)統(tǒng)一的 JNDI 獲得數(shù)據(jù)庫(kù)的連接, 而具體連接的是哪一臺(tái)機(jī)器上的數(shù)據(jù)庫(kù)與程序無(wú)關(guān)。 數(shù)據(jù)庫(kù)連接池技術(shù)的思想非常簡(jiǎn)單,將數(shù)據(jù)庫(kù)連接作為對(duì)象存儲(chǔ)在一個(gè) Vector 對(duì)象中,一旦數(shù)據(jù)庫(kù)連接建立后,不同的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)請(qǐng)求就可以共享這些連接。這樣, 通過(guò)復(fù)用這些已經(jīng)建立的數(shù)據(jù)庫(kù)連接,可以克服上述缺點(diǎn),極大地節(jié)省系統(tǒng)資源和時(shí) 間。 數(shù)據(jù)庫(kù)連接池的主要操作如下: (1)建立數(shù)據(jù)庫(kù)連接池對(duì)象(服務(wù)器啟動(dòng)) 。 (2)按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫(kù)連接(即:空閑連接數(shù)) 。 (3)對(duì)于一個(gè)數(shù)
53、據(jù)庫(kù)訪(fǎng)問(wèn)請(qǐng)求,直接從連接池中得到一個(gè)連接。如果數(shù)據(jù)庫(kù)連 接池對(duì)象中沒(méi)有空閑的連接,且連接數(shù)沒(méi)有達(dá)到最大(即:最大活躍連接 數(shù)) ,創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)連接。 (4)存取數(shù)據(jù)庫(kù)。 (5)關(guān)閉數(shù)據(jù)庫(kù),釋放所有數(shù)據(jù)庫(kù)連接(此時(shí)的關(guān)閉數(shù)據(jù)庫(kù)連接,并非真正關(guān) 閉,而是將其放入空閑隊(duì)列中。如實(shí)際空閑連接數(shù)大于初始空閑連接數(shù)則 釋放連接) 。 (6)釋放數(shù)據(jù)庫(kù)連接池對(duì)象(服務(wù)器停止、維護(hù)期間,釋放數(shù)據(jù)庫(kù)連接池對(duì)象, 并釋放所有連接) 。 第 5 章 系統(tǒng)功能的具體實(shí)現(xiàn) 5.1 系統(tǒng)的主窗口 系統(tǒng)的界面按照常規(guī)的 WEB 界面進(jìn)行設(shè)計(jì),設(shè)計(jì)的原則是界面友好,易于操作, 容易上手,盡可能的貼切用戶(hù)實(shí)際。 博客信息
54、管理系統(tǒng)首頁(yè)圖如圖 5.1 所示。 圖 5.1 博客信息管理系統(tǒng)首頁(yè)圖 所有的網(wǎng)絡(luò)用戶(hù)都可以進(jìn)入該首頁(yè)進(jìn)行登錄、注冊(cè)、瀏覽等相關(guān)的操作。在頁(yè)面 的上方是博客信息管理系統(tǒng)的導(dǎo)航列表,圖中顯示的導(dǎo)航條包括登錄、注冊(cè)、博客列 表、博文全覽以及站務(wù)公告。在頁(yè)面的左側(cè)是熱點(diǎn)博客,包括博客主題及其用戶(hù)名; 新入博客,包括博客主題;站內(nèi)搜索條,用戶(hù)可以根據(jù)日志標(biāo)題進(jìn)行搜索;最新評(píng)論 列表,包括評(píng)論標(biāo)題;最新留言列表,包括留言標(biāo)題;站點(diǎn)的統(tǒng)計(jì)信息,包括博客總 數(shù),日志總數(shù)。在頁(yè)面的中間則是精華日志和最新日志列表,包括用戶(hù)名、日志標(biāo)題、 瀏覽次數(shù)和發(fā)表時(shí)間;頁(yè)面的底部是版權(quán)說(shuō)明信息。 個(gè)人博客主頁(yè)界面圖如圖 5
55、.2 所示。 圖 5.2 個(gè)人博客主頁(yè)界面圖 所有的網(wǎng)絡(luò)用戶(hù)都可以進(jìn)入某個(gè)人的博客主頁(yè)進(jìn)行瀏覽、留言等相關(guān)的操作。在 頁(yè)面的上方是個(gè)人博客日志的分類(lèi)名列表,包括分類(lèi)名及其該分類(lèi)下的日志數(shù)量。在 頁(yè)面的左側(cè)分別是登錄表單,提供博客管理員進(jìn)入后臺(tái)管理頁(yè)面;個(gè)人博客精華日志 列表,包括日志標(biāo)題;最新評(píng)論,包括評(píng)論標(biāo)題;最新留言,包括留言標(biāo)題;站點(diǎn)信 息,包括個(gè)人日志總數(shù)、評(píng)論總數(shù)和留言總數(shù)。在頁(yè)面的中間則分別是最新日志的列 表,包括日志標(biāo)題、所屬分類(lèi)名、發(fā)表時(shí)間、作者、部分日志內(nèi)容及其查看日志和發(fā) 表評(píng)論鏈接;發(fā)表留言表單,包括昵稱(chēng)、留言標(biāo)題和留言?xún)?nèi)容。 5.2 公共核心類(lèi)的設(shè)計(jì) 數(shù)據(jù)庫(kù)相關(guān) 訪(fǎng)問(wèn)數(shù)
56、據(jù)庫(kù)相關(guān)類(lèi)如下: (1)獲取數(shù)據(jù)源,其代碼如下: public static Connection getConnection() try Context ctx = (Context)new InitialContext().lookup(Constants.ENV); DataSource ds=(DataSource)ctx.lookup(Constants.JDBC); getConnection()方法:該方法通過(guò)Context類(lèi)提供的lookup()方法查找數(shù)據(jù)源, 從而獲得jdbc/blog數(shù)據(jù)源的引用,得到DataSource對(duì)象的引用后,就可以通過(guò) DataSource的ge
57、tConnection()方法獲得數(shù)據(jù)庫(kù)連接對(duì)象。 (2)連接數(shù)據(jù)庫(kù)和操作數(shù)據(jù)庫(kù);代碼如下: / 構(gòu)造數(shù)據(jù)庫(kù)的連接和訪(fǎng)問(wèn)類(lèi) public DBConnect() throws Exception / 獲得數(shù)據(jù)庫(kù)連接對(duì)象 conn=DB.getConnection(); / 創(chuàng)建一個(gè)JDBC聲明 stmt = conn.createStatement(); / 預(yù)設(shè)SQL語(yǔ)句 public void prepareStatement(String sql) throws SQLException prepstmt = conn.prepareStatement(sql); / 設(shè)置索引值位置的對(duì)
58、應(yīng)值 public void setString(int index, String value) throws SQLException prepstmt.setString(index, value); public void setInt(int index, int value) throws SQLException prepstmt.setInt(index, value); / 執(zhí)行SQL語(yǔ)句并返回字段集 public ResultSet executeQuery() throws SQLException if (prepstmt != null) return prepstm
59、t.executeQuery(); else return null; DBConnect()方法:該方法主要負(fù)責(zé)獲得數(shù)據(jù)庫(kù)連接對(duì)象。 prepareStatement(String sql)方法:該方法主要完成預(yù)設(shè) SQL 語(yǔ)句,只有一個(gè) 用來(lái)接收 SQL 語(yǔ)句的參數(shù),如果 SQL 語(yǔ)句有誤將拋出異常。 setString(int index, String value)方法:該方法用于設(shè)置預(yù)設(shè) SQL 語(yǔ)句中的 相應(yīng)字段值,index 表示索引位置,value 表示需設(shè)置字符串類(lèi)型的值。 setInt(int index, int value)方法:該方法用于預(yù)設(shè) SQL 語(yǔ)句中的相應(yīng)字段
60、值, index 表示索引位置,value 表示需設(shè)置整型類(lèi)型的值。 executeQuery()方法:該方法用于執(zhí)行預(yù)設(shè)的 SQL 語(yǔ)句。 編寫(xiě) JavaBean 類(lèi) 為每一個(gè)數(shù)據(jù)庫(kù)表建一個(gè) JavaBean 類(lèi),完成對(duì)該表字段的獲取和設(shè)置。 博客信息管理系統(tǒng)所用的 JavaBean 類(lèi)列表如表 5.1 所示。 表 5.1 JavaBean 類(lèi)列表 JavaBean 類(lèi)說(shuō)明 Blog 類(lèi)博客管理員表對(duì)應(yīng)的 JavaBean 類(lèi) Article 類(lèi)日志表對(duì)應(yīng)的 JavaBean 類(lèi) CateGory 類(lèi)類(lèi)別表對(duì)應(yīng)的 JavaBean 類(lèi) FeedBack 類(lèi)評(píng)論表對(duì)應(yīng)的 JavaBean 類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年私人門(mén)面房出租與租賃期限靈活調(diào)整合同3篇
- 2025年樹(shù)木修剪與隱患排查一體化服務(wù)合同3篇
- 2025年代理商分銷(xiāo)協(xié)議-電動(dòng)汽車(chē)配件代理協(xié)議
- 2025年辦公空間室內(nèi)設(shè)計(jì)服務(wù)合同
- 二零二五年度石材加工打磨承包協(xié)議83篇
- 2025年唐裝加工承攬合同
- 2025年合資合同內(nèi)容解釋要點(diǎn)
- 2025年墜機(jī)保險(xiǎn)協(xié)議
- 2025年商業(yè)用地共建項(xiàng)目商業(yè)共建合作協(xié)議
- 2025年校園小賣(mài)部綠色生活用品專(zhuān)營(yíng)店承包合同3篇
- 蘇少版七年級(jí)美術(shù)下冊(cè) 全冊(cè)
- 民航概論5套模擬試卷考試題帶答案
- 2024屆中國(guó)電建地產(chǎn)校園招聘網(wǎng)申平臺(tái)高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- COCA20000詞匯音標(biāo)版表格
- 滬教版七年級(jí)數(shù)學(xué)上冊(cè)專(zhuān)題06圖形的運(yùn)動(dòng)(原卷版+解析)
- JTG-T-F20-2015公路路面基層施工技術(shù)細(xì)則
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 建筑垃圾減排及資源化處置措施
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 中西方校服文化差異研究
- 2024年一級(jí)建造師考試思維導(dǎo)圖-市政
評(píng)論
0/150
提交評(píng)論