基于jsp技術(shù)的博客設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于jsp技術(shù)的博客設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于jsp技術(shù)的博客設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于jsp技術(shù)的博客設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于jsp技術(shù)的博客設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編號(hào)淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)論文題 目基于JSP技術(shù)的博客設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名白 鶴學(xué) 號(hào)35011222院 系 計(jì)算機(jī)與通信工程學(xué)院專 業(yè)計(jì)算機(jī)應(yīng)用技術(shù)班 級(jí)350112指導(dǎo)教師馮 鋼顧問教師二一三年十月摘要隨著我們社會(huì)的不斷進(jìn)步,閱讀文章成為了一種獲取知識(shí)與信息的方式,同時(shí)也挖掘出了一些人在寫作方面的才能。那么,怎么樣才能在第一時(shí)間發(fā)布自己的文章并且能夠讓大多數(shù)人看到?因此,博客的出現(xiàn)解決了這一問題。它既可以讓自己的寫作成果讓更多的人來欣賞,也可以讓他人來指出其中的問題。除了發(fā)表文章之外,也可以將自己在生活、工作或?qū)W習(xí)中獲得的感悟發(fā)表于此,借此找到與自己志同道合的朋友,一定程度上加深了人與人

2、之間的交流。本文設(shè)計(jì)了基于Servlet和JavaBean的個(gè)人博客,通過JSP語言、基于B/S的服務(wù)模式、SQL Server 2005等技術(shù)重點(diǎn)介紹了個(gè)人博客的開發(fā)過程。包括:系統(tǒng)分析、需求分析、數(shù)據(jù)庫設(shè)計(jì)、功能設(shè)計(jì)、系統(tǒng)調(diào)試和實(shí)現(xiàn)。關(guān)鍵詞:博客 JSP Servlet MVCAbstractWith the development of our society, reading has become a kind of knowledge and information, but also unearthed some people in writing ability. So, how

3、 can we in the first time to publish their articles and to let people see? Therefore, the blog this problem is resolved. It can make your writing achievement to allow more people to enjoy, also can let others to point out the problem. In addition to publish articles, you can own for life, work or st

4、udy published in this sentiment, to find and his like-minded friends, to a certain extent, deepen the exchanges between people.In this paper, the design of Servlet and JavaBean based on the personal blog, through the JSP language, based on B/S service mode, SQL Server 2005, introduced the developmen

5、t process of the personal blog. Include: system analysis, demand analysis, database design, functional design, system debugging and implementation.Keywords:Blog JSP Servlet MVC目 錄摘要IABSTRACTII第一章 緒論11.1選題的背景與意義11.2課題研究的內(nèi)容11.3.1 經(jīng)濟(jì)可行性11.3.2 技術(shù)可行性21.4論文的結(jié)構(gòu)2第二章 系統(tǒng)相關(guān)技術(shù)介紹32.1 JSP技術(shù)32.1.1 JSP特點(diǎn)32.1.2 JSP的

6、處理流程32.2 MVC模式42.2.1 MVC模式的優(yōu)缺點(diǎn)42.2.2 MVC模式的處理流程52.3 SQL SERVER 200552.3.1 SQL SERVER 2005的特點(diǎn)52.3.2 SQL語言62.4 本章小結(jié)6第三章 系統(tǒng)分析及數(shù)據(jù)庫設(shè)計(jì)73.1系統(tǒng)需求分析73.2 系統(tǒng)功能分析73.3 數(shù)據(jù)庫設(shè)計(jì)93.3.1 數(shù)據(jù)庫設(shè)計(jì)93.3.2 數(shù)據(jù)庫表設(shè)計(jì)93.4 本章小結(jié)10第四章 系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)124.1 前臺(tái)功能的實(shí)現(xiàn)124.1.1 登錄模塊124.1.2 注冊(cè)模塊154.1.3 博客主頁184.2 后臺(tái)功能的實(shí)現(xiàn)194.3 本章小結(jié)23第五章 總結(jié)與展望245.1 總結(jié)2

7、45.2 展望24致 謝26參考文獻(xiàn)27第一章 緒論1.1選題的背景與意義當(dāng)今社會(huì),科技的不斷發(fā)展,信息量不斷的增大,一些傳統(tǒng)的獲取信息的方式已經(jīng)不能滿足人們,而且隨著網(wǎng)絡(luò)上越來越多的個(gè)人發(fā)表一些文章或者有關(guān)于自己的動(dòng)態(tài),很多人都渴望能有一個(gè)專業(yè)的平臺(tái)來管理一下,通過互聯(lián)網(wǎng)使人們快速獲取、發(fā)布和傳遞重要的信息。這樣,博客應(yīng)運(yùn)而生。這是一種全新的網(wǎng)絡(luò)交流方式,通過網(wǎng)絡(luò),使人們的視野加大,它讓人們可以在網(wǎng)絡(luò)上暢談?dòng)嘘P(guān)于生活、工作、學(xué)習(xí)等方面的趣事,同時(shí)也可以學(xué)習(xí)到其他人在各方面的經(jīng)驗(yàn),使自己學(xué)到很多,也讓別人學(xué)到很多。更重要的是,他讓使用者的思想得到了充分的、自由的發(fā)揮,這也代表著一種新的學(xué)習(xí)方式

