2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  學 士 學 位 論 文</p><p>  THESIS OF BACHELOR</p><p> ?。?008 —2012年)</p><p>  博客網(wǎng)站的設計與實現(xiàn)</p><p>  Design And Implementation of Blog Website </p><p>  

2、姓 名: </p><p>  學 號: </p><p>  學 院: 軟件學院 </p><p>  專 業(yè): 軟件工程 </p><p>  完成時間: 2012年4月1號 </p><p>  指導老師:

3、 </p><p><b>  摘 要</b></p><p>  博客信息管理系統(tǒng)致力于為廣大用戶提供優(yōu)質(zhì)的互動交流平臺,提高網(wǎng)站的知名度和訪問量,從而獲得為企業(yè)提供更多產(chǎn)品介紹及展示的機會,提升自己網(wǎng)站的價值。為了滿足博客信息管理系統(tǒng)的要求,實現(xiàn)系統(tǒng)靜態(tài)與動態(tài)頁面的相互分離,系統(tǒng)采用JSP+JavaBean+Servlet和SQL Serv

4、er2005數(shù)據(jù)庫相結(jié)合的開發(fā)模式。</p><p>  論文首先論述了系統(tǒng)的開發(fā)背景和設計目標,并對系統(tǒng)開發(fā)所采用的技術(shù)進行相應的簡單介紹。在系統(tǒng)分析中,對系統(tǒng)的模型進行簡單分析,明確系統(tǒng)的操作流程,并對系統(tǒng)進行可行性分析,確定在目前的條件下,開發(fā)博客信息管理系統(tǒng)是可行的。在需求分析結(jié)果的基礎上,對系統(tǒng)的功能模塊進行劃分。接著對系統(tǒng)中的數(shù)據(jù)庫進行模型設計,包括數(shù)據(jù)流圖、實體聯(lián)系圖及數(shù)據(jù)表結(jié)構(gòu)。在系統(tǒng)的設計與實現(xiàn)

5、中,確定系統(tǒng)的開發(fā)思想以及開發(fā)環(huán)境,并對系統(tǒng)中的JavaBean和Servlet代碼進行設計。最后給出了系統(tǒng)中模塊的詳細設計與實現(xiàn),并對系統(tǒng)模塊涉及到的關(guān)鍵源代碼進行了詳細的分析。</p><p>  經(jīng)過調(diào)試運行后表明,系統(tǒng)可以滿足用戶創(chuàng)建個人博客的各項要求。</p><p>  關(guān)鍵詞:MVC;JSP;JAVABEAN;博客</p><p><b> 

6、 Abstract</b></p><p>  The blog information management system is concentrates on high-quality interactive exchanges platform for a large number of users, increasing the visits and making the website mo

7、re 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 functions of blog information

8、management system, achieving the system's static page separate with dynamic page mutually, using JSP+ </p><p>  The paper discusses the background of development of the system and the design of the targe

9、t 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

10、 the system, ensure that under the current term, developing blog information management system is feasible. At the foundation of requirement with the analyse result, proceeding the providin</p><p>  After de

11、bugging and running ,it shows that the system can satisfy with users to create personal blog.</p><p>  Key Words:MVC;JSP; JAVABEAN;Blog</p><p><b>  目 錄</b></p><p><b&

12、gt;  第1章 緒論1</b></p><p>  1.1 系統(tǒng)的開發(fā)背景1</p><p>  1.2 系統(tǒng)開發(fā)的目標及意義1</p><p>  1.3 本文的主要內(nèi)容2</p><p>  第2章 開發(fā)技術(shù)3</p><p>  2.1 JSP的基礎——Servlet 技術(shù)4

13、</p><p>  2.2 JavaBean原理和機制4</p><p>  2.3 開發(fā)平臺:Eclipse+dreamweaver6</p><p>  2.4 SQL SERVER 20056</p><p>  第3章 分析與設計8</p><p>  3.1 業(yè)務流分析及流程圖8<

14、/p><p>  3.2 數(shù)據(jù)流圖分析8</p><p>  3.3 功能模塊設計9</p><p>  3.3.1 博客注冊登錄管理模塊9</p><p>  3.3.2 博客及文章檢索查詢模塊10</p><p>  3.3.3 博客頁面顯示模塊10</p><p>  3.

15、3.4 博客個人管理維護模塊10</p><p>  3.4 數(shù)據(jù)庫設計E-R圖11</p><p>  3.5 系統(tǒng)數(shù)據(jù)表設計13</p><p>  第4章 系統(tǒng)實現(xiàn)16</p><p>  4.1 系統(tǒng)主界面16</p><p>  4.1.1 注冊模塊的實現(xiàn)16</p>&

16、lt;p>  4.1.2 發(fā)表評論模塊18</p><p>  4.1.3 刪除日志模塊19</p><p>  4.2 修改個人資料界面20</p><p>  4.3 上傳圖片界面21</p><p>  4.4 系統(tǒng)主要功能模塊的實現(xiàn)22</p><p>  4.4.1 身份驗證22

17、</p><p>  4.4.2 后臺文章添加管理23</p><p>  4.4.3 后臺文章類別管理25</p><p>  4.4.4 撰寫日志模塊25</p><p>  4.4.5 修改用戶信息27</p><p>  4.5 公共核心類的設計27</p><p>

