畢業(yè)設計---個人博客系統(tǒng)的設計與實現_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)設計說明書</b></p><p>  個人博客系統(tǒng)的設計與實現</p><p>  學生姓名: 學號: </p><p>  學 院: 電子與計算機科學技術 </p><p>  專 業(yè)

2、: 計算機科學與技術 </p><p>  指導教師: xx </p><p><b>  2013年 6 月</b></p><p>  個人博客系統(tǒng)的設計與實現</p><p><b>  摘要&

3、lt;/b></p><p>  隨著互聯網技術的高速發(fā)展,生活節(jié)奏的加快,博客被越來越多的人選擇作為學習和交流的工具。博客的內容豐富多彩,有對其他網站的超鏈接和評論,有個人構思,還有日志、照片、詩歌和散文等。博客具有開放性、互動性和共享性的特點,是一個很好的交流的渠道,是思想展現的舞臺和學術探討的園地。</p><p>  本系統(tǒng)采用B/S(瀏覽器/服務器)開發(fā)模式,以My Ecl

4、ipse作為開發(fā)平臺,采用JSP技術,以Tomcat為服務器和SQL Server 2008為后臺數據庫。本系統(tǒng)是一個實用的個人博客系統(tǒng),集日志、圖片、評論于一身。用戶可以查看文章、相冊,還可以發(fā)表文章評論。博主可以管理自己的日志、相冊、評論等。整個系統(tǒng)層次結構清晰、性能穩(wěn)定、界面友好,使用起來簡單方便。</p><p>  關鍵字:互聯網,B/S,MyEclipse,JSP</p><p&g

5、t;  Person Blog System Design and Implementation</p><p><b>  Abstract</b></p><p>  With the rapid development of Internet technology and high speed of life rhythm, Blog has being cho

6、sen by more and more people as the tool of study and communication. The content of Blog is very rich and colourful which has hyperlink and comment of other website, personal thinking, news, music, article and so on. Beca

7、use of the character of independence, interaction and share of Blog, it is regarded as an outlet of good exchange channel, the stage of personal thought displaying, and the garden a</p><p>  This system use

8、B/S (Browser/Server) development pattern, MyEclipse as a development platform,with the JSP technology, Tomcat for servers and SQL Server 2008 for the backend database.This system is a practical personal blog system ,incl

9、uding logs, pictures, comment as a whole . Visitors can view the article, photo album, also can give a discuss. Blogger can manage their logs, photo albums, comments, etc. The system structure is clear, stable performan

10、ce, friendly interface, it is simple and con</p><p>  Key words: Internet , B/S , MyEclipse , JSP</p><p><b>  目 錄</b></p><p><b>  1 引 言1</b></p>

11、<p>  1.1 個人博客系統(tǒng)簡介1</p><p>  1.2 國內外研究現狀2</p><p>  2 開發(fā)技術及開發(fā)環(huán)境3</p><p>  2.1 開發(fā)技術3</p><p>  2.1.1 JSP概述3</p><p>  2.1.2 Servlet 概述3</p&

12、gt;<p>  2.1.3 JavaBean概述4</p><p>  2.2 JSP網站開發(fā)模式4</p><p>  2.3 開發(fā)工具6</p><p>  2.3.1 MyEclipse簡介6</p><p>  2.3.2 Tomcat簡介6</p><p>  2.3.3

13、SQL Server簡介6</p><p><b>  3 需求分析8</b></p><p>  3.1 功能需求概述8</p><p>  3.2 系統(tǒng)總體功能結構9</p><p>  4 系統(tǒng)概要設計11</p><p>  4.1 數據庫設計E-R圖11</p

14、><p>  4.2 邏輯結構設計14</p><p>  4.3 數據流圖18</p><p>  5 詳細設計與實現20</p><p>  5.1 公共模塊的設計與實現20</p><p>  5.1.1 數據庫連接及操作類的編寫20</p><p>  5.1.2 字符

15、串處理類的編寫20</p><p>  5.1.3 系統(tǒng)配置21</p><p>  5.2 用戶登錄模塊的設計與實現21</p><p>  5.2.1 用戶登錄模塊概述21</p><p>  5.2.2 用戶登錄模塊技術分析22</p><p>  5.2.3 用戶登錄模塊實現過程23<

16、;/p><p>  5.3 前臺模塊的設計與實現23</p><p>  5.3.1 前臺頁面的設計與實現23</p><p>  5.3.2 文章查詢模塊設計與實現26</p><p>  5.3.3 系統(tǒng)訪問統(tǒng)計量模塊設計與實現28</p><p>  5.4 后臺模塊的設計與實現29</p&

17、gt;<p>  5.4.1 后臺頁面的設計與實現29</p><p>  5.4.2 相冊管理模塊設計與實現31</p><p>  6 系統(tǒng)測試34</p><p>  6.1 測試的目的34</p><p>  6.2 測試的方法34</p><p>  6.3 測試過程34

18、</p><p>  6.3.1 單元測試34</p><p>  6.3.2 集成測試38</p><p>  6.3.3 測試問題及解決38</p><p>  6.3.4 測試結果38</p><p><b>  7 結論39</b></p><p&g

19、t;<b>  參考文獻40</b></p><p><b>  致謝42</b></p><p><b>  1 引 言</b></p><p>  1.1 個人博客系統(tǒng)簡介</p><p>  “博客”(Blog或Weblog)一詞源于“Web Log(網絡日志)”

20、的縮寫,是一種十分簡易的傻瓜化個人信息發(fā)布方式[1]。任何人都可以像使用免費電子郵件一樣,完成個人網頁的創(chuàng)建、發(fā)布和更新。博客就是開放的私人空間,可以充分利用超文本鏈接、網絡互動、動態(tài)更新等特點,在網絡中,精選并鏈接全球互聯網中最有價值的信息、知識與資源;也可以將個人工作過程、生活故事、思想歷程、閃現的靈感等及時記錄和發(fā)布,發(fā)揮個人無限的表達力;更可以以文會友,結識和匯聚朋友,進行深度交流溝通[2]。</p><p&