8、。隨著知識(shí)的不斷發(fā)展,人們的想法不斷的改變,越來越多的人喜歡將自己的想法、心得、感受與別人分享,同時(shí),自己也喜歡獲得一些其他的信息。傳統(tǒng)的方式不但獲取速度慢,而且很難辨別其真實(shí)性,利用網(wǎng)絡(luò),不僅加快信息傳遞的速度,更能夠在很短的時(shí)間內(nèi)獲取大量的信息,使用者可以在其中挑選出對(duì)自己有利的信息,在某種程度上已經(jīng)在改變著人們的工作與學(xué)習(xí)方式。1.2課題研究的內(nèi)容本次設(shè)計(jì)的個(gè)人博客主要包括管理員與訪問者兩種,管理員可以進(jìn)入后臺(tái)管理個(gè)人文章的發(fā)表、相冊(cè)照片上傳、查看用戶留言、設(shè)置訪問者的權(quán)限等,訪問者只可以查看文章以及相冊(cè)和公告,并對(duì)文章進(jìn)行相應(yīng)的回復(fù)。博客網(wǎng)的主要功能:登錄與注冊(cè)、查看博主發(fā)表的文章以及

9、上傳的個(gè)人照片、對(duì)博主以及發(fā)表的文章進(jìn)行留言、查看公告欄等。在本網(wǎng)站的設(shè)計(jì)中,主要用到了JSP、MVC、SQL Server 2005數(shù)據(jù)庫等技術(shù),具體的技術(shù)內(nèi)容將在第二章給出詳細(xì)的說明。本次系統(tǒng)設(shè)計(jì)中開發(fā)環(huán)境分為服務(wù)器端與客戶端,需要的開發(fā)環(huán)境如下:服務(wù)器端: Web服務(wù)器:Tomcat 6.0 Java開發(fā)包:JDK 1.6以上 數(shù)據(jù)庫:SQL Server 2005 瀏覽器:IE8.0及以上 開發(fā)工具:MyEclipse 8.5客戶端: 瀏覽器:IE8.0及以上1.3.1 經(jīng)濟(jì)可行性博客網(wǎng)通過我的文章和相冊(cè)上傳等功能模塊,來吸引更多的瀏覽者,增加網(wǎng)站的訪問量,提升網(wǎng)站的影響力;通過不斷更

10、新網(wǎng)站信息內(nèi)容,使網(wǎng)站信息更加多元化,適合不同的訪問群體;通過網(wǎng)站展現(xiàn)個(gè)人魅力,愉悅身心;通過與來訪者的交流,不斷積累經(jīng)驗(yàn),吸收新的知識(shí),使網(wǎng)站始終充滿活力。1.3.2 技術(shù)可行性本系統(tǒng)主要應(yīng)用Servlet技術(shù)開發(fā)。Servlet是一個(gè)Java類,Java語言能夠?qū)崿F(xiàn)的功能,Servlet基本上都可以實(shí)現(xiàn)(圖形界面以外)??偟膩碚f,Servlet技術(shù)具有以下特點(diǎn)。(1)高效在服務(wù)器上僅有一個(gè)Java虛擬機(jī)在運(yùn)行,其優(yōu)勢(shì)在于當(dāng)多個(gè)來自客戶端的請(qǐng)求進(jìn)行訪問時(shí),Servlet為每一個(gè)請(qǐng)求分配一個(gè)線程而不是進(jìn)程。(2)靈活性和可擴(kuò)展性采用Servlet開發(fā)的Web應(yīng)用程序,由于Java類的繼承性、構(gòu)

11、造函數(shù)等特點(diǎn),由于靈活,可隨意擴(kuò)展。(3)共享數(shù)據(jù)Servlet之間可通過共享數(shù)據(jù)很容易地實(shí)現(xiàn)數(shù)據(jù)庫連接池。它能方便地實(shí)現(xiàn)管理用戶請(qǐng)求,簡化Session和獲取前一頁面信息的操作。1.4論文的結(jié)構(gòu)第一章、本章簡要說明了設(shè)計(jì)該博客網(wǎng)的背景以及它的意義,簡述了一下其中的具體內(nèi)容,對(duì)所需要的開發(fā)工具進(jìn)行了說明;分別通過經(jīng)濟(jì)和技術(shù)這兩方面對(duì)這個(gè)項(xiàng)目進(jìn)行了可行性分析,使這個(gè)項(xiàng)目在實(shí)施過程當(dāng)中更具有條理性。第二章、本章對(duì)于在設(shè)計(jì)過程中用到的開發(fā)技術(shù)進(jìn)行了詳細(xì)了論述,例如JSP技術(shù)的特點(diǎn)與處理流程,MVC模式的介紹以及數(shù)據(jù)庫等。第三章、主要進(jìn)行了項(xiàng)目的需求分析和數(shù)據(jù)庫的設(shè)計(jì)。需求分析中重點(diǎn)對(duì)系統(tǒng)的功能做了比