18、  4.5.1 數(shù)據(jù)庫相關(guān)27</p><p>  4.5.2 編寫JavaBean類28</p><p>  4.5.3 管理類設計29</p><p>  第5章 結(jié)束語32</p><p><b>  參考文獻33</b></p><p><b>  致 謝34

19、</b></p><p><b>  第1章 緒論</b></p><p>  1.1 系統(tǒng)的開發(fā)背景 </p><p>  博客的精神是:自由表達,開放寬容,個性張揚,專業(yè)精神。在沒有自己的博客之前,人們會經(jīng)常進出于論壇發(fā)表貼子或者通過即時通信軟件聊天,來表達自己的想法,可是這些都是零散的和雜亂的。博客的出現(xiàn),讓人們可以不斷的把

20、自己以前的和每天激發(fā)的一些想法或者感受整理放在自己的博客上,每次在寫文章的時候,可能又會產(chǎn)生新的想法。雖然一些想法一些思考只是皮毛,沒有什么深度,但是當下筆去寫的時候每次都會對某個小小的問題有了更多的一點點思考,再寫博客的時候就感覺到了一種滿足感,一種想法得以釋放思考得以延伸的滿足感。生活中每天的一個小小的事情都會引起人們的思考,甚至是和朋友的聊天中一個小小的火花迸發(fā)。督促自己努力、把一時的想法變成觀點,爭取在生命中的每天里留下點什么,

21、這也是人們寫博客的目的之一。這樣就能督促自己每一天不要渾渾噩噩,時光流逝無痕無聲無息,寫博客也是在自己的每一天上留下了一道淺淺的思考和劃痕。</p><p>  不僅如此,通過寫博客、記錄自己的想法可以幫助實現(xiàn)如下這些目的:</p><p> ?。?)記錄生活,在自己的每一天上留下思考的劃痕。 </p><p> ?。?)整理思路,固化知識,獲得更多更好的想法。 &

22、lt;/p><p> ?。?)分享,將自己的想法、經(jīng)驗與人分享。</p><p>  (4)交流、提高,通過交流產(chǎn)生更多的思維火花,相互提高。 </p><p> ?。?)交友,互相鼓勵,一路同行。 </p><p>  如果說博客網(wǎng)站是一個舞臺,那么所有的博客都是其中的舞者,把自己有價值的真實的一面展示在網(wǎng)絡世界中,相互交流溝通;如果博客僅僅為

23、了寫日志,那么博客是一面鏡子,鏡子中展現(xiàn)的是真實的自己;如果博客是一個自由媒體,可以把自身感覺有價值的信息通過博客這個工具發(fā)布,與網(wǎng)友共享。</p><p>  1.2 系統(tǒng)開發(fā)的目標及意義</p><p>  本系統(tǒng)是用JSP實現(xiàn)的一個完全基于瀏覽器的博客系統(tǒng),任何注冊個</p><p>  人博客的人都擁有以下功能:</p><p>  

24、(1)登錄博客系統(tǒng)的后臺管理平臺。</p><p> ?。?)更改博客賬號的基本信息。</p><p><b> ?。?)撰寫日志。</b></p><p><b> ?。?)日志管理。</b></p><p><b> ?。?)評論管理。</b></p><

25、;p><b> ?。?)留言管理。</b></p><p>  博客訪問者具有以下功能:</p><p> ?。?)瀏覽博客系統(tǒng)中的日志、留言、評論。</p><p> ?。?)發(fā)表評論及留言。</p><p><b> ?。?)檢索日志。</b></p><p>  

26、隨著Blog人數(shù)的增加,Blog作為一種新的生活方式、新的工作方式和新的學習方式已經(jīng)被越來越多的人所接受,并且在改變傳統(tǒng)的網(wǎng)絡和社會結(jié)構(gòu)。它使交流和溝通更有明確的選擇和方向性;單一的思想和群體的智慧結(jié)合變得更加有效;個人出版變成人人都可以實現(xiàn)的夢想。Blog正在影響和改變著我們的生活。</p><p>  本系統(tǒng)采用MVC模式設計實現(xiàn)了一個簡單的博客系統(tǒng)。MVC模式極大地提高了系統(tǒng)的靈活性、復用性、開發(fā)效率、適應

27、性和可維護性,充分發(fā)揮了JSP、Servlet等J2EE組件的特點[3]。從而,使更多的人們通過文字、圖片、聲音、視頻、無線等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, share me,人人都可以博客,人人都需要博客。</p><p>  1.3 本文的主要內(nèi)容</p><p>  本系統(tǒng)是用JSP實現(xiàn)的一個完全基于瀏覽器的博客系統(tǒng),任何注冊個人博客的人都擁有以

28、下功能:</p><p> ?。?)登錄博客系統(tǒng)的后臺管理平臺。</p><p>  (2)更改博客賬號的基本信息。</p><p><b> ?。?)撰寫日志。</b></p><p><b> ?。?)日志管理。</b></p><p><b> ?。?)評論管

29、理。</b></p><p><b> ?。?)留言管理。</b></p><p>  博客訪問者具有以下功能:瀏覽博客系統(tǒng)中的日志、留言、評論。</p><p><b>  第2章 開發(fā)技術(shù)</b></p><p>  一些人可能已經(jīng)對微軟的Active Server Pages(AS

30、P)很熟悉了;JSP在多數(shù)方面與ASP功能相同但是具有平臺無關(guān)特性。他們都用來幫助Web內(nèi)容的開發(fā)者們使用相對少的代碼創(chuàng)建動態(tài)的網(wǎng)頁。一個JSP頁面包含摻雜著Java代碼的HTML代碼。</p><p>  下面主要介紹下JSP的特點:</p><p>  (1)將內(nèi)容的生成和顯示進行分離使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標識來設計和格式化最終頁面。</p&