21、gt;  “博客”當然是個大家都陌生的名詞,博客的英文名詞就是“Blog或Weblog”(指人時對應于Blogger),是一個典型的網絡新事物,查閱最新的英文詞典也不可能查到。該詞來源于“Web Log(網絡日志)”的縮寫,特指一種特別的網絡個人出版形式,內容按照時間順序排列,并且不斷更新[3]。</p><p>  博客概念一般包含了三個要素:</p><p> ?。?)網頁主體內容由不

22、斷更新的、個性化的眾多日志組成。</p><p>  (2)按時間順序排列,而且是倒序方式,也就是最新的放在最上面,最舊的放在最下面。</p><p>  (3)內容可以是各種主題、各種外觀布局和各種寫作風格,但是文章內容以“超鏈接”作為重要的表達方式。</p><p>  因此,博客是個人性和公共性的結合體,其精髓不是主要表達個人思想,不是主要記錄個人日常經歷;而

23、是以個人的視角,以整個互聯網為視野,精選和記錄自己在互聯網上看到的精彩內容,為他人提供幫助,使其具有更高的共享價值。博客精神的核心并不是自娛自樂,甚至不是個人表達自由,相反,是體現一種利他的共享精神,為他人提供幫助。個人日記和個人網站主要表現的還是“小我”,而博客表現的是“大我”。也許形式上很接近,但內在有著本質的差異。所有優(yōu)秀博客網站中,真正表達作者個人的內容非常有限,最多只是點綴,而不像個人網站那樣是核心。</p>&

24、lt;p>  1.2 國內外研究現狀</p><p>  據不完全統(tǒng)計,到今天,全世界博客總量已超過一億。其中中國的博客達到1600萬。博客數量大約6個月翻一番,2011年4月份每天新增博客9萬5千人。每天發(fā)貼120萬篇,平均一小時5萬貼。博客的影響力,早已超出了他作為個人,甚至作為自己所在行業(yè)的原有范圍,開始引起主流媒體的強烈關注。自2010年以后,博客迎來了它的飛速發(fā)展時期,作為專業(yè)領域的知識傳播模式

25、,博客成為了該領域最具影響力的方式之一,博客的影響力也將超越傳統(tǒng)媒體。它將成為一種全新的信息組織和傳播方式,發(fā)揮更大的作用。</p><p>  現在的博客網站的主要特點:</p><p> ?。?)零機制:博客屬于個人所有,是自發(fā)建立和非正式的建設。BSP(博客服務托管商)不能對博客發(fā)號施令。 </p><p> ?。?)零技術:博客不需要網站的專業(yè)知識,可以像發(fā)

26、郵件一樣簡單地實現博客網頁的呈現。技術的極度簡化,包括架構和申請博客網站、編輯、上傳和修改內容等。 </p><p> ?。?)零成本:任何一個人都可以像申請免費郵件般免費申請自己的博客網站。不需要注冊域名的成本,不需要租用服務器空間的成本,不需要許多軟件工具的成本。 </p><p> ?。?)零編輯:博客用戶就是編輯,即時寫作、即時發(fā)布、自我檢查。這形成了與傳統(tǒng)寫作截然不同的“體驗”,

27、真正實現了作者“零磨損”的開放式寫作。 </p><p> ?。?)零形式:博客頁面的表現形式和文章內容的表現方式十分靈活,沒有特定形式。 </p><p>  與個人主頁相比較,博客是使用方便的、交互性強。與傳統(tǒng)的電子郵件、BBS和ICQ這三種互聯網溝通方式相比,博客是一種較嚴肅的溝通平臺。BBS公共匿名性很強,而個人性很弱,因此缺乏約束。電子郵件和ICQ則是多用于個人間的通訊,而博客是

28、個人性和公共性的結合。博客是個人在網上展示自己、與別人溝通交流的綜合平臺,它的管理比BBS簡單的多。</p><p>  2 開發(fā)技術及開發(fā)環(huán)境</p><p><b>  2.1 開發(fā)技術</b></p><p>  本系統(tǒng)的開發(fā)采用的是JSP+JavaBean+Servlet模式,在該模式中,結合了JSP和Servlet技術,充分利用了

29、JSP和Servlet兩種技術原有的優(yōu)點[4,5]。在此模式中,JavaBean作為模型的角色,充當JSP和Servlet通信的中間工具,Servlet處理完后設置JavaBean的屬性,JSP讀取此JavaBean的屬性,然后進行顯示。該模式更加明顯地把顯示和邏輯分離,使得代碼更容易管理,適合大型項目的開發(fā)[6,7]。</p><p>  2.1.1 JSP概述</p><p>  J

30、SP即Java Server Pages,是由Sun Microsystem公司于1996年6月推出的新技術,是基于Java Servlet以及整個Java體系的Web開發(fā)技術。JSP已經成為開發(fā)Web動態(tài)網頁重要、快速和有效的工具,是全新的網絡服務器編程環(huán)境[8]。JSP充分利用了Java的強大功能,是一種優(yōu)秀的服務器端技術。隨著Java技術的日益成熟和流行,JSP在網絡編程中也變得越來越重要。JSP基于強大的Java語言,具有極強的

31、擴展能力,良好的縮收性,以及與平臺無關的開發(fā)特性,成為構建動態(tài)網站的主流技術之一,JSP有著其他技術所不具備的優(yōu)勢[9]。其優(yōu)勢在于:可以將內容的生成和顯示進行分離、生成可重用的組件、采用標識簡化頁面開發(fā)。JSP能提供所有Servlet的功能[10]。</p><p>  2.1.2 Servlet 概述</p><p>  Servlet是Java編寫的服務器端程序,是由服務器端執(zhí)行和

