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

下載本文檔

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

文檔簡介

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

2、之間的交流。本文設(shè)計了基于Servlet和JavaBean的個人博客,通過JSP語言、基于B/S的服務(wù)模式、SQL Server 2005等技術(shù)重點介紹了個人博客的開發(fā)過程。包括:系統(tǒng)分析、需求分析、數(shù)據(jù)庫設(shè)計、功能設(shè)計、系統(tǒng)調(diào)試和實現(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)濟可行性11.3.2 技術(shù)可行性21.4論文的結(jié)構(gòu)2第二章 系統(tǒng)相關(guān)技術(shù)介紹32.1 JSP技術(shù)32.1.1 JSP特點32.1.2 JSP的

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

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

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

9、上傳的個人照片、對博主以及發(fā)表的文章進行留言、查看公告欄等。在本網(wǎng)站的設(shè)計中,主要用到了JSP、MVC、SQL Server 2005數(shù)據(jù)庫等技術(shù),具體的技術(shù)內(nèi)容將在第二章給出詳細的說明。本次系統(tǒng)設(shè)計中開發(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)濟可行性博客網(wǎng)通過我的文章和相冊上傳等功能模塊,來吸引更多的瀏覽者,增加網(wǎng)站的訪問量,提升網(wǎng)站的影響力;通過不斷更

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

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

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

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

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

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

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

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

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

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

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

21、外,所有系統(tǒng)表格將作為視圖得到實施,對數(shù)據(jù)庫系統(tǒng)對象進行了更大程度的控制。2.3.2 SQL語言SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(liá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語言標準。雖然很多數(shù)據(jù)庫都對SQL語句進行了再開發(fā)和擴展,但是包括Select,Insert,Update,Delete,Create,

22、以及Drop在內(nèi)的標準的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。2.4 本章小結(jié)本章主要介紹了開發(fā)博客網(wǎng)所需要的一些技術(shù),例如:JSP技術(shù)、MVC模式以及SQL Server 2005數(shù)據(jù)庫等,同時說明了各個技術(shù)的一些特點以及其中一些用到的具體操作,并且要在設(shè)計系統(tǒng)過程中靈活應(yīng)用,以達到最好的效果。第三章 系統(tǒng)分析及數(shù)據(jù)庫設(shè)計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è)計的博客主要擁有的功能包括以下幾點:l 對用戶進行登錄驗證。如果是已經(jīng)注冊的用戶,則可以進入;如果還未注冊,則需要注冊成功后才能進入該網(wǎng)站,否則視為非法用戶;l 注冊時需要對用戶輸入內(nèi)容加以判斷,以確定是否符合要求。如果符合要求,則會注冊成功;如果其中有不符合的內(nèi)容,則注冊失敗,用戶需要重新注冊;l 對已經(jīng)登錄成功的用戶再次進行博主認證。如果是博主本人登錄,則顯示后臺的鏈接,使博主可以有效的管理博客網(wǎng);如果只是普通訪問者,則不顯示后臺的鏈接,訪問者只可以進行文章查看及回復(fù)、相冊訪問等基本功能;l 對文章信息進行管理。通過選擇文章類別名稱添加文章內(nèi)容,并可以查詢、修改