31、gt;<p>  (2)JSP技術(shù)源于Java語言。Java語言是體系結(jié)構(gòu)中立的。這使JSP技術(shù)可以在實現(xiàn)這個JSP平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡環(huán)境和軟件的分發(fā)。</p><p>  (3)JSP系統(tǒng)是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性。</p><p>  (4)強調(diào)可重用的組件。絕大多數(shù)JSP頁面依賴于可重用的,跨平臺的組件(JavaBeans或

32、者Enterprise JavaBeansTM組件)來執(zhí)行應用程序所要求的更為復雜的處理。</p><p>  (5)采用標識簡化頁面開發(fā) Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標識中進行動態(tài)內(nèi)容生成所需要的。</p><p>  (6)使用JSP標識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容

33、的邏輯被封裝在標識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。</p><p>  (7)由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性;</p><p>  (8)作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,

34、各處運行”的特點。</p><p>  當客戶端請求一個JSP網(wǎng)頁時,JSP Engine會檢查所請求的JSP網(wǎng)頁是否已經(jīng)處于被載入執(zhí)行的狀態(tài),如果沒有,它會先讀取JSP程序文件,將它換成Servlet程序代碼編譯載入,然后才執(zhí)行請求的服務。也是就說,只有當客戶端第一次請求JSP網(wǎng)頁時,才需要被轉(zhuǎn)換、編譯和載入,做到了一次執(zhí)行,處處執(zhí)行。JSP的Servlet Class是JSP Engine自動幫我們編譯產(chǎn)生的

35、,不像Servlet需要手動編譯,另外,在JSP程序中建立新的對象和Java Bean非常方便容易。 </p><p>  2.1 JSP的基礎——Servlet 技術(shù)</p><p>  Java Servlet是JSP技術(shù)的基礎,JSP本身就是預先被編譯成Servlet,然后再運行的,而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成,Servlet這個

36、名稱大概源于Applet,現(xiàn)在國內(nèi)的翻譯方式很多,本文為了避免誤會,本文直接采用Servlet這個名稱而不做任何翻譯,讀者如果愿意,可以稱之為“小服務程序”。Servlet其實和傳統(tǒng)的CGI程序和ISAPI、NSAPI等Web程序開發(fā)工具的作用是相同的,在使用Java Servlet以后,用戶不必再使用效率低下的CGI方式,也不必使用只能在某個固定Web服務器平臺運行的API方式來動態(tài)生成Web頁面。許多Web服務器都支持Servlet

37、,即使不直接支持Servlet的Web服務器也可以通過附加的應用服務器和模塊來支持Servlet。得益于Java的跨平臺的特性,Servlet也是平臺無關(guān)的,實際上,只要符合Java Servlet規(guī)范,Servlet是完全平臺無關(guān)且是Web服務器無關(guān)的。由于Java Servlet內(nèi)部是以線程方式提供服務,不必對于每個請求都啟動一個進程,并且利用多線程機制可</p><p>  2.2 JavaBean原理和

38、機制</p><p>  JSP的一大特點就是與JavaBeans的結(jié)合,而JSP與JavaBeans結(jié)合的一個突出的優(yōu)點是頁面顯示和業(yè)務邏輯的分離。這可以使團隊協(xié)作的更好,開發(fā)出更高質(zhì)量的站點。</p><p>  JavaBean是一種可以重用的Java組件,它類似于COM,在JSP程序中常用來封裝事物邏輯、數(shù)據(jù)庫操作等,可以很好的實現(xiàn)業(yè)務邏輯和前臺程序的分離,使得系統(tǒng)具有更好的健壯性

39、和靈活性。</p><p>  事件處理是JavaBeans體系結(jié)構(gòu)的核心之一。通過事件處理機智,可以讓一些組件作為事件源,發(fā)出可被描述環(huán)境或其他組件接受的事件。這樣,不同的組件就可在構(gòu)造工具內(nèi)組合在一起,組件之間通過事件的傳遞進行通信,構(gòu)成一個應用。從概念上講,事件是一種在“源對象”和“監(jiān)聽對象”之間、某種狀態(tài)發(fā)生變化的傳遞機智。事件有許多不同的用途,如:鼠標事件、窗口邊界改變事件、鍵盤事件等。在Java和Ja

40、vaBeans中則是定義了一個一般的、可擴充的事件機制,它能夠:</p><p>  (1)對事件類型和傳遞模型的定義和擴充提供一個公共框架,并適合于廣泛的應用。</p><p>  (2)與Java語言和環(huán)境有較高的集成度。</p><p>  事件能描述環(huán)境捕獲和被激發(fā)。能使其他構(gòu)造工具采取某種技術(shù)在設計時直接控制事件,遺跡控制事件源和事件監(jiān)聽者之間的聯(lián)系。事件

41、本身不依賴于復雜的開發(fā)工具。</p><p>  特別的,事件機制還應當:</p><p>  (1)能夠發(fā)現(xiàn)制定的對象類可以生成的事件。</p><p>  (2)能夠發(fā)現(xiàn)制定的對象類可以觀察監(jiān)聽到的事件。</p><p>  (3)提供一個常規(guī)的注冊機制,允許動態(tài)操縱事件源與事件監(jiān)聽者之間的關(guān)系。</p><p>