32、調用的Java類。Servlet是采用Java技術來實現CGI功能的一種技術,能夠像CGI一樣動態(tài)地擴展Web服務器的功能,并采用請求——響應模式提供Web服務。Servlet和CGI一樣都是運行在Web服務器上,用來生成Web頁面。Servlet的主要功能在于交互式地瀏覽和修改數據,生成動態(tài)Web內容[11,12]。其工作流程圖如圖2.1所示。</p><p>  Servlet工作流程:</p>

33、<p>  a)客戶端發(fā)送請求信息至服務器。</p><p>  b)服務器將請求信息發(fā)送至Servlet。</p><p>  c)Servlet生成響應內容并將其傳給Servlet。響應內容動態(tài)生成,通常取決于客戶端的請求。</p><p>  圖2.1 Servlet工作流程圖</p><p>  d)服務器將響應信息返回至

34、客戶端。</p><p>  2.1.3 JavaBean概述</p><p>  JavaBean是Sun公司為了進入因特網、企業(yè)網以及萬維網上進行分布式計算的組件結構入口。按照Sun公司的定義,JavaBean是一個可重復使用的軟件部件。JavaBean體系結構是第一個全面地基于組件的標準模型之一,該組件是Java類,這些類遵循一個接口格式,以便于使方法命名、底層行為以及繼承或實現的

35、行為能夠把類看做標準的JavaBean組件的方式進行構造[13,14]。</p><p>  在Java模型中,通過JavaBean可以無限擴充Java程序的功能,通過JavaBean的組合可以快速生成新的應用程序。JavaBean具有以下特點:</p><p>  a)可以實現代碼的重復利用。</p><p>  b)易維護性、易使用性、易編寫性。</p&g

36、t;<p>  c)可以在Java的任何平臺上工作,不需要重新編譯。</p><p>  d)可以在內部網或者網絡之間進行傳輸。</p><p>  e)可以以其它部件的模式進行工作。</p><p>  JavaBean在JSP程序中常用來封裝事務邏輯、數據庫操作等,可以很好的實現業(yè)務邏輯和前臺程序的分離,使得系統(tǒng)具有更好的健壯性和靈活性。</

37、p><p>  2.2 JSP網站開發(fā)模式</p><p>  目前,JSP技術已經成為一種受大多數大型企業(yè)或中小型企業(yè)喜愛的動態(tài)網頁開發(fā)技術。越來越多的技術人員也逐步成為JSP技術的推崇者。JSP技術正是利用了Java的“一次開發(fā),處處使用”的性能,成為了網站開發(fā)技術人員的首選技術。當然,JSP技術的最大優(yōu)勢在于能夠將頁面的表現形式和頁面的商業(yè)邏輯分開[15,16]。</p>

38、<p>  JSP網站開發(fā)技術標準提供了兩種開發(fā)模式:一種是JSP+JavaBean開發(fā)模式;一種是JSP+Servlet+JavaBean開發(fā)模式。</p><p>  JSP+JavaBean模型圖如圖2.2所示。</p><p>  圖2.2 JSP+JavaBean模型圖</p><p>  在這種模型中,JSP頁面獨自響應請求并將處理結果返回給

39、客戶,所有的數據通過JavaBean來處理,JSP實現頁面的顯示。此模型常常會導致頁面被嵌入大量的腳本語言或者Java代碼段,當處理大型業(yè)務時,頁面程序將變得異常復雜給開發(fā)和維護帶來困難[17]。</p><p>  JSP+Servlet+JavaBean模型圖如圖2.3所示。</p><p>  圖2.3 JSP+Servlet+JavaBean模型圖</p><p

40、>  Servlet技術是一種采用Java技術來實現CGI功能的一種技術。Servlet是運行在Web服務器上,用來生成Web頁面。Servlet技術非常適于服務器端的處理和編程。</p><p>  在此種開發(fā)模式中,JSP技術用來顯示頁面,該頁面中沒有任何的商業(yè)處理邏輯,通過Servlet技術來完成大量的事物處理工作。Servlet用來處理事務的請求,充當著一個控制者的角色,并負責向客戶發(fā)送請求,創(chuàng)建J

41、SP需要的Bean和對象,根據用戶的請求行為,決定將哪個JSP頁面發(fā)送給用戶。</p><p>  從上面兩種開發(fā)模式來說:第二種模式要好些,更適合于團隊開發(fā),速度相對較慢,但是可維護性高。</p><p><b>  2.3 開發(fā)工具</b></p><p>  開發(fā)本系統(tǒng)用到的工具有MyEclipse、Tomcat服務器、SQL Serv

42、er2008數據庫,下面對這些工具做了簡介。</p><p>  2.3.1 MyEclipse簡介</p><p>  MyEclipse 是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產品的支持十分不錯。</p><p>  MyEclipse目前支持Java Serv

43、let, AJAX, JSP, JSF, Struts, Spring, Hibernate,</p><p>  EJB3,JDBC數據庫鏈接工具等多項功能??梢哉fMyEclipse幾乎囊括了目前所有主流開源產品的專屬eclipse開發(fā)工具[18]。</p><p>  2.3.2 Tomcat簡介</p><p>  如今,基于Web的應用越來越多,傳統(tǒng)的Ht

44、ml已經滿足不了如今的需求。因此需要一個交互式的Web,于是便誕生了各種Web語言。如Asp,Jsp,Php等。當然,這些語言與傳統(tǒng)的語言有著密切的聯系,如Php基于C和C++語言,Jsp基于Java語言。Tomcat即是一個Jsp和Servlet的運行平臺。</p><p>  Tomcat是一個免費的開源的Serlvet容器,是Apache基金會的Jakarta項目中的一個核心項目,由Apache,Sun和其