12、較多的說明,列出了主要的幾項(xiàng)功能;數(shù)據(jù)庫設(shè)計(jì)的主體就是數(shù)據(jù)表,本章對(duì)項(xiàng)目中所要用到的數(shù)據(jù)表進(jìn)行了比較詳細(xì)的分析,根據(jù)本系統(tǒng)的需求,主要?jiǎng)?chuàng)建了用戶信息表、文章信息表、個(gè)人相冊(cè)信息表等。第四章、本章著重講解了在開發(fā)項(xiàng)目過程的幾項(xiàng)功能的具體實(shí)現(xiàn)步驟,如登錄與注冊(cè)、文章的發(fā)表等等,并給出了運(yùn)行后的效果及其中的主要代碼,使人看起來清晰明了。第五章、本章中主要是對(duì)本次項(xiàng)目進(jìn)行一次總結(jié)與展望,找出在項(xiàng)目中的不足以及需要完善的地方。第二章 系統(tǒng)相關(guān)技術(shù)介紹2.1 JSP技術(shù)JSP全稱為Java Server Pages,是由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)技術(shù)標(biāo)準(zhǔn)。JSP用HTML語言和Java

13、語言作為腳本語言,通過編寫嵌入在頁面中的Java代碼,實(shí)現(xiàn)動(dòng)態(tài)的頁面效果。2.1.1 JSP特點(diǎn)(1) 將內(nèi)容的生成和顯示進(jìn)行分離用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁面,并使用JSP標(biāo)識(shí)或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運(yùn)行。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和腳本,生成所請(qǐng)求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這既有助于作者保護(hù)自己的代碼,又能保

14、證任何基于HTML的Web瀏覽器的完全可用性。(2) 適應(yīng)平臺(tái)幾乎所有平臺(tái)都支持Java,JSP+JavaBeans幾乎可以在所有平臺(tái)下通行無阻。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無關(guān)的。(3) 數(shù)據(jù)庫連接Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開發(fā)了JDBCODBC bridge,利用此技術(shù)Java程序可以訪問帶有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫,大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動(dòng)程序,所以Java程序能訪問諸如Oracle、Sybase、MS

15、SQL Server和MS Access等數(shù)據(jù)庫。2.1.2 JSP的處理流程圖2.1 JSP的處理流程當(dāng)一個(gè)JSP頁面被請(qǐng)求后,JSP引擎將該頁面轉(zhuǎn)換為一個(gè)Servlet,并將Servlet編譯成一個(gè)class文件,讓服務(wù)器進(jìn)行處理;處理完成后,將內(nèi)容一HTML代碼的形式返回給客戶端,并在頁面中顯示出來。在轉(zhuǎn)換過程中如果發(fā)現(xiàn)JSP文件有語法錯(cuò)誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯(cuò)信息;如果轉(zhuǎn)換成功,JSP引擎用javac把該Java源文件編譯成相應(yīng)的.class文件。2.2 MVC模式MVC全名是Model View Controller,是模型(Model)視圖(View)控制器(

16、Controller)的縮寫,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。最典型的MVC就是JSP+Servlet+JavaBean的模式。2.2.1 MVC模式的優(yōu)缺點(diǎn)(1) 優(yōu)點(diǎn)偶合性低視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)MVC的模型層即可。由于運(yùn)用MVC的應(yīng)用程序的三個(gè)部件是相互獨(dú)立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的松耦合的構(gòu)件。部署快使用MVC模式使開發(fā)時(shí)間得到相當(dāng)大的縮減,它使程序員

17、(Java開發(fā)人員)集中精力于業(yè)務(wù)邏輯,界面程序員(HTML和JSP開發(fā)人員)集中精力于表現(xiàn)形式上。重用性高M(jìn)VC模式允許使用各種不同樣式的視圖來訪問同一個(gè)服務(wù)器端的代碼,因?yàn)槎鄠€(gè)視圖能共享一個(gè)模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機(jī)來訂購某樣產(chǎn)品,雖然訂購的方式不一樣,但處理訂購產(chǎn)品的方式是一樣的。由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用HTML來表示,但是也有可能用WAP來表示,而這些表示所需要的命令是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無需做任何改變。(2) 缺點(diǎn)增加系統(tǒng)結(jié)構(gòu)和實(shí)