24、和刪除文章內(nèi)容(除查詢外,其它功能僅限博主本人,如果是博主登錄,會顯示后臺的超鏈接);l 可以在線修改管理員與訪問者的個人信息。3.3 數(shù)據(jù)庫設(shè)計在系統(tǒng)開發(fā)的過程中,數(shù)據(jù)庫設(shè)計占有極其重要的地位。數(shù)據(jù)庫設(shè)計的原則是根據(jù)系統(tǒng)的整體需求而定的。首先分析出在實施過程以及在日后的使用中需要哪些數(shù)據(jù),然后對這些數(shù)據(jù)進行整理、分類,最后創(chuàng)建出符合要求的數(shù)據(jù)庫以及數(shù)據(jù)表。通過對本網(wǎng)站進行的需求分析、網(wǎng)站流程分析,以及系統(tǒng)功能結(jié)構(gòu)的確定,規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫實體對象。3.3.1 數(shù)據(jù)庫設(shè)計本次設(shè)計將使用SQL Server 2005數(shù)據(jù)庫作為數(shù)據(jù)庫管理系統(tǒng)。新建一個數(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個人相冊信息表3.3.2 數(shù)據(jù)庫表設(shè)計本次設(shè)計數(shù)據(jù)庫中主要包括用戶信息表、文章內(nèi)容信息表、文章類型信息表,具體的數(shù)據(jù)表如表3.23.6所示用戶信息表名為tb_consumer,主要用來保存用戶信息,其中的具體內(nèi)容如表3.2所示:idInt(4)否自動編號accountVarchar(10)是用戶名passwordVarc

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

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

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

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

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

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

32、的登錄密碼有誤,請重新輸入!”;如果沒有錯誤,則登錄成功并轉(zhuǎn)到相應(yīng)頁面。下面將給出在設(shè)計過程的關(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, 您輸入的用戶名不存在,請重新輸入!); elseif (!consumerForm.getPassword().equals(request.getParameter(password) request.setAttribute(information, 您輸入的登錄密碼有誤,請重新輸入!); 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 注冊模塊(1) 內(nèi)容介紹對于首次進入博客網(wǎng)以及登錄失敗的用戶,需在該網(wǎng)站注冊成功后才能進入博客進行下面的操作。本次設(shè)計在登錄界面加上了注冊的超鏈接,用戶可以點擊該鏈接到注冊頁面進行注冊,填寫相應(yīng)的內(nèi)容進行注冊,填寫完畢后,點擊保存按鈕,系統(tǒng)會自動調(diào)用相關(guān)類來進行驗證,當用戶輸入的內(nèi)容與系統(tǒng)要求相符時,系統(tǒng)會提示“用戶注冊成功”并自動登錄;如果用戶輸入的內(nèi)容與要求不符,系統(tǒng)將會相應(yīng)的提示用戶的錯誤,使用戶重新輸入。(2) 設(shè)計流程圖4.5 注冊模塊的設(shè)計流程(3) 功能實現(xiàn)注冊功能的大致流程已經(jīng)給出,下面給出實際的效果圖。 用戶注

38、冊頁面,使用戶輸入相關(guān)信息:圖4.6 注冊頁面 用戶注冊成功頁面,并彈出提示“用戶注冊成功”:圖4.7 注冊成功 用戶注冊失敗頁面,并彈出提示“用戶注冊失敗”:圖4.8 注冊失敗(4) 功能實現(xiàn)代碼使用注冊功能中,用戶需要根據(jù)列出的內(nèi)容進行填寫。如果輸入不合要求系統(tǒng)將會提示注冊失敗,使用戶重新進行注冊;如果所有內(nèi)容均填寫完畢并符合要求,則提示注冊成功并自動登錄。下面將給出在設(shè)計過程的關(guān)鍵代碼。 獲取用戶輸入內(nèi)容并調(diào)用相關(guān)類判斷ConsumerServlet.java:/ 用戶注冊操作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)容介紹博客主頁是登錄成功后進入的第一個頁面,也是該網(wǎng)站的宣傳頁面

44、。這個頁面上有該博客的所有功能,其中最主要的就是文章的顯示,可以讓用戶在第一時間看到最新發(fā)表的文章,該功能的實現(xiàn)是由后臺類自動進行,系統(tǒng)運行后,會調(diào)用相關(guān)類來訪問數(shù)據(jù)庫中的數(shù)據(jù),取出數(shù)據(jù)后并顯示在頁面上。(2) 功能實現(xiàn)由于該過程是由系統(tǒng)自動調(diào)用數(shù)據(jù)庫內(nèi)的信息并顯示在頁面上,所以實際效果圖如圖4.9所示:圖4.9 博客主頁(3) 功能實現(xiàn)代碼進入主頁面后,系統(tǒng)會自動顯示信息,下面給出該過程實現(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 后臺功能的實現(xiàn)(1) 內(nèi)容介紹后臺功能主要針對博主來說,登錄后,系統(tǒng)會自動進行驗證,如果登錄用戶為博主本人,則會在頁面上顯示出“進入后臺”的超鏈接,點擊該鏈接可以進入后臺進行一系列的管理,如進行文章的添加、刪除等。(2) 功能實現(xiàn)管理員進入后臺之后,進行相關(guān)的操作以管理該博客的運行。這里以文章添加和刪除功能來介紹后臺功能,實際效果

48、圖如下所示: 發(fā)表文章頁面,使博主輸入文章題目與內(nèi)容圖4.10 發(fā)表文章頁面 發(fā)表成功,在下方顯示文字提示發(fā)表成功圖4.11 發(fā)表成功 刪除文章頁面(被刪除文章題目為Android)圖4.12 刪除文章 刪除成功,并彈出提示“刪除成功”圖4.13 刪除文章成功(3) 功能實現(xiàn)代碼發(fā)表文章時,管理員輸入題目與內(nèi)容后,點擊“保存”按鈕即可;刪除時,只要點擊文章后面的“刪除”,確定即可。下面將給出關(guān)鍵代碼: 添加文章ArticleServlet.java:/ 后臺添加文章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)站中幾項主要的功能,如登錄、注冊、文章查看以及在后臺管理進行文章的發(fā)表和刪除等,說明了各個功能運行的流程并給出圖加以說明,同時給出了在設(shè)計過程中主要部分的代碼以及項目運行的效果圖,使各個功能的運行看起來更加清晰,對項目整體的實施過程有更

溫馨提示

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

評論

0/150

提交評論