45、它一些公司及個人共同開發(fā)而成。</p><p>  2.3.3 SQL Server簡介</p><p>  SQLServer2008作為Microsoft家庭的重要成員,是基于客戶機/服務器的大型關系數據庫網站。SQLServer2008這種關系型數據庫網站能夠滿足各種類型的企業(yè)客戶和獨立軟件供應商構建商業(yè)應用程序的需求,根據客戶的反映和需求,是大規(guī)模聯機事務處理(OLTP)、數據倉

46、庫和電子商務應用程序的優(yōu)秀數據庫平臺[19]。SQL Server 2008 具有以下特點:</p><p> ?。?)強大可伸縮性。</p><p> ?。?)支持大型Web站點或企業(yè)信息處理網站。</p><p> ?。?)客戶機/服務器體系結構。</p><p>  而數據源包含了數據庫位置和數據庫類型等信息,實際上是一種數據連接的抽象

47、。各部件之間的關系如圖2.4所示:</p><p>  圖2.4 數據庫連接的實現</p><p><b>  3 需求分析</b></p><p>  需求分析工作是軟件生存周期最重要的一個環(huán)節(jié)。需求分析的基本任務是要確定系統(tǒng)必須完成哪些工作,并提出完整、準確、清晰、具體的要求。需求分析階段確定的系統(tǒng)邏輯模型是以后設計和實現目標系統(tǒng)的基礎,

48、因此,必須準確完整地體現用戶的要求。要體現用戶的要求,就必須從以下幾個方面進行分析。</p><p>  3.1 功能需求概述</p><p>  經參考現有的幾大博客網站如QQ空間,新浪博客等,本系統(tǒng)采用Browser/Server結構,將個人博客系統(tǒng)劃分為兩個模塊:前臺模塊和后臺模塊。</p><p>  下面分析各個模塊的功能需求。</p>&

49、lt;p><b>  一、前臺模塊</b></p><p>  在前臺的功能實現上,可以分為以下幾個部分。</p><p>  (1)用戶登錄:用戶用個人注冊的帳號,密碼登錄到系統(tǒng)。系統(tǒng)檢測用戶的帳號,密碼并給予其相應的權限對系統(tǒng)進行操作。</p><p>  (2)用戶注冊:訪客將個人的信息存儲到博客系統(tǒng)的數據庫中,以成為本博客的正式用

50、戶。</p><p>  (3)用戶修改個人信息:把已存儲的用戶信息用一個網頁顯示出來,方便用戶對個人信息進行更新。</p><p>  (4)文章查詢和留言:用戶可以瀏覽博客中的文章同時給感興趣的文章評論。</p><p>  (5)公告信息查詢:用戶可以瀏覽網站中發(fā)布的公告信息,了解博客的一些情況。</p><p>  (6)相片查詢:用

51、戶可以對博客中的相片,圖片等進行查詢,瀏覽。</p><p>  (7)游客投訴:用戶可以借助微軟開發(fā)的OutlookExpress方便地進行言論監(jiān)督。</p><p>  (8)網站訪問統(tǒng)計量:可以查看總的訪問統(tǒng)計量和當日訪問統(tǒng)計量。</p><p>  (9)投票:用戶可以通過該鏈接支持博主發(fā)起的投票,并且可以查看投票結果。</p><p&g

52、t;  (10)友情鏈接:用戶可以通過該鏈接查看相關內容。</p><p>  (11)朋友信息:用戶可以查看博主的好友及其相關信息。</p><p><b>  二、后臺模塊</b></p><p>  通過計算機網絡將前臺與后臺的數據庫相連,網站管理員將從前臺得到的信息進行處理,實現文章管理,公告管理,投票管理,個人相冊管理,朋友管理,用戶

53、設置及博主設置等子網站。</p><p>  (1)文章管理:博主可以添加新文章,對已有的文章進行修改和刪除,還可以查看文章回復。</p><p>  (2)公告管理:發(fā)布,刪除,更改公告。</p><p>  (3)投票管理:添加投票內容,統(tǒng)計票數,刪除投票內容。</p><p>  (4)朋友管理:對朋友信息進行添加,刪除和修改。<

54、/p><p>  (5)個人相冊管理:對博客相冊中的圖片進行添加,刪除和修改。</p><p>  (6)用戶設置:對普通用戶的信息進修查詢,刪除。</p><p>  (7)博主設置:對博主的信息進行修改。</p><p>  3.2 系統(tǒng)總體功能結構</p><p>  圖3.1 個人博客系統(tǒng)前臺功能結構</p

55、><p>  圖3.2 個人博客系統(tǒng)后臺功能結構</p><p><b>  4 系統(tǒng)概要設計</b></p><p>  4.1 數據庫設計E-R圖</p><p>  為了把用戶的數據要求清晰明確地表達出來,通常要建立一個概念性的數據模型。概念性數據模型是一種面向問題的數據模型,是按照用戶的觀點來對數據和信息建模。描

56、述了從用戶角度看到的數據,反映了用戶的現實環(huán)境。</p><p>  最常用的表示概念性數據模型的方法,是實體—聯系方法(Entity—Relationship Approach)。這種方法用ER圖描述現實世界中的實體,而不涉及這些實體在系統(tǒng)中的實現方法。用這種方法表示的概念性數據模型又稱為ER模型。</p><p> ?。?)文章實體,具體屬性如圖4.1所示。</p>&l

57、t;p><b>  圖4.1 文章實體</b></p><p>  (2)文章類型實體,具體屬性如圖4.2所示。</p><p>  圖4.2 文章類型實體</p><p> ?。?)文章回復實體,具體屬性如圖4.3所示。</p><p>  圖4.3 文章回復實體</p><p> ?。?