18、現(xiàn)的復(fù)雜性對(duì)于簡單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過多的更新操作,降低運(yùn)行效率。沒有明確的定義完全理解MVC并不是很容易。使用MVC需要精心的計(jì)劃,由于它的內(nèi)部原理比較復(fù)雜,所以需要花費(fèi)一些時(shí)間去思考。同時(shí)由于模型和視圖要嚴(yán)格的分離,這樣也給調(diào)試應(yīng)用程序帶來了一定的困難。每個(gè)構(gòu)件在使用之前都需要經(jīng)過徹底的測試。不適合小型,中等規(guī)模的應(yīng)用程序花費(fèi)大量時(shí)間將MVC應(yīng)用到規(guī)模并不是很大的應(yīng)用程序通常會(huì)得不償失。2.2.2 MVC模式的處理流程圖2.2 MVC模式的處理流程用戶輸入信息后,控制器層(Controller)會(huì)將相應(yīng)的數(shù)據(jù)傳輸給模型層(Mod

19、el),然后模型層會(huì)進(jìn)行相關(guān)的業(yè)務(wù)處理(例如:調(diào)用相關(guān)類、對(duì)數(shù)據(jù)庫進(jìn)行相應(yīng)的操作等),在很具處理結(jié)果的不同尋找不同的視圖(View),視圖層將傳過來的結(jié)果加載到相應(yīng)的位置,最后顯示給用戶。2.3 SQL Server 2005Microsoft SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫平臺(tái),使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理,可以滿足Web站點(diǎn)和企業(yè)數(shù)據(jù)處理系統(tǒng)存儲(chǔ)和分析數(shù)據(jù)的需求。Microsoft SQL Server 2005 數(shù)據(jù)引擎是該企業(yè)數(shù)據(jù)管理解決方案的核心,此外 Microsoft SQL Server 2005 還結(jié)合了分析、報(bào)表、集成和通知功能

20、。2.3.1 SQL Server 2005的特點(diǎn)(1) 數(shù)據(jù)庫引擎數(shù)據(jù)庫引擎是用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。利用數(shù)據(jù)庫引擎可控制訪問權(quán)限并快速處理事務(wù),從而滿足企業(yè)內(nèi)要求極高而且需要處理大量數(shù)據(jù)的應(yīng)用需要。(2) 全文搜索功能的增強(qiáng)SQL Server2005將支持豐富的全文應(yīng)用軟件。服務(wù)器的編目功能將得到增強(qiáng),對(duì)編目的對(duì)象提供更大的靈活性。查詢性能和可升級(jí)性將大幅得到改進(jìn),同時(shí)新的管理工具將為有關(guān)全文功能的運(yùn)行,提供更深入的了解。(3) 增強(qiáng)的安全性SQL Server2005中的新安全模式將用戶和對(duì)象分開,提供fine-grainAccess存取、并允許對(duì)數(shù)據(jù)存取進(jìn)行更大的控制。另

21、外,所有系統(tǒng)表格將作為視圖得到實(shí)施,對(duì)數(shù)據(jù)庫系統(tǒng)對(duì)象進(jìn)行了更大程度的控制。2.3.2 SQL語言SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL語言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫都對(duì)SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select,Insert,Update,Delete,Create,

22、以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。2.4 本章小結(jié)本章主要介紹了開發(fā)博客網(wǎng)所需要的一些技術(shù),例如:JSP技術(shù)、MVC模式以及SQL Server 2005數(shù)據(jù)庫等,同時(shí)說明了各個(gè)技術(shù)的一些特點(diǎn)以及其中一些用到的具體操作,并且要在設(shè)計(jì)系統(tǒng)過程中靈活應(yīng)用,以達(dá)到最好的效果。第三章 系統(tǒng)分析及數(shù)據(jù)庫設(shè)計(jì)3.1系統(tǒng)需求分析本博客登錄部分主要分為管理員與訪問者兩種,根據(jù)身份不同,需求也不相同。根據(jù)具體分析之后,管理員與訪問者具體的需求分別如圖3.1、3.2所示:客戶端訪問者:圖3.1 訪問者功能需求服務(wù)端管理員:圖3.2 管理員功能需求3.2 系統(tǒng)功能分析根據(jù)上圖

23、結(jié)構(gòu)以及模塊分析來看,本次設(shè)計(jì)的博客主要擁有的功能包括以下幾點(diǎn):l 對(duì)用戶進(jìn)行登錄驗(yàn)證。如果是已經(jīng)注冊(cè)的用戶,則可以進(jìn)入;如果還未注冊(cè),則需要注冊(cè)成功后才能進(jìn)入該網(wǎng)站,否則視為非法用戶;l 注冊(cè)時(shí)需要對(duì)用戶輸入內(nèi)容加以判斷,以確定是否符合要求。如果符合要求,則會(huì)注冊(cè)成功;如果其中有不符合的內(nèi)容,則注冊(cè)失敗,用戶需要重新注冊(cè);l 對(duì)已經(jīng)登錄成功的用戶再次進(jìn)行博主認(rèn)證。如果是博主本人登錄,則顯示后臺(tái)的鏈接,使博主可以有效的管理博客網(wǎng);如果只是普通訪問者,則不顯示后臺(tái)的鏈接,訪問者只可以進(jìn)行文章查看及回復(fù)、相冊(cè)訪問等基本功能;l 對(duì)文章信息進(jìn)行管理。通過選擇文章類別名稱添加文章內(nèi)容,并可以查詢、修改