42、  (4)不需要其他的虛擬機和語言即可實現(xiàn)。</p><p>  (5)事件源與監(jiān)聽者之間可進行高效的事件傳遞。</p><p>  (6)能完成JavaBean事件模型與相關(guān)的其他組件體系結(jié)構(gòu)事件模型的中立映射。</p><p>  JSP和ASP.NET同樣是網(wǎng)站開發(fā)中常用的開發(fā)工具。但是,ASP是微軟的產(chǎn)品,其應用只能是在Windows平臺上,移植性差,而且以

43、源代碼的形式存放在服務器端,安全性差。每次由服務器解釋運行,運行效率不高。Jsp頁面文件執(zhí)行時被編譯成字節(jié)代碼,由客戶端流覽的Java虛擬機解釋執(zhí)行,不再是源代碼,因此執(zhí)行效率和安全性高。將數(shù)據(jù)庫連接的重要信息存放在JavaBean文件后,可以編譯成虛擬機才能解釋的字節(jié)代碼,確保了數(shù)據(jù)庫的安全。</p><p>  在ASP技術(shù)里,通過Web頁面要實現(xiàn)一些特定的功能比較困難,比如基于網(wǎng)頁的報表,打印實現(xiàn)起來就比較

44、麻煩。ASP提供的解決方案是自己開發(fā)組件,通過在服務器端注冊組件,成為獨立的可以重復利用的模塊供讀者調(diào)用。因此要求讀者需要掌握比較復雜的變成語言的開發(fā)技術(shù)。在JSP開發(fā)技術(shù)里,可以通過開發(fā)JavaBean文件實現(xiàn)同樣的功能,JavaBean不需要注冊,只要放置在相應的目錄下就可以運行??梢詫崿F(xiàn)ASP的COM組件同樣的功能。此外JSP推出主要就是考慮到平臺的無關(guān)性。JSP代碼可以在APACHE、IIS等服務器上執(zhí)行,支持大部分操作系統(tǒng)。J

45、SP繼承JAVA技術(shù)的優(yōu)點:一次運行,處處運行。</p><p>  鑒于此,本系統(tǒng)決定使用JSP作為開發(fā)工具。下面簡單介紹一下相關(guān)的其他工具:</p><p>  2.3 開發(fā)平臺:Eclipse+dreamweaver</p><p>  Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由E

46、clipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎。Eclipse Platform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從

47、而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。</p><p>  Dreamweaver MX 是一款專業(yè)的 HTML 編輯器,用于對 Web 站點、Web 頁和 Web 應用程序進行設計、編碼和開發(fā)。無論您喜歡直接編寫 HTML 代碼的駕馭感還是偏愛在可視化編輯環(huán)境中工作,Dreamweaver 都會為您提供幫助良多的工具,豐富您的 Web 創(chuàng)作體驗。</p>

48、<p>  利用 Dreamweaver 中的可視化編輯功能,您可以快速地創(chuàng)建頁面而無需編寫任何代碼。不過,如果您更喜歡用手工直接編碼,Dreamweaver 還包括許多與編碼相關(guān)的工具和功能。并且,借助 Dreamweaver,您還可以使用服務器語言(例如 ASP、ASP.NET、ColdFusion 標記語言 (CFML)、JSP 和 PHP)生成支持動態(tài)數(shù)據(jù)庫的 Web 應用程序。</p><p&g

49、t;  2.4 SQL SERVER 2005</p><p>  SQL Server 2005作為Microsoft家庭的重要成員,是基于客戶機/服務器的大型關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL Server 2005這種關(guān)系型數(shù)據(jù)庫系統(tǒng)能夠滿足各種類型的企業(yè)客戶和獨立軟件供應商構(gòu)建商業(yè)應用程序的需求,根據(jù)客戶的反映和需求,是大規(guī)模聯(lián)機事務處理(OLTP)、數(shù)據(jù)倉庫和電子商務應用程序的優(yōu)秀數(shù)據(jù)庫平臺。SQL Server

50、2005 具有以下特點[8]:</p><p> ?。?)強大可伸縮性;</p><p> ?。?)支持大型Web站點或企業(yè)信息處理系統(tǒng);</p><p> ?。?)客戶機/服務器體系結(jié)構(gòu);</p><p>  而數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實際上是一種數(shù)據(jù)連接的抽象。各部件之間的關(guān)系如圖2.1所示:</p>&l

51、t;p>  圖2.1 數(shù)據(jù)關(guān)系圖</p><p><b>  第3章 分析與設計</b></p><p>  3.1 業(yè)務流分析及流程圖</p><p>  用戶首先需要登錄該系統(tǒng)得到權(quán)限后才能對系統(tǒng)進行操作,為注冊用戶可以直接進入注冊模塊進行注冊。登錄系統(tǒng)后確定權(quán)限,只有管理員權(quán)限,才能對系統(tǒng)進行維護。普通用戶可以對個人主頁進行管理,管

52、理的板塊包括:日記、相冊、留言、好友、公告以及群。</p><p>  個人博客系統(tǒng)業(yè)務流程圖,如圖3.1所示:</p><p>  圖3.1 博客業(yè)務流程圖</p><p>  3.2 數(shù)據(jù)流圖分析</p><p>  系統(tǒng)運行過程中,主要涉及到兩部分的數(shù)據(jù)流向,一部分是管理員在系統(tǒng)后臺管理界面上發(fā)出的對數(shù)據(jù)庫操作的數(shù)據(jù)流,另一部分是用戶在