58、)用戶實體,具體屬性如圖4.4所示。 </p><p><b>  圖4.4 用戶實體</b></p><p> ?。?)公告實體,具體屬性如圖4.5所示。 </p><p><b>  圖4.5 公告實體</b></p><p>  (6)朋友實體,具體屬性如圖

59、4.6所示。</p><p><b>  圖4.6 朋友實體</b></p><p> ?。?)個人相冊實體,具體屬性如圖4.7所示。</p><p>  圖4.7 個人相冊實體</p><p> ?。?) 投票實體,具體屬性如圖4.8所示。</p><p><b>  圖4.8 投票實

60、體</b></p><p> ?。?) 訪問量實體,具體屬性如圖4.9所示。</p><p>  圖4.9 訪問量實體</p><p> ?。?0)個人博客系統(tǒng)的總E-R圖,如圖4.10所示。</p><p>  圖4.10 個人博客系統(tǒng)的總E-R圖</p><p>  4.2 邏輯結構設計</p&

61、gt;<p>  一個設計良好的數據庫,可以使網站的實現變得非常的簡單。同時,也可以使網站的執(zhí)行速度變得很快。反之,一個設計混亂的數據庫,不僅增加了吸引的管理實現過程,同時在網站的執(zhí)行過程中,使得檢索變得很慢,降低效率。所以數據庫的設計是一個網站設計很重要的步驟。</p><p>  根據網站功能設計要求和模塊劃分,本站的數據庫主要有文章信息、文章類型信息、文章回復信息、用戶信息、公告信息、朋友信息

62、、個人相冊信息、投票信息、訪問統(tǒng)計信息。</p><p>  數據庫的設計通常是以一個已經存在的數據庫管理網站為基礎的,常用的數據庫管理網站有Access、SQL Server、Oracle、My SQL等。根據用戶需求和網站分析,本網站采用SQL Server2008數據庫管理網站。在SQL Server2008數據庫管理網站中建立名稱為在myblog的數據庫[20,21]。</p><p&

63、gt; ?。?)文章信息表(artical)</p><p>  該表記錄了文章的相關信息,包括文章編號、文章類型編號、文章題目、文章內容、文章發(fā)布時間、文章訪問次數,其結構如表4.1所示。</p><p>  表4.1 文章信息表(artical)</p><p> ?。?)文章類型信息表(articalType)</p><p>  該表

64、記錄了文章類型的相關信息,包括文章類型編號 、文章類型名稱、文章類型描述,其結構如表4.2所示。 </p><p>  表4.2 文章類型信息表(articalType)</p><p>  (3)文章回復信息表(reply)</p><p>  該表列出了文章回復的相關信息,包括文章回復編號、文章編號、文章回復用戶、文章回復標題、文章回復內容,其結構如表4.3所示

65、。</p><p>  表4.3 文章回復信息表(reply)</p><p> ?。?)用戶信息表(consumer)</p><p>  該表列出了用戶的相關信息,包括用戶編號、用戶名、用戶密碼、用戶姓名、用戶性別、QQ號碼、用戶主頁、用戶興趣、郵箱地址、用戶等級,其結構如表4.4所示。</p><p>  表4.4 用戶信息表(co

66、nsumer)</p><p> ?。?)公告信息表(discuss)</p><p>  該表記錄了公告的相關信息,包括公告編號、 公告題目、公告內容、公告發(fā)布時間,其結構如表4.5所示。</p><p>  表4.5 公告信息表(discuss)</p><p> ?。?)朋友信息表(friend)</p><p&g

67、t;  該表列出了朋友的相關信息,包括朋友編號、朋友昵稱、 QQ號碼、朋友描述,其結構如表4.6所示。</p><p>  表4.6 朋友信息表(friend)</p><p> ?。?)個人相冊信息表(photo)</p><p>  該表列出了個人相冊的相關信息,包括相片編號、相片上傳地址、相片描述、相片上傳時間,其結構如表4.7所示。</p>

68、<p>  表4.7 個人相冊信息表(photo)</p><p> ?。?) 投票信息表(vote)</p><p>  該表列投票的相關信息,包括投票編號、投票內容、票數,其結構如表4.8所示。</p><p>  表4.8 投票信息表(vote)</p><p> ?。?)訪問統(tǒng)計表(visitorcounter)</

69、p><p>  該表列訪問統(tǒng)計的相關信息,包括訪問編號、訪問日期、訪問數量,其結構如表4.9所示。</p><p>  表4.9 訪問統(tǒng)計表(visitorcounter)</p><p><b>  4.3 數據流圖</b></p><p>  數據流圖分析主要包括對信息的流動、傳遞、處理、存儲等的分析。數據流圖分析的

70、目的就是要發(fā)現和解決數據流通中出現的問題[22]?,F有的數據流圖分析是通過分層的數據流程圖(data flow diagram,簡稱DFD)來實現的。其具體的做法是:按照網站的設計理出的業(yè)務流程順序,繪制成一套完整的數據流圖[23]。</p><p>  網站運行過程中,主要涉及到兩部分的數據流向,博客的頂層DFD圖,如圖4.11所示。</p><p>  圖4.11 博客系統(tǒng)頂層DFD

71、</p><p>  將頂層DFD分解得博客網的第二層DFD,博主進入后臺可以進行相應的管理,訪客注冊成為用戶后,可以查看博主發(fā)布的相關信息[24],如圖4.12所示。</p><p>  圖4.12 博客系統(tǒng)第二層DFD</p><p>  5 詳細設計與實現</p><p>  在概要設計階段,我們已經確定了該網站的總體結構,給出了博