24、和刪除文章內(nèi)容(除查詢外,其它功能僅限博主本人,如果是博主登錄,會(huì)顯示后臺(tái)的超鏈接);l 可以在線修改管理員與訪問者的個(gè)人信息。3.3 數(shù)據(jù)庫設(shè)計(jì)在系統(tǒng)開發(fā)的過程中,數(shù)據(jù)庫設(shè)計(jì)占有極其重要的地位。數(shù)據(jù)庫設(shè)計(jì)的原則是根據(jù)系統(tǒng)的整體需求而定的。首先分析出在實(shí)施過程以及在日后的使用中需要哪些數(shù)據(jù),然后對(duì)這些數(shù)據(jù)進(jìn)行整理、分類,最后創(chuàng)建出符合要求的數(shù)據(jù)庫以及數(shù)據(jù)表。通過對(duì)本網(wǎng)站進(jìn)行的需求分析、網(wǎng)站流程分析,以及系統(tǒng)功能結(jié)構(gòu)的確定,規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫實(shí)體對(duì)象。3.3.1 數(shù)據(jù)庫設(shè)計(jì)本次設(shè)計(jì)將使用SQL Server 2005數(shù)據(jù)庫作為數(shù)據(jù)庫管理系統(tǒng)。新建一個(gè)數(shù)據(jù)庫,將數(shù)據(jù)庫名命名為db_BlodM

25、ay,其中包含的數(shù)據(jù)庫表及相應(yīng)功能如表3.1所示:表3. 1 db_BlodMay數(shù)據(jù)庫包含的數(shù)據(jù)表及其功能數(shù) 據(jù) 表功 能tb_consumer用戶信息表tb_article文章信息表tb_articleType文章類別信息表tb_restore文章回復(fù)信息表tb_photo個(gè)人相冊(cè)信息表3.3.2 數(shù)據(jù)庫表設(shè)計(jì)本次設(shè)計(jì)數(shù)據(jù)庫中主要包括用戶信息表、文章內(nèi)容信息表、文章類型信息表,具體的數(shù)據(jù)表如表3.23.6所示用戶信息表名為tb_consumer,主要用來保存用戶信息,其中的具體內(nèi)容如表3.2所示:idInt(4)否自動(dòng)編號(hào)accountVarchar(10)是用戶名passwordVarc

26、har(10)是用戶登錄密碼nameVarchar(50)是用戶真實(shí)姓名sexChar(5)是用戶性別QQNumberInt(10)是用戶QQ號(hào)碼mainPageVarchar(50)是主頁地址interestVarchar(50)是用戶愛好eMailVarchar(50)是電子郵箱manageLevelVarchar(10)是用戶登錄級(jí)別表3.2 用戶信息表文章類別信息表名為tb_articleType,主要用來保存文章類別信息,其中的具體內(nèi)容如表3.3所示:idint否自動(dòng)編號(hào)typeNamevarchar(50)是類別名稱descriptionvarchar(50)是內(nèi)容表3.3 文章類

27、別信息表相冊(cè)信息表名為tb_photo,主要用來保存相冊(cè)基本信息,其中的具體內(nèi)容如表3.4所示:表3.4 相冊(cè)信息表idInt(4)否自動(dòng)編號(hào)photoAddressVarchar(50)是相冊(cè)存放地址photoDescriptionVarchar(50)是相冊(cè)描述時(shí)間photoTimeVarchar(50)是相冊(cè)上傳時(shí)間文章內(nèi)容信息表名為tb_article,主要用來保存文章內(nèi)容信息,其中的具體內(nèi)容如表3.5所示:表3.5 文章內(nèi)容信息表idInt(4)是否自動(dòng)編號(hào)typeIDInt(4)否文章類別表的外鍵titleVarchar(30)是文章題目contentVarchar(2000)是

28、文章內(nèi)容phTimeVarchar(30)是文章發(fā)布時(shí)間numberInt(4)是文章訪問次數(shù)文章回復(fù)信息表名為tb_restore,主要用來保存文章回復(fù)信息,其中的具體內(nèi)容如表3.6所示:表3.6 文章回復(fù)信息表idint否自動(dòng)編號(hào)articleIdint是文章編號(hào)reAccountVarchar(50)是閱讀次數(shù)reTitleVarchar(50)是回復(fù)文章標(biāo)題reContentntext是回復(fù)文章內(nèi)容3.4 本章小結(jié)本章具體的分析了系統(tǒng)的基本流程以及所需要的基本功能,同時(shí)對(duì)該博客基本的幾項(xiàng)功能進(jìn)行了簡要的說明,同時(shí)針對(duì)項(xiàng)目對(duì)于具體信息的需要以及在對(duì)信息進(jìn)行整理之后,設(shè)計(jì)出了相應(yīng)的數(shù)據(jù)庫和