53、應用前臺使用系統(tǒng)時所產(chǎn)生的數(shù)據(jù)流。如圖3.2所示:</p><p><b>  圖3.2 數(shù)據(jù)流圖</b></p><p>  3.3 功能模塊設計</p><p>  博客信息管理系統(tǒng)分為面向網(wǎng)絡用戶的前臺及面向個人博客維護管理的后臺,依據(jù)博客網(wǎng)站中所要實現(xiàn)的基本功能的設定,將所有功能分解為如下四個主要的功能模塊來加以實現(xiàn)。用戶以合法的用戶名

54、及密碼登錄,系統(tǒng)即可按該登錄用戶的權(quán)限分配操作模塊。</p><p>  3.3.1 博客注冊登錄管理模塊</p><p>  博客注冊登錄管理模塊用于建立博客網(wǎng)站固定的客戶群體,通過記錄對應的博客檔案,實現(xiàn)對博客信息的后臺維護及管理,同時也便于通過博客檔案庫將網(wǎng)站最新動態(tài)及相關(guān)企業(yè)的信息方便地傳達給每一位潛在的客戶。</p><p>  該功能模塊實現(xiàn)了以下幾個子

55、功能。</p><p> ?。?)新博客在線注冊。</p><p> ?。?)博客登錄管理。</p><p>  (3)跳轉(zhuǎn)到博客主頁。</p><p>  只有進行登錄并通過身份驗證的用戶,才可以在個人博客頁面發(fā)表日志,并借助個人設置實現(xiàn)對個人博客相關(guān)信息的管理維護。對于沒有經(jīng)過身份驗證的網(wǎng)絡用戶不允許在博客頁面中發(fā)表日志,更不允許對博客頁

56、面信息進行管理維護。</p><p>  該模塊實現(xiàn)新博客的注冊及登錄驗證功能。其中,注冊新博客時會對用戶輸入的注冊信息進行有效性驗證,包括基本數(shù)據(jù)格式的有效性以及邏輯有效性,例如,用戶名被占用時將及時給出提示。注冊成功的博客登錄時,會隨時根據(jù)博客輸入的登錄信息進行提示,如用戶名錯誤或者密碼錯誤。</p><p>  3.3.2 博客及文章檢索查詢模塊</p><p&g

57、t;  博客及文章檢索查詢模塊為網(wǎng)絡用戶提供便捷的搜索,以及日志閱讀瀏覽等功能,同時對日志的評論信息、博客推薦也能夠及時反饋給網(wǎng)絡用戶。</p><p>  該功能模塊實現(xiàn)了以下幾個子功能。</p><p> ?。?)熱門博客頁面推薦。</p><p> ?。?)最新博客日志推薦。</p><p>  (3)日志信息關(guān)鍵字搜索。</p&

58、gt;<p>  該模塊能夠在網(wǎng)頁中隨時提供在線的最新日志信息。該信息需要定期更新,網(wǎng)絡用戶可以隨時獲得最新日志以及最熱門的博客推薦。在客戶選擇了某個博客或者某個感興趣的日志后,可以方便地跳轉(zhuǎn)到對應博客頁面進行日志的閱讀,并和博客進行交流互動。</p><p>  為了使網(wǎng)絡用戶盡快定位到所需的博客資料及日志信息,本模塊提供了搜索功能,用戶可以對所關(guān)注的日志信息按照標題進行關(guān)鍵字搜索,以避免用戶瀏覽

59、多個頁面來尋找所需的日志信息。</p><p>  3.3.3 博客頁面顯示模塊</p><p>  當網(wǎng)絡用戶進入某個人博客主頁后,在該頁面中將提供博客日志列表的顯示,同時為了方便用戶瀏覽,在該模塊中提供根據(jù)分類名進行日志列表的顯示,也提供日志評論的瀏覽,此外還允許用戶在博客頁面中發(fā)表評論及留言。</p><p>  該功能模塊實現(xiàn)了如下幾個子功能。</p&

60、gt;<p> ?。?)用戶可以分頁查看對應的日志內(nèi)容及評論信息。</p><p>  (2)用戶可以針對日志內(nèi)容發(fā)表評論。</p><p>  (3)用戶可以針對博客進行留言。</p><p> ?。?)用戶可以分類查看日志內(nèi)容。</p><p>  在該模塊中還提供了博客頁面統(tǒng)計信息,日志、評論及留言信息分頁顯示等方便用戶的

61、顯示效果。</p><p>  3.3.4 博客個人管理維護模塊</p><p>  博客個人維護管理模塊用于實現(xiàn)用戶對博客個人主頁及相關(guān)信息的動態(tài)管理。該功能模塊實現(xiàn)了如下幾個子功能:</p><p> ?。?)日志及日志分類管理。</p><p> ?。?)評論及留言管理。</p><p> ?。?)個人基本信息維

62、護管理。</p><p>  借助該模塊,用戶可以隨時對個人博客主頁中的內(nèi)容進行增加或修改,包括日志分類信息的更新、評論及留言管理等功能,也允許用戶對博客的個人信息進行維護及其管理。如圖3.3所示:</p><p>  圖3.3 博客信息系統(tǒng)前臺功能結(jié)構(gòu)圖</p><p>  后臺模塊功能結(jié)構(gòu)如圖3.4所示。</p><p>  圖3.4 博