72、客網站中各個模塊的功能[25]。接下來的任務就是進行詳細設計,詳細設計階段的任務,就是要在上述工作的基礎上,確定應該怎樣具體地實現所要求的系統(tǒng)。</p><p>  5.1 公共模塊的設計與實現</p><p>  為了實現本網站需要的公共模塊有數據庫連接及操作類、字符串處理類、對Servlet進行系統(tǒng)配置。</p><p>  5.1.1 數據庫連接及操作類的

73、編寫</p><p>  本次使用SQL Server 2008數據庫。安裝完SQL Server 2008 JDBC Driver,就可以編寫與數據庫連接的類。JDBConnection.java中不僅提供了數據庫的連接,還有根據數據庫獲取的Statement和ResultSet等,com.wy.tool.JDBConnection類封裝了關于數據庫的各項操作,關鍵代碼如下。</p><p&

74、gt;  public class JDBConnection {</p><p>  private final String url = "jdbc:sqlserver://localhost:1433;DatabaseName=myblog";</p><p>  private final String userName = "sa";<

75、;/p><p>  private final String password = "zhf0219";</p><p>  private Connection con = null; </p><p><b>  static {</b></p><p><b>  try {</b&

76、gt;</p><p>  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); </p><p>  } catch (Exception ex) {</p><p>  System.out.println("數據庫加載失敗&

77、quot;);</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.1.2 字符串處理類的編寫</p><p>  使用JSP開發(fā)網站經常要過濾一些特殊字符或轉換一些字符,這些功能通常都需要編寫一個獨立的類來完成,本網站中通過編寫名為Chines

78、e的類來實現字符的過濾和轉換。</p><p>  public class Chinese {</p><p>  public static String toChinese(String strvalue) {</p><p><b>  try {</b></p><p>  if (strvalue ==

79、null) {</p><p>  return "";</p><p><b>  } else {</b></p><p>  strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");</p><

80、p>  return strvalue; }</p><p>  } catch (Exception e) {</p><p>  return "";</p><p><b>  }</b></p><p><b>  }</b></p><p&g

81、t;  5.1.3 系統(tǒng)配置</p><p>  本網站是采用Servlet和JavaBean結合技術開發(fā)的。JavaBean技術實現對數所謂中的操作不需要在XML文件中進行任何的配置,而正常運行servlet程序還需要進行適當的配置,配置文件為web.xml[26]。關鍵代碼如下。</p><p><b>  <servlet></b></p&g

82、t;<p>  <servlet-name>ConsumerServlet</servlet-name></p><p>  <servlet-class>com.wy.webiter.ConsumerServlet</servlet-class></p><p>  </servlet></p>&l

83、t;p><b>  ......</b></p><p>  <servlet-mapping></p><p>  <servlet-name>ConsumerServlet</servlet-name><!--映射ConsumerServlet名稱></p><p>  <url-

84、pattern>/ConsumerServlet</url-pattern><!--映射ConsumerServlet訪問url路徑></p><p>  5.2 用戶登錄模塊的設計與實現</p><p>  5.2.1 用戶登錄模塊概述</p><p>  用戶登錄模塊具有用戶登錄功能。博客系統(tǒng)運行的第一個頁面便是用登錄頁面。用戶

85、登錄后可以查看博主發(fā)表的文章。在用戶登錄頁面中,在“用戶名”與“密碼”的文本框中輸入用用戶名和密碼后,單擊“登錄”按鈕,網站驗證成功后,用戶將以用戶的身份進入博客網首頁,之后在網站中可以隨意查看博主發(fā)布的文章。如果登錄的用戶就是博主本人,在博主信息顯示區(qū)域中,則出現“進入后臺”超鏈接,博主可以直接單擊此超鏈接,進入博客網的后臺進行管理。用戶登錄模塊的流程圖如圖5.1所示。</p><p>  圖5.1 用戶登錄

86、模塊的流程圖</p><p>  5.2.2 用戶登錄模塊技術分析</p><p>  在用戶登錄模塊中,涉及的數據表是用戶信息表(consumer),在用戶信息表中保存著用戶名和密碼等信息,根據這些信息來創(chuàng)建登錄模塊的form,名稱為ConsumerForm。 </p><p>  Servlet核心在于它的HttpServlet,一般在Servlet里面做頁

87、面的邏輯跳轉工作。用戶登錄功能模塊的Servlet實現類繼承了HttpServlet類,在該類中首先設置用戶登錄模塊的ConsumerDao類的對象,該對象在每個具體的方法中實例化,doGet()在Servlet中自動被調用。該方法本身沒有具體的事務,是根據通過HttpServletRequest的getParameter()方法獲取的method參數值執(zhí)行相應的方法的。</p><p>  5.2.3 用戶登

88、錄模塊實現過程</p><p>  用戶登錄模塊是博客系統(tǒng)最先使用的功能,是系統(tǒng)的入口。在用戶登錄頁面中,用戶可以通過輸入正確的用戶名和密碼進入,當用戶沒有輸入用戶名和密碼時,系統(tǒng)會通過JavaScript腳本進行判斷,并給予提示信息。用戶登錄頁面如圖5.2所示。</p><p>  圖5.2 用戶登錄頁面</p><p>  在登錄模塊中需要判斷登錄用戶是否為博

89、主。普通用戶身份驗證成功后,在博客網的首頁將顯示該用戶的信息;如果博主登錄后,則在博主顯示區(qū)域中顯示“進入后臺”超鏈接。當用戶驗證成功后,用戶對應的form信息和用戶登錄級別信息將保存在session對象中,程序員將根據保存在session對象中的form信息和用戶登錄級別信息(manageLevel)來判斷登錄的用戶是否為博主。</p><p>  5.3 前臺模塊的設計與實現</p><

90、p>  5.3.1 前臺頁面的設計與實現</p><p> ?。?) 前臺頁面概述</p><p>  在前臺頁面設計中,首先將管理員發(fā)布的最新文章展現給用戶,然后提供文章的分類、顯示博主的信息、顯示最新公告及博客網導航區(qū)功能等功能。博客系統(tǒng)面向用戶客戶端的流程圖如圖5.3所示,前臺頁面運行效果圖如圖5.4所示。</p><p>  圖5.3 面向用戶客戶端

91、的流程圖</p><p>  圖5.4 前臺首頁運行效果圖</p><p> ?。?) 前臺首頁技術分析</p><p>  在如圖5.3所示首面中的顯示博主的基本信息、顯示登錄用戶信息、顯示博客的主要功能、顯示博主的朋友圈等功能,并不是只存在于首頁中,其他功能模塊的子頁面中也需要包括這些部分。因此,可以將這幾個部分分別保存在單獨的文件中,這樣在需要放置相應功能時

92、只需包含這些文件即可,如圖5.5所示。</p><p>  圖5.5 前臺頁面布局</p><p>  在JSP頁面中包含文件有兩個方法:一種是就用<%@ include %>指令實現,另一種是應用<jsp:include>動作元素實現。本網站使用的是<jsp:include>動作元素,該動作元素用于向當前頁面中包含其他的文件,這個文件可以是動態(tài)文件也

93、可以是靜態(tài)文件。</p><p>  5.3.2 文章查詢模塊設計與實現</p><p>  (1) 文章查詢模塊概述</p><p>  文章查詢模塊的主要功能是用戶在瀏覽網站時查看發(fā)表的文章列表詳細內容,包括文章的題目、發(fā)布時間、該文章的瀏覽次數等,并可以針對發(fā)表文章進行回復。這是博客最具代表性的特點之一。它給博主和用戶提供展示文筆的平臺,增加博主與用戶、用戶

94、與用戶之間的交流,能夠使博客網站內的氣氛更加活躍,內容更加豐富。前臺文章查詢模塊主要包括所有文章查詢、文章分類查詢、文章內容詳細查詢及文章回復功能。</p><p> ?。?) 文章查詢模塊技術分析</p><p>  在本網站中,前臺文章查詢模塊主要應用的是JavaBean技術,應用<jsp:useBean>動作標簽創(chuàng)建并使用一個JavaBean。<jsp:useBea