29、數(shù)據(jù)表。在本章給出的數(shù)據(jù)表中,也對(duì)給出的數(shù)據(jù)表進(jìn)行了詳細(xì)的說明。如各表名與表中信息的數(shù)據(jù)類型、哪些列為主鍵、是否允許為空和對(duì)每項(xiàng)列名的解釋說明。通過這些數(shù)據(jù),能夠清晰的了解到項(xiàng)目整體需要哪些信息,同時(shí)各個(gè)功能與數(shù)據(jù)表也可以一一對(duì)應(yīng)上,對(duì)于了解項(xiàng)目處理的流程也能起到輔助作用。第4章 系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)博客網(wǎng)主要分為前臺(tái)與后臺(tái)兩個(gè)部分,分別對(duì)應(yīng)于普通訪問者和博主(即管理員)。前臺(tái)主要用于顯示博客網(wǎng)的主要內(nèi)容,后臺(tái)主要用于博主對(duì)網(wǎng)站內(nèi)的信息管理等。4.1 前臺(tái)功能的實(shí)現(xiàn)前臺(tái)是本網(wǎng)站的核心,通過前臺(tái)頁面的顯示可以實(shí)現(xiàn)用戶的登錄與注冊(cè)、文章信息查詢及回復(fù)、相冊(cè)查看等一系列功能,下面就來分別介紹各種功能的

30、實(shí)現(xiàn)過程。4.1.1 登錄模塊(1) 內(nèi)容介紹登錄頁面是博客網(wǎng)的首頁,只有登錄成功,用戶才可以進(jìn)行其他的操作。在首頁,用戶輸入用戶名和密碼進(jìn)行登錄操作。如果用戶名與密碼輸入框都為空,在點(diǎn)擊登錄按鈕時(shí),系統(tǒng)會(huì)彈出提示用戶輸入為空,并回到登錄頁面;如果不為空,則訪問相應(yīng)的類和數(shù)據(jù)庫進(jìn)行驗(yàn)證,如果用戶輸入的用戶名與密碼和數(shù)據(jù)庫中的數(shù)據(jù)相符,則說明為合法用戶,即登錄成功,可以開放其它功能為用戶使用;如果用戶輸入的用戶名與密碼和數(shù)據(jù)庫中的數(shù)據(jù)不符,則說明為非法用戶,系統(tǒng)將彈出提示“您輸入的用戶名不存在,請(qǐng)重新輸入”,并返回到登錄頁面,使用戶重新登錄。第5章 設(shè)計(jì)流程圖4.1 登錄模塊的設(shè)計(jì)流程第6章 功

31、能實(shí)現(xiàn)根據(jù)上圖的展示,可以清楚的了解實(shí)現(xiàn)用戶登錄功能的整體過程,具體的效果圖如下所示:用戶登錄頁面,使用戶輸入用戶名和密碼:圖4.2 登錄頁面 用戶登錄成功頁面,并彈出提示“用戶登錄成功”:圖4.3 登錄成功 用戶登錄失敗頁面,并彈出提示:圖4.4 登錄失敗第7章 功能實(shí)現(xiàn)代碼上面已經(jīng)呈現(xiàn)出了實(shí)際的效果圖,而所有的實(shí)現(xiàn)過程均是由代碼所執(zhí)行的。用戶輸入用戶名與密碼,點(diǎn)擊登錄之后,系統(tǒng)將會(huì)獲取用戶輸入的用戶名,并根據(jù)用戶名到數(shù)據(jù)庫中取出該用戶的所有信息并進(jìn)行判斷,如果沒有取出任何信息,則說明沒有該用戶,提示“您輸入的用戶名不存在,請(qǐng)重新輸入!”;如果取出信息中的密碼與數(shù)據(jù)庫中不一致,則提示“您輸入