63、客信息系統(tǒng)后臺功能結(jié)構(gòu)圖</p><p>  3.4 數(shù)據(jù)庫設計E-R圖</p><p>  為了把用戶的數(shù)據(jù)要求清晰明確地表達出來,通常要建立一個概念性的數(shù)據(jù)模型。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點來對數(shù)據(jù)和信息建模。描述了從用戶角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實環(huán)境。</p><p>  最常用的表示概念性數(shù)據(jù)模型的方法,是實體—聯(lián)系方法(E

64、ntity—Relationship Approach)。這種方法用ER圖描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的實現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱為ER模型。ER模型中包含“實體”,“聯(lián)系”和“屬性”。</p><p>  博客信息管理系統(tǒng)涉及的實體包括:</p><p> ?。?)用戶:用戶ID、用戶名稱、用戶密碼、博客主題、說明、E-mail、注冊日期、發(fā)表日志數(shù)。

65、 </p><p>  (2)類別:類別編號、類別名、類別描述、用戶ID。</p><p> ?。?)日志:日志編號、日志標題、日志內(nèi)容、類別編號、發(fā)表日期、最后修改日期、用戶ID、瀏覽次數(shù)、評論數(shù)。</p><p> ?。?)評論:評論編號、評論標題、評論內(nèi)容、發(fā)表日期、最后回復日期、評論人、日志編號。</p><p> ?。?)留言:留言

66、編號、留言標題、留言內(nèi)容、發(fā)表日期、最后回復日期、留言人、用戶ID。</p><p>  綜合本系統(tǒng)各子模塊要實現(xiàn)的功能,通過前面對博客信息系統(tǒng)數(shù)據(jù)的分析可以得到:用戶表、類別表、日志表、日志評論表、留言表的數(shù)據(jù)庫概念模型(E-R圖)。</p><p>  用戶實體屬性圖如圖3.5所示。</p><p>  圖3.5 用戶實體屬性圖</p><p

67、>  日志類別實體屬性圖如圖3.6所示。</p><p>  圖3.6 日志類別實體屬性圖</p><p>  日志實體屬性圖如圖3.7所示。</p><p>  圖3.7 日志實體屬性圖</p><p>  日志評論實體屬性圖如圖4.4所示。</p><p>  圖3.8 日志評論實體屬性圖</p>

68、<p>  留言實體屬性圖如圖3.8所示。</p><p>  圖3.9 留言實體屬性圖</p><p>  3.5 系統(tǒng)數(shù)據(jù)表設計</p><p> ?。?)用戶表,此表主要用于保存用戶的基本信息。其結(jié)構(gòu)如表3.1所示。</p><p><b>  表3.1 用戶表 </b></p><

69、;p>  (2)日志表,此表主要用于保存日志的基本信息。其結(jié)構(gòu)如表3.2所示。 </p><p><b>  表3.2 日志表</b></p><p> ?。?)日志評論表,此表主要用于保存日志評論的基本信息。其結(jié)構(gòu)如表3.3所示。</p><p>  表3.3 日志評論表</p><p> ?。?)留言表,此表主

70、要用于保存留言的基本信息。其結(jié)構(gòu)如表3.4所示。 </p><p><b>  表3.4 留言表</b></p><p> ?。?)類別表,此表用于保存日志類別的基本信息。其結(jié)構(gòu)如表3.5所示。</p><p><b>  表3.5 類別表</b></p><p><b>  第4章 系統(tǒng)

71、實現(xiàn)</b></p><p><b>  4.1 系統(tǒng)主界面</b></p><p>  該界面為該系統(tǒng)的首頁,顯示出最新日志,最熱日志等。訪客只要一進入該網(wǎng)站,就可以看到該頁面。并通過該頁面進入留言板、日志、發(fā)表評論等其他感興趣的頁面。系統(tǒng)主界面如圖4.1所示:</p><p>  圖4.1 系統(tǒng)主界面</p>&

72、lt;p>  4.1.1 注冊模塊的實現(xiàn)</p><p>  訪客可以通過該界面注冊成為該系統(tǒng)的注冊用戶,擁有自己的博客空間。界面如圖4.2所示:</p><p>  圖4.2 用戶注冊界面</p><p><b>  部分代碼如下: </b></p><p>  protected void Button1_C

73、lick(object sender, EventArgs e) {</p><p>  //連接數(shù)據(jù)庫,使用存儲過程CheckUser,查看該用戶名是否已經(jīng)存在</p><p>  SqlCommand command = new SqlCommand(“CheckUser”, conn);</p><p>  SqlDataReader dr=command.E

74、xecuteReader();</p><p>  if (CheckBox1.Checked) //如果同意注冊條款,則可以進行注冊</p><p><b>  {</b></p><p>  if (dr.Read()) //如果用戶名已經(jīng)存在,則注冊失敗</p><p>  Response.Write(

75、“<script>window.alert(‘注冊失?。阂延性撚脩裘 ?;</script>”);</p><p>  else //如果用戶名不存在,則在數(shù)據(jù)庫中保存新注冊用戶的信息</p><p><b>  {</b></p><p>  command = new SqlCommand(“InsertUser

76、”, conn);</p><p>  SqlParameter RegisterName = command.Parameters.Add(“@name”, SqlDbType.NVarChar, 30); //傳遞各個參數(shù)的值</p><p>  RegisterName.Value = TextBoxName.Text;</p><p>  Session