95、n>執(zhí)行方式非常靈活,如果執(zhí)行<jsp:useBean>,將去尋找是否存在相同ID和scope。<jsp:useBean>語法如下。</p><p>  <jsp:useBean id="name" scope="page|request|session|application" class="path"><

96、;/p><p>  <jsp:useBean>的屬性說明如表5.1所示。</p><p>  表5.1 <jsp:useBean>屬性</p><p> ?。?) 文章分類查詢實現過程</p><p>  當用戶登錄后,在系統(tǒng)的首頁右側操作區(qū)中單擊“文章”超鏈接,網頁會自動彈出一個URL,即head_ArticleLis

97、t.jsp,將分類顯示文章的信息,在該頁面中,首先通過javabean定義分頁操作的類(MyPagination),之后調用ArticleDao類中的queryArticle()方法查詢所有的文章信息,最后將查詢的結果顯示在頁面中,如圖5.6所示。</p><p>  圖5.6 前臺分類顯示文章信息</p><p>  5.3.3 系統(tǒng)訪問統(tǒng)計量模塊設計與實現</p>&

98、lt;p>  訪問統(tǒng)計量模塊的主要功能是在瀏覽網站時可以查看總的訪問統(tǒng)計量和當日訪問量,包這是網站的最具代表性的特點之一。</p><p>  通常網站訪問的數據是放在一個文件中的,通過文件的讀寫操作,在需要顯示的頁面中顯示出來。但本次設計是將頁面分割成幾部分,然后通過JSP中的<jsp:include>動作元素將需要顯示的頁面加載到前頁面中。此次是將訪問量放在右側,點擊頁面各種超鏈接時都會不斷

99、刷新右側界面,即使使用了防刷新技術但仍無法實現此功能。</p><p>  本次設計是當用戶登錄時先判斷用戶等級,對于普通用戶則先通過調用addCount()方法實現數據庫數據更新,然后調用VisitorcounterDao類中的getCount ()、getAllCount()方法查詢當天訪問量和總訪問量,并將結果存放在session中,最后頁面通過讀取session中的結果顯示在頁面中。</p>

100、<p>  5.4 后臺模塊的設計與實現</p><p>  后臺模塊設計中首先介紹了頁面的設計,對它的功能子模塊,包括文章管理,相冊管理,公告管理,用戶管理等,功能基本相似,在此詳細介紹了相冊管理模塊的設計與實現。</p><p>  5.4.1 后臺頁面的設計與實現</p><p>  在博客系統(tǒng)的后臺首頁設計中,首先將管理員常用的功能顯示在網面

101、的操作區(qū)域中,然后將后臺的主要功能顯示在網站的左側區(qū)域。博客系統(tǒng)面向博主的流程圖如圖5.7所示,后臺運行界面如圖5.8所示。</p><p>  圖5.7 面向系統(tǒng)管理員的流程圖</p><p>  圖5.8 后臺頁面的運行效果圖</p><p>  5.4.2 相冊管理模塊設計與實現</p><p> ?。?) 相冊管理模塊概述<

102、/p><p>  相冊管理模塊的主要功能是實現對相片文件的上傳、查詢和刪除操作,可以使博主隨時更新個人博客網站內的相冊文件,便于對相冊文件的管理,以吸引更多的瀏覽者。</p><p> ?。?) 相冊管理模塊技術分析</p><p>  在相冊管理模塊中,涉及的數據表是相冊信息表(photo),在相冊信息表中保存相冊存放的服務器的路徑及相冊標題等信息,根據這些信息來創(chuàng)建