32、的登錄密碼有誤,請(qǐng)重新輸入!”;如果沒有錯(cuò)誤,則登錄成功并轉(zhuǎn)到相應(yīng)頁面。下面將給出在設(shè)計(jì)過程的關(guān)鍵代碼。 判斷用戶登錄是否成功ConsumerServlet.java:/ 用戶登錄操作publicvoid checkConsumer(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(gb2312);String account = request.getParameter(account);consu

33、merDao = new ConsumerDao();ConsumerForm consumerForm = consumerDao.getConsumerForm(account);if (consumerForm = null) request.setAttribute(information, 您輸入的用戶名不存在,請(qǐng)重新輸入!); elseif (!consumerForm.getPassword().equals(request.getParameter(password) request.setAttribute(information, 您輸入的登錄密碼有誤,請(qǐng)重新輸入!); e

34、lse request.setAttribute(form, consumerForm);RequestDispatcher requestDispatcher = request.getRequestDispatcher(dealwith.jsp);requestDispatcher.forward(request, response); 根據(jù)用戶名取出用戶所有信息ConsumerDao/getConsumerForm.java:/ 以用戶名為查詢條件,查詢一組數(shù)據(jù)public ConsumerForm getConsumerForm(String account) String sql =

35、 select * from tb_consumer where account= + account+ ;try ResultSet rs = connection.executeQuery(sql);while (rs.next() consumerForm = new ConsumerForm();consumerForm.setId(Integer.valueOf(rs.getString(1);consumerForm.setAccount(rs.getString(2);consumerForm.setPassword(rs.getString(3);consumerForm.se

36、tName(rs.getString(4);consumerForm.setSex(rs.getString(5);consumerForm.setQQNumber(rs.getString(6);consumerForm.setMainPage(rs.getString(7);consumerForm.setInterest(rs.getString(8);consumerForm.setEMail(rs.getString(9);consumerForm.setManageLevel(rs.getString(10); catch (SQLException e) e.printStack

37、Trace();returnconsumerForm;4.1.2 注冊(cè)模塊(1) 內(nèi)容介紹對(duì)于首次進(jìn)入博客網(wǎng)以及登錄失敗的用戶,需在該網(wǎng)站注冊(cè)成功后才能進(jìn)入博客進(jìn)行下面的操作。本次設(shè)計(jì)在登錄界面加上了注冊(cè)的超鏈接,用戶可以點(diǎn)擊該鏈接到注冊(cè)頁面進(jìn)行注冊(cè),填寫相應(yīng)的內(nèi)容進(jìn)行注冊(cè),填寫完畢后,點(diǎn)擊保存按鈕,系統(tǒng)會(huì)自動(dòng)調(diào)用相關(guān)類來進(jìn)行驗(yàn)證,當(dāng)用戶輸入的內(nèi)容與系統(tǒng)要求相符時(shí),系統(tǒng)會(huì)提示“用戶注冊(cè)成功”并自動(dòng)登錄;如果用戶輸入的內(nèi)容與要求不符,系統(tǒng)將會(huì)相應(yīng)的提示用戶的錯(cuò)誤,使用戶重新輸入。(2) 設(shè)計(jì)流程圖4.5 注冊(cè)模塊的設(shè)計(jì)流程(3) 功能實(shí)現(xiàn)注冊(cè)功能的大致流程已經(jīng)給出,下面給出實(shí)際的效果圖。 用戶注

38、冊(cè)頁面,使用戶輸入相關(guān)信息:圖4.6 注冊(cè)頁面 用戶注冊(cè)成功頁面,并彈出提示“用戶注冊(cè)成功”:圖4.7 注冊(cè)成功 用戶注冊(cè)失敗頁面,并彈出提示“用戶注冊(cè)失敗”:圖4.8 注冊(cè)失敗(4) 功能實(shí)現(xiàn)代碼使用注冊(cè)功能中,用戶需要根據(jù)列出的內(nèi)容進(jìn)行填寫。如果輸入不合要求系統(tǒng)將會(huì)提示注冊(cè)失敗,使用戶重新進(jìn)行注冊(cè);如果所有內(nèi)容均填寫完畢并符合要求,則提示注冊(cè)成功并自動(dòng)登錄。下面將給出在設(shè)計(jì)過程的關(guān)鍵代碼。 獲取用戶輸入內(nèi)容并調(diào)用相關(guān)類判斷ConsumerServlet.java:/ 用戶注冊(cè)操作publicvoid registerConsumer(HttpServletRequest request,H

39、ttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(gb2312);ConsumerForm form = new ConsumerForm();consumerDao = new ConsumerDao();form.setAccount(Chinese.toChinese(request.getParameter(account);form.setPassword(Chinese.toChinese(request.getParameter(passwo

40、rd);form.setName(Chinese.toChinese(request.getParameter(name);form.setSex(Chinese.toChinese(request.getParameter(sex);form.setQQNumber(request.getParameter(QQnumber);form.setMainPage(request.getParameter(mainPage);form.setInterest(Chinese.toChinese(request.getParameter(interest);form.setEMail(reques

41、t.getParameter(eMail);form.setManageLevel(普通);String result = fail;if (consumerDao.getConsumerForm(form.getAccount() = null) if (consumerDao.addConsumerForm(form) request.setAttribute(form, consumerDao.getConsumerForm(form.getAccount();result = success;request.setAttribute(result, result);RequestDis

42、patcher requestDispatcher = request.getRequestDispatcher(dealwith.jsp);requestDispatcher.forward(request, response); 向數(shù)據(jù)庫中添加用戶信息ConsumerDao/addConsumerForm.java:/ 添加用戶信息publicbooleanaddConsumerForm(ConsumerForm form) boolean flag = false;String sql = insert into tb_consumer values ( + form.getAccoun

43、t()+ , + form.getPassword() + , + form.getName() + ,+ form.getSex() + , + form.getQQNumber() + ,+ form.getMainPage() + , + form.getInterest() + ,+ form.getEMail() + , + form.getManageLevel() + );if (connection.executeUpdate(sql) flag = true;return flag;4.1.3 博客主頁(1) 內(nèi)容介紹博客主頁是登錄成功后進(jìn)入的第一個(gè)頁面,也是該網(wǎng)站的宣傳頁面

44、。這個(gè)頁面上有該博客的所有功能,其中最主要的就是文章的顯示,可以讓用戶在第一時(shí)間看到最新發(fā)表的文章,該功能的實(shí)現(xiàn)是由后臺(tái)類自動(dòng)進(jìn)行,系統(tǒng)運(yùn)行后,會(huì)調(diào)用相關(guān)類來訪問數(shù)據(jù)庫中的數(shù)據(jù),取出數(shù)據(jù)后并顯示在頁面上。(2) 功能實(shí)現(xiàn)由于該過程是由系統(tǒng)自動(dòng)調(diào)用數(shù)據(jù)庫內(nèi)的信息并顯示在頁面上,所以實(shí)際效果圖如圖4.9所示:圖4.9 博客主頁(3) 功能實(shí)現(xiàn)代碼進(jìn)入主頁面后,系統(tǒng)會(huì)自動(dòng)顯示信息,下面給出該過程實(shí)現(xiàn)的代碼: 獲取文章信息%for(int articleI=0;articleI100)articleContent=articleContent.substring(0,100)+.;% 根據(jù)封裝信息到數(shù)

45、據(jù)庫中獲取publicclass ArticleForm private Integer id=-1;private Integer typeId=-1;private String title=;private String content=;private String phTime=;private Integer number=-1;public String getContent() returncontent;publicvoid setContent(String content) this.content = content;public Integer getId() ret

46、urnid;publicvoid setId(Integer id) this.id = id;public Integer getNumber() returnnumber;publicvoid setNumber(Integer number) this.number = number;public String getPhTime() returnphTime;publicvoid setPhTime(String phTime) this.phTime = phTime;public String getTitle() returntitle;publicvoid setTitle(S

47、tring title) this.title = title;public Integer getTypeId() returntypeId;publicvoid setTypeId(Integer typeId) this.typeId = typeId;4.2 后臺(tái)功能的實(shí)現(xiàn)(1) 內(nèi)容介紹后臺(tái)功能主要針對(duì)博主來說,登錄后,系統(tǒng)會(huì)自動(dòng)進(jìn)行驗(yàn)證,如果登錄用戶為博主本人,則會(huì)在頁面上顯示出“進(jìn)入后臺(tái)”的超鏈接,點(diǎn)擊該鏈接可以進(jìn)入后臺(tái)進(jìn)行一系列的管理,如進(jìn)行文章的添加、刪除等。(2) 功能實(shí)現(xiàn)管理員進(jìn)入后臺(tái)之后,進(jìn)行相關(guān)的操作以管理該博客的運(yùn)行。這里以文章添加和刪除功能來介紹后臺(tái)功能,實(shí)際效果

48、圖如下所示: 發(fā)表文章頁面,使博主輸入文章題目與內(nèi)容圖4.10 發(fā)表文章頁面 發(fā)表成功,在下方顯示文字提示發(fā)表成功圖4.11 發(fā)表成功 刪除文章頁面(被刪除文章題目為Android)圖4.12 刪除文章 刪除成功,并彈出提示“刪除成功”圖4.13 刪除文章成功(3) 功能實(shí)現(xiàn)代碼發(fā)表文章時(shí),管理員輸入題目與內(nèi)容后,點(diǎn)擊“保存”按鈕即可;刪除時(shí),只要點(diǎn)擊文章后面的“刪除”,確定即可。下面將給出關(guān)鍵代碼: 添加文章ArticleServlet.java:/ 后臺(tái)添加文章publicvoid addArticle(HttpServletRequest request,HttpServletRespo

49、nse response) throws ServletException, IOException ArticleForm articleForm = new ArticleForm();articleForm.setTypeId(Integer.valueOf(request.getParameter(typeId);articleForm.setTitle(Chinese.toChinese(request.getParameter(title);articleForm.setNumber(Integer.valueOf(request.getParameter(number);arti

50、cleForm.setContent(Chinese.toChinese(request.getParameter(content);articleForm.setPhTime(Chinese.toChinese(request.getParameter(phTime);articleDao = new ArticleDao();String result = 文章添加失敗!;if (articleDao.operationArticle(添加, articleForm) result = 文章添加成功!;request.setAttribute(result, result);Request

51、Dispatcher requestDispatcher = request.getRequestDispatcher(back_ArticleAdd.jsp);requestDispatcher.forward(request, response); 根據(jù)上段代碼的結(jié)果向數(shù)據(jù)庫中添加信息ArticleDao/operationArticle.java:publicbooleanoperationArticle(String operation, ArticleForm form) boolean flag = false;String sql = null;if (operation.equ

52、als(添加)sql = insert into tb_article values ( + form.getTypeId() + ,+ form.getTitle() + , + form.getContent() + ,+ form.getPhTime() + , + form.getNumber() + );if (operation.equals(修改)sql = update tb_article set typeID= + form.getTypeId()+ ,title= + form.getTitle() + ,content=+ form.getContent() + whe

53、re id= + form.getId() + ;if (operation.equals(刪除)sql = delete from tb_article where id= + form.getId() + ;if (operation.equals(增加)sql = update tb_article set number=number+1 where id=+ form.getId() + ;if (connection.executeUpdate(sql) flag = true;return flag;4.3 本章小結(jié)本章主要介紹了在網(wǎng)站中幾項(xiàng)主要的功能,如登錄、注冊(cè)、文章查看以及在后臺(tái)管理進(jìn)行文章的發(fā)表和刪除等,說明了各個(gè)功能運(yùn)行的流程并給出圖加以說明,同時(shí)給出了在設(shè)計(jì)過程中主要部分的代碼以及項(xiàng)目運(yùn)行的效果圖,使各個(gè)功能的運(yùn)行看起來更加清晰,對(duì)項(xiàng)目整體的實(shí)施過程有更

溫馨提示

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

評(píng)論

0/150

提交評(píng)論