77、[”username”] = TextBoxName.Text.Trim();</p><p><b>  }</b></p><p>  else //如果不同意注冊條款,則不能進行注冊</p><p>  Response.Write(“<script>window.alert(‘不同意注冊協(xié)議不能注冊! ‘);<

78、;/script>”);</p><p>  4.1.2 發(fā)表評論模塊</p><p>  發(fā)表評論的界面如圖4.3所示:</p><p>  圖4.3 發(fā)表評論界面</p><p><b>  部分代碼如下:</b></p><p>  protected void ButtonOk_Cl

79、ick(object sender, EventArgs e) {</p><p>  if (TextBox1.Text==””)</p><p>  author = “匿名”; //如果作者沒填,則默認為匿名</p><p><b>  else</b></p><p>  author = TextBox1.

80、Text; //獲取評論的作者</p><p>  SqlCommand command = new SqlCommand(“insertComment”, conn);</p><p><b>  //添加參數(shù)</b></p><p>  SqlParameter log_ID = command.Parameters.Add(“@log

81、_ID”,SqlDbType.Int);</p><p><b>  //傳遞參數(shù)的值</b></p><p>  log_ID.Value =Session[”log_ID”];</p><p>  SqlParameter comm_subject = command.Parameters.Add(“@comm_subject”, SqlD

82、bType.VarChar, 30);</p><p>  comm_subject.Value=this.labSubject.Text;</p><p>  SqlParameter comm_content = command.Parameters.Add(“@comm_content”, SqlDbType.NText);</p><p>  comm_co

83、ntent.Value =TextBox2.Text;</p><p>  SqlParameter comm_author = command.Parameters.Add(“@comm_author”, SqlDbType.VarChar,30);</p><p>  comm_author.Value = author;</p><p>  int numbe

84、r = command.ExecuteNonQuery();</p><p>  if (number < 1)</p><p>  Response.Write(“<script>window.alert(‘發(fā)表評論失??!’);</script>”);</p><p><b>  else</b></p&g

85、t;<p>  Response.Write(“<script>window.alert(‘發(fā)表評論成功!’);</script>”);}</p><p>  4.1.3 刪除日志模塊</p><p>  如果需要刪除已發(fā)表的日志,可單擊日志管理顯示界面中的刪除日志鏈接,將彈出刪除日志確認對話框圖如圖4.4所示。</p><p>