103、相冊管理模塊的ActionForm類,名稱為PhotoForm。相冊管理模塊對應的Servlet實現類的名稱為PhotoSerlvet,其中,doGet()和doPost()方法本身沒有具體的事務,而是通過,HttpServletRequest的getParameter()方法獲取的method參數值執(zhí)行相應的方法的。</p><p> ?。?) 相片上傳的實現過程</p><p>  博

104、主進入后臺管理頁面中,單擊左側功能區(qū)中的“相冊添加”超鏈接,將進入相片上傳頁面如圖5.9所示。</p><p>  圖5.9 相片上傳頁面</p><p>  相冊上傳應用到jspSmartUpload上傳組件,在jspSmartUpload上傳組件中主要包含了File、Request和SmartUpload核心類。File類存所有上傳的文件,通過類中的方法可獲得上傳文件的數量和總長度等

105、信息。Request類因為當form表單用來實現文章上傳時,通過jsp的內置對象request的getParameter()方法無法獲取其他表單值,所以提供了該類來獲取。SmartUpload類用于實現文件的上傳與下載操作。</p><p> ?。?) 相冊設置的實現過程</p><p>  博主進入后臺管理頁面中,單擊左側功能區(qū)中的“相冊設置”超鏈接,網頁會自動彈出一個URL,即back

106、_PhotoSelect.jsp,將顯示所有照片的信息,在該頁面中,首先通過javabean定義分頁操作的類(MyPagination),之后調用PhotoDao類中的queryPhoto()、operationPhoto()方法對相片進行查詢、刪除操作,最后將結果顯示在頁面中如圖5.10所示。</p><p>  圖5.10 相冊設置頁面</p><p><b>  6 系

107、統(tǒng)測試</b></p><p>  6.1 測試的目的</p><p>  本測試檢查此博客系統(tǒng)為網友提供的一個相互交流,學習的平臺可以正常使用,實現數據的共享和網友的互動交流。</p><p>  6.2 測試的方法</p><p>  單元測試又稱模塊測試,是針對軟件設計的最小單位——程序模塊,進行正確性檢驗的測試工作。這

108、個階段我們會對各個程序模塊可能存在的錯誤進行分析,測試。</p><p>  集成測試也稱為組裝測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為系統(tǒng),進行集成測試,這個階段我們查看模塊之間的連接功能,以及可能出現的錯誤。</p><p>  采用黑盒測試法對以上測試項進行測試。</p><p><b>  6.3 測試過程</b>&l

109、t;/p><p>  6.3.1 單元測試</p><p> ?。?)首頁頁面布局,如圖6.1所示。</p><p>  圖6.1 首頁頁面顯示</p><p> ?。?)首頁顯示模塊測試結果如表6.1所示。</p><p>  表6.1 首頁顯示模塊測試結果</p><p>  (3)登錄模塊測

110、試結果如表6.2所示。</p><p>  表6.2 登陸模塊測試結果</p><p> ?。?)博主后臺管理模塊測試結果如表6.3所示。</p><p>  表6.3 后臺管理模塊測試結果</p><p><b> ?。?)測試頁面</b></p><p>  圖6.2 查看投票頁面</p

111、><p>  圖6.3 投票成功頁面</p><p>  圖6.4 后臺查看用戶成功頁面</p><p>  圖6.5后臺查看文章類別成功頁面</p><p>  圖6.6 后臺查看文章運行成功頁面</p><p>  6.3.2 集成測試</p><p>  在單元測試的基礎上,將所有模塊按照設

112、計要求組裝成為系統(tǒng),進行集成測試,這個階段我們查看模塊之間的連接功能,以及可能出現的錯誤如表6.4所示。</p><p>  表6.4 模塊之間的連接測試結果</p><p><b>  測試問題及解決</b></p><p>  表6.5 測試問題及解決</p><p>  6.3.4 測試結果</p>

113、<p>  通過對博客系統(tǒng)的單元測試,集成測試,發(fā)現了在訪問博客系統(tǒng)時出現了一些問題,并提出了解決方法。更好的完善了博客系統(tǒng),保證了其質量且運行時減少了一些錯誤。</p><p><b>  7 結論</b></p><p>  個人博客系統(tǒng)是對現在比較流行的博客網站進行詳細調研后,確定了系統(tǒng)涉及的領域,包括數據庫設計、界面設計等,是一個具有實際應用意義

114、的系統(tǒng)。本系統(tǒng)已實現功能如下:</p><p>  (1)用戶登錄模塊實現了普通用戶登陸、博主登陸和用戶注冊功能。</p><p>  (2)前臺用戶操作模塊實現了用戶瀏覽博文,查看評論,評論博文,查看公告、相冊、朋友信息等功能。</p><p> ?。?)后臺博主管理模塊實現了文章、公告、相冊、評論、用戶、朋友和博主自己信息的管理等功能。</p>&

115、lt;p>  課題系統(tǒng)相對原有博客實例的創(chuàng)新之處主要體現在以下幾個方面:</p><p> ?。?)采用JavaBean類來封裝事務邏輯、數據庫操作等,很好的實現業(yè)務邏輯和前臺程序的分離,使得系統(tǒng)具有更好的健壯性和靈活性;</p><p>  (2)使用CSS來進行布局設計,使得頁面的布局更加靈活;</p><p> ?。?)實現文章、評論、相冊等模塊的自動分

116、頁功能,避免因為文章和評論的數目過多而造成的管理不便。</p><p>  由于時間關系,系統(tǒng)在實施中有諸多考慮不足的地方。在往后拓展完善階段,個人博客系統(tǒng)還可以針對以下幾個方面進一步開展研究、升級和實踐工作,如本次開發(fā)中尚未完成的功能,包括背景音樂,相冊分類查詢,美文推薦等功能;技術上需要進一步更新;系統(tǒng)各個層次上的安全性能也有待提高。在今后的學習和工作當中,我會再接再勵,做出更好的軟件系統(tǒng)。</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論