86、;  圖4.4 刪除日志確認對話框圖</p><p>  再次確認用戶是否真的要進行該日志的刪除操作,而不是誤操作。點擊確定按鈕完成日志刪除操作,點擊取消按鈕取消該刪除操作。</p><p>  完成日志刪除操作的核心代碼如下:</p><p><b>  try{</b></p><p>  conn=DB.getCo

87、nnetion();</p><p>  //禁止自動提交,設置回滾點</p><p>  conn.setAutoCommit(false);</p><p>  stmt=conn.createStatement();</p><p>  //刪除該日志的所有評論</p><p>  stmt.prepareSta

88、tement(“delete from feedback where articleid=?”);</p><p>  stmt.setInt(1,articleid);</p><p>  stmt.executeUpdate();</p><p><b>  //刪除該日志</b></p><p>  stmt.pr

89、epareStatement(“delete from article where articleid=?”);</p><p>  stmt.setInt(1,articleid);</p><p>  stmt.executeUpdate();</p><p>  conn.commit(); //事務提交</p><p><b&g

90、t;  }</b></p><p>  catch(Exception ex){</p><p>  ex.printStackTrace();</p><p><b>  try{</b></p><p>  conn.rollback(); //操作不成功則回滾</p><p>&

91、lt;b>  }</b></p><p>  catrch(Exception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b&

92、gt;  finally{</b></p><p><b>  try{</b></p><p>  stmt.close();</p><p>  conn.close();</p><p>  }catch(Exception e){</p><p>  e.printStackT

93、race();</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.2 修改個人資料界面</p><p>  圖 4.5 個人資料修改界面</p><p>  博主登陸后點擊個人信息,查看個人信息點擊修改出現(xiàn)圖4.5界面進行

94、修改,其核心代碼是:</p><p>  protected void btn_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  TbBoZhu item = new TbBoZhu();</p><p>  item.AdminID = Co

95、nvert.ToInt32(Request.QueryString["id"]);</p><p>  item.Birthday = txtbirthday.Text;</p><p>  item.Hobby = txthobby.Text;</p><p>  item.NickName = txtnickname.Text;</p&

96、gt;<p>  item.Sex = txtsex.Text;</p><p>  item.SuoZaiDi = txtsuozaidi.Text;</p><p>  item.XingZuo = txtxingzuo.Text;</p><p>  if (flPicPath.FileName=="")</p>

97、<p><b>  {</b></p><p>  item.Photo = imgphoto.ImageUrl.Replace("Pics/","");</p><p><b>  }</b></p><p><b>  else</b></

98、p><p><b>  {</b></p><p>  DateTime now = DateTime.Now;</p><p>  item.Photo = now.ToFileTime().ToString("") + flPicPath.FileName;</p><p><b>  }&

99、lt;/b></p><p>  if (BoZhuManage.Update(item))</p><p><b>  {</b></p><p>  if (flPicPath.FileName != "")</p><p>  flPicPath.SaveAs(Server.MapPath

100、("") + @"\Pics\" +item.Photo);</p><p>  Response.Write("<script>alert('修改成功!');</script>");</p><p><b>  }</b></p><p>&l

101、t;b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert('修改失敗,請稍后重試!');</script>");</p><p><b>  }</b>&

102、lt;/p><p>  Response.Write("<script>location.href='UserInfo.aspx';</script>");</p><p><b>  }</b></p><p><b>  }</b></p><

103、p>  4.3 上傳圖片界面</p><p>  上傳圖片包括圖片名稱,路徑,介紹信息通過提交按鈕錄入數(shù)據(jù)庫中[17]如圖4.6所示:</p><p>  圖4.6 圖片上傳界面</p><p><b>  核心代碼:</b></p><p>  protected void btnAdd_Click(object

104、 sender, EventArgs e)</p><p><b>  {</b></p><p>  //生成存入的圖片名稱</p><p>  DateTime now = DateTime.Now;</p><p>  string imageName = now.ToFileTime().ToString(&qu

105、ot;") + flPicPath.FileName;</p><p>  //通過相對獲取物理路徑</p><p>  string path = Server.MapPath("") + @"\Pics\" + imageName;</p><p>  //創(chuàng)建對象,并賦值</p><p>

106、;  TbPics item = new TbPics();</p><p>  item.PicName = txtPicName.Text;</p><p>  item.PicPath = imageName;</p><p>  item.PicDesc = txtPicDesc.Text;</p><p><b>  //

107、執(zhí)行添加操作</b></p><p>  if (PicsManage.Add(item))</p><p>  { //如果成功,則上傳圖片</p><p>  flPicPath.SaveAs(path);</p><p>  Response.Write("<script>alert('添加

108、成功!');</script>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script&

109、gt;alert('添加失敗,請稍后重試!');</script>");</p><p><b>  }</b></p><p>  Response.Write("<script>location.href='Pics.aspx';</script>");</p&

110、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  4.4 系統(tǒng)主要功能模塊的實現(xiàn)</p><p>  4.4.1 身份驗證</p><p>  管理員通過此登陸入口進入管理界面,此入口需要填寫正確的ID才能夠登陸,非法ID不能夠登陸,其界

111、面如圖4.7所示:</p><p>  圖4.7 管理員登錄界面</p><p>  一個系統(tǒng)能正常使用,安全性是非常重要的一個部分。安全性是對用戶的生份進行驗證并通過驗證的用戶按照為其授予的訪問權(quán)限來確定用戶是否可以訪問某資源的一個過程。為了保證系統(tǒng)的安全,為了保證應用程序的安全,本系統(tǒng)采用了身份驗證技術(shù)。</p><p>  該代碼表示系統(tǒng)禁止對ST_login

112、目錄下的ST_admin進行匿名訪問.如果存在匿名用戶,系統(tǒng)將自動驗證用戶名,提示錯誤信息。保證了系統(tǒng)的安全.關(guān)鍵代碼如下:</p><p>  實現(xiàn)此功能的關(guān)鍵代碼為:</p><p>  protected void Button1_Click(object sender, System.EventArgs e)</p><p><b>  {<

113、/b></p><p>  OleDbCommand ST_myCmd = new OleDbCommand("select * from ST_admin where ST_admin_user='" + adminname.Text.Trim() + "' and ST_admin_psw='" + adminpsw.Text.Trim()

114、 + "'", ST_myConn);</p><p>  ST_myConn.Open();</p><p>  OleDbDataReader ST_read = ST_myCmd.ExecuteReader();</p><p>  if (ST_read.Read())</p><p><b> 

115、 {</b></p><p>  Session["UserName"] = ST_read[0].ToString();</p><p>  Response.Redirect("ST_admin.aspx");</p><p><b>  }</b></p><p>

116、;<b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert('用戶名和密碼不對')</script>");</p><p><b>  }</b>&l

117、t;/p><p><b>  }</b></p><p>  4.4.2 后臺文章添加管理</p><p>  管理員可以在此頁面操作管理功能,這些功能可以對主頁進行添加、刪除、修改等操作,如圖4.8所示:</p><p>  圖4.8 管理員操作界面</p><p>  實現(xiàn)此功能的關(guān)鍵代碼為:&l

118、t;/p><p>  public void ST_Save_Add()</p><p><b>  {</b></p><p>  string ST_n_title = HtmlEncode(Request.Form["n_title"]);</p><p>  string ST_n_author

119、= HtmlEncode(Request.Form["n_author"]);</p><p>  string ST_n_key = HtmlEncode(Request.Form["n_key"]);</p><p>  string ST_n_content = Request.Form["n_content"].Repla

120、ce("'", "''");</p><p>  int ST_cmd;</p><p>  if (Request.Form["n_iscmd"] != null)</p><p>  { ST_cmd = 1; }</p><p><b> 

121、 else</b></p><p>  { ST_cmd = 0; }</p><p>  if (ST_n_title == "" || ST_n_key == "" || ST_n_content == "")</p><p><b>  {</b></p>

122、<p>  Response.Write("<div align=center><li>標題,摘要,內(nèi)容不能為空!</li><li><a href=javascript:history.back()>點此返回</a>");</p><p>  Response.End();</p><p&

溫馨提示

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

評論

0/150

提交評論