畢業(yè)設(shè)計論文基于JAVA的Weblog 網(wǎng)站設(shè)計與實(shí)現(xiàn)

上傳人:無*** 文檔編號:75271340 上傳時間:2022-04-15 格式:DOC 頁數(shù):60 大?。?.99MB
收藏 版權(quán)申訴 舉報 下載
畢業(yè)設(shè)計論文基于JAVA的Weblog 網(wǎng)站設(shè)計與實(shí)現(xiàn)_第1頁
第1頁 / 共60頁
畢業(yè)設(shè)計論文基于JAVA的Weblog 網(wǎng)站設(shè)計與實(shí)現(xiàn)_第2頁
第2頁 / 共60頁
畢業(yè)設(shè)計論文基于JAVA的Weblog 網(wǎng)站設(shè)計與實(shí)現(xiàn)_第3頁
第3頁 / 共60頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)設(shè)計論文基于JAVA的Weblog 網(wǎng)站設(shè)計與實(shí)現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計論文基于JAVA的Weblog 網(wǎng)站設(shè)計與實(shí)現(xiàn)(60頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、邵陽學(xué)院畢業(yè)設(shè)計(論文)第1章 緒論現(xiàn)代科技日新月異,人們可以從很多途徑獲得信息,訪問WEB LOG成為一種很重要的獲取信息的方式。博客一詞開始代表著數(shù)字生活新時尚,通過文字、圖片、聲音、視頻、無線等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, Share me,人人都可以博客,人人都需要博客。1.1項(xiàng)目開發(fā)背景“博客”一詞是從英文單詞Blog翻譯而來。Blog是Weblog的簡稱,而Weblog則是由Web和Log兩個英文單詞組合而成。Weblog就是在網(wǎng)絡(luò)上發(fā)布和閱讀的流水記錄,通常稱為“網(wǎng)絡(luò)日志”,簡稱為“網(wǎng)志”。它是繼Email、BBS、IM之后出現(xiàn)的第四種全新

2、的網(wǎng)絡(luò)交流方式。它絕不僅僅是一種單向的發(fā)布系統(tǒng),而且有著極其出色的交流功能。另外Blog也提供了非常方便實(shí)用的個性化功能。簡言之,Blog就是以網(wǎng)絡(luò)作為載體,簡易迅速便捷地發(fā)布自己的心得,及時有效輕松地與他人進(jìn)行交流,再集豐富多彩的個性化展示于一體的綜合性平臺。是一種通常由個人管理、不定期張貼新的文章、圖像或視頻的網(wǎng)站。博客上的文章通常根據(jù)張貼時間,以倒序方式由新到舊排列。許多博客專注在特定的課題上提供評論或新聞,其他則被作為比較個人的日記。一個典型的博客結(jié)合了文字、圖像、其他博客或網(wǎng)站的鏈接、及其它與主題相關(guān)的媒體。能夠讓讀者以互動的方式留下意見,是許多博客的重要要素。大部分的博客內(nèi)容以文字

3、為主,仍有一些博客專注在藝術(shù)、攝影、視頻、音樂、播客等各種主題。博客是社會媒體網(wǎng)絡(luò)的一部分。1.2項(xiàng)目開發(fā)目的與意義目的:提供一個互聯(lián)網(wǎng)平臺的個人信息的交流中心,讓每個人零成本、零維護(hù)地創(chuàng)建自己的網(wǎng)絡(luò)媒體,從而達(dá)到共享資料與交流信息的目的。意義:隨著網(wǎng)絡(luò)的普及,無論是政府機(jī)關(guān)、大中小型企業(yè)、醫(yī)院、銀行、乃至個人都需要通過網(wǎng)絡(luò)達(dá)到共享與交流的目的。能最大化的達(dá)到交流的目的就要建立自己的門戶網(wǎng)站,所以就形成了現(xiàn)在形形色色的網(wǎng)站了。對于個人而言,雖然信息量比較小,共享與交流卻是必須的,但是不可能人人自掏腰包來建立網(wǎng)站,由于這種種因素孕育了博客網(wǎng)站的誕生。就一個普通人來說,他不需要一個網(wǎng)站只需要一個網(wǎng)

4、頁來展示他的信息,保存他的一些資料,博客網(wǎng)站就是一個由眾多用戶網(wǎng)頁頁面形成的網(wǎng)站。它的誕生形成了一個互聯(lián)網(wǎng)個人信息交流中心,它可以讓每個人零成本、零維護(hù)地創(chuàng)建自己風(fēng)格的網(wǎng)絡(luò)媒體,每個人都可以隨時把自己的思想火花和靈感更新到博客站點(diǎn)上。1.3相關(guān)技術(shù)論述1.3.1 JSP技術(shù)概述JSP(全稱JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)和許多公司參與共同建立的一種使軟件開發(fā)者可以響應(yīng)客戶端請求,而動態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁的技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是以Java語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的Java庫單元提供了一個接口來服務(wù)于HT

5、TP的應(yīng)用程序。JSP使Java代碼和特定的預(yù)定義動作可以嵌入到靜態(tài)頁面中。JSP句法增加了被稱為JSP動作的XML標(biāo)簽,它們用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標(biāo)簽庫,然后像使用標(biāo)準(zhǔn)HTML或XML標(biāo)簽一樣使用它們。標(biāo)簽庫提供了一種和平臺無關(guān)的擴(kuò)展服務(wù)器性能的方法。JSP被JSP編譯器編譯成Java Servlets。一個JSP編譯器可以把JSP編譯成JAVA代碼寫的servlet然后再由JAVA編譯器來編譯成機(jī)器碼,也可以直接編譯成二進(jìn)制碼。從架構(gòu)上說,JSP可以被看作是從Servlets高級提煉而作為JAVA Servlet 2.1 API的擴(kuò)展而應(yīng)用。Servlets和JSPs最早都

6、是由Sun Microsystems(升陽公司)開發(fā)的。從JSP1.2版本以來,JSP處于Java Community Process開發(fā)模式下。JSR-53規(guī)定了JSP 1.2和Servlet 2.4的規(guī)范,JSR-152規(guī)定了JSP 2.0的規(guī)范。2006年5月,JSP 2.1的規(guī)范作為Java EE 5的一部份,在JSR-245中發(fā)布。綜上所述其實(shí)JSP就是服務(wù)器端的一種基于Java語言的網(wǎng)頁技術(shù),所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān)。在傳統(tǒng)的網(wǎng)頁中加入Java代碼和JSP標(biāo)簽之后放在服務(wù)器端運(yùn)行,再將運(yùn)行的結(jié)果向用戶發(fā)布,用戶通過瀏覽器

7、就能夠看到精彩紛呈的網(wǎng)頁了。也可以簡單的理解為:HTML+Java程序片段+JSP標(biāo)記 = JSP網(wǎng)頁。容器在遇到JSP網(wǎng)頁的請求時,首先執(zhí)行其中的Java代碼,通過這些Java代碼可以操作數(shù)據(jù)庫、發(fā)送Email、傳輸數(shù)據(jù)信息以及轉(zhuǎn)到另外的網(wǎng)頁等。然后服務(wù)器將執(zhí)行完代碼后所產(chǎn)生的結(jié)果封裝到原HTML網(wǎng)頁中,以HTML的格式返回給用戶,這就是JSP網(wǎng)頁的運(yùn)行原理 13。通過JSP的運(yùn)行原理,我們可以得到如下的JSP執(zhí)行過程:圖1.1 JSP執(zhí)行原理圖JSP技術(shù)的優(yōu)勢:(1)一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持?;旧峡梢栽?/p>

8、所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。 (3)強(qiáng)大的可伸縮性。從只有一個小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺Application進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。 (4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺之下 6。JSP轉(zhuǎn)譯成Servlet有以下幾個方法:(1) jspInit()在JSP頁面初始化時被

9、調(diào)用??梢愿采w該方法,以提供任何的初始化工作;(2) jspDestroy()在JSP頁面被銷毀時調(diào)用。可以覆蓋該方法,以提供任何的JSP清楚工作;(3) jspService()由容器自動定義,不應(yīng)當(dāng)提供該方法的實(shí)現(xiàn) 。JSP的頁面內(nèi)容包括:(1) 靜態(tài)內(nèi)容HTML靜態(tài)文本;(2) 指令;(3) 表達(dá)式;(4) Scriptlet;(5) 聲明;(6) 動作以“ jsp: 動作名 ”開始,以“ ” ;(7) 注釋, 16。1.3.2腳本語言的簡介(1)HTML語言超文本置標(biāo)語言(英文:HyperText Markup Language,簡稱為HTML)是為“網(wǎng)頁創(chuàng)建和其它可在網(wǎng)頁瀏覽器中看到

10、的信息”設(shè)計的一種置標(biāo)語言。HTML被用來結(jié)構(gòu)化信息例如標(biāo)題、段落和列表等等,也可用來在一定程度上描述文檔的外觀和語義。由蒂姆伯納斯-李給出原始定義,由IETF用簡化的SGML(標(biāo)準(zhǔn)通用置標(biāo)語言)語法進(jìn)行進(jìn)一步發(fā)展的HTML,后來成為國際標(biāo)準(zhǔn),由萬維網(wǎng)聯(lián)盟(W3C)維護(hù)。包含HTML內(nèi)容的文件最常用的擴(kuò)展名是.html,但是像DOS這樣的舊操作系統(tǒng)限制擴(kuò)展名為最多三個字符,所以.htm擴(kuò)展名也被使用。雖然現(xiàn)在使用的比較少一些了,但是.htm擴(kuò)展名仍舊普遍被支持。編者可以用任何文本編輯器或所見即所得的HTML編輯器來編輯HTML文件。早期的HTML語法被定義成較松散的規(guī)則,以有助于不熟悉網(wǎng)絡(luò)出版

11、的人采用。網(wǎng)頁瀏覽器接受了這個現(xiàn)實(shí),并且可以顯示語法不嚴(yán)格的網(wǎng)頁。隨著時間的流逝,官方標(biāo)準(zhǔn)漸漸趨于嚴(yán)格的語法,但是瀏覽器繼續(xù)顯示一些遠(yuǎn)稱不上合乎標(biāo)準(zhǔn)的HTML。使用XML的嚴(yán)格規(guī)則的XHTML(可擴(kuò)展超文本置標(biāo)語言)是W3C計劃中的HTML的接替者。雖然很多人認(rèn)為它已經(jīng)成為當(dāng)前的HTML標(biāo)準(zhǔn),但是它實(shí)際上是一個獨(dú)立的、和HTML平行發(fā)展的標(biāo)準(zhǔn)。W3C目前的建議是使用XHTML 1.1、XHTML 1.0或者HTML 4.01進(jìn)行網(wǎng)絡(luò)出版。結(jié)構(gòu)性標(biāo)記并未指示瀏覽器的顯示方式,但是大多數(shù)瀏覽器標(biāo)準(zhǔn)化了這些元素的顯示,例如默認(rèn)情況下上述的標(biāo)題會被顯示為較大的粗體文字。參見層疊樣式表(CSS)。比較常

12、用的結(jié)構(gòu)性標(biāo)記有: html元素 標(biāo)記HTML內(nèi)容的開始和結(jié)束。 head元素 標(biāo)記HTML文件頭,包含不在正文中顯示的關(guān)鍵字、標(biāo)題、腳本等等。 title元素 標(biāo)記HTML文件的標(biāo)題。 body元素 標(biāo)記HTML文件正文的開始和結(jié)束。 (2)Javascript語言Javascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的面向?qū)ο蟮膭討B(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當(dāng)時服務(wù)端需要對數(shù)據(jù)進(jìn)行驗(yàn)證,由于網(wǎng)絡(luò)速度相當(dāng)緩慢,只有28.8kbps,驗(yàn)證步驟浪費(fèi)的時間太多。于是Ne

13、tscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗(yàn)證的基本功能??傮w來說JavaScript 是屬于網(wǎng)絡(luò)的腳本語言,被數(shù)百萬計的網(wǎng)頁用來改進(jìn)設(shè)計、驗(yàn)證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應(yīng)用,是因特網(wǎng)上最流行的腳本語言,而且簡單易用。JavaScript的組成:1) 核心(ECMAScript)2) 文檔對象模型(DOM) 3) 瀏覽器對象模型(BOM)JavaScript的知識結(jié)構(gòu):1) 語法基礎(chǔ)a) 數(shù)據(jù)類型,強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換b) 變量,函數(shù)c) 運(yùn)算符d) 條件,循環(huán)語句2) 核心對象數(shù)組對象,字符串對象,數(shù)學(xué)對象,日期對象,自定義對象。3) 瀏覽

14、器對象Window、 document、 location、 history 、form對象 、表單元素對象 2。JavaScript嵌入網(wǎng)頁的方法:1) 使用 標(biāo)簽將語句嵌入文檔。2) 將外部JavaScript 源文件鏈接到 html文檔中。可使多個網(wǎng)頁共享一個腳本文件內(nèi)的代碼。一般在其中定義一系列在多個網(wǎng)頁中都可能要用到的函數(shù)3) 作為網(wǎng)頁元素的事件處理程序,當(dāng)事件觸發(fā)時自動運(yùn)行。1.4 編程工具簡介1.4.1MyEclipse簡介MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱Myclipse)是對Eclipse IDE的擴(kuò)展,利用

15、它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:1. JavaEE模型2. WEB開發(fā)工具3. EJB開發(fā)工具4. 應(yīng)用程序服務(wù)器的連接器5. JavaEE項(xiàng)目部署服務(wù)6. 數(shù)據(jù)庫服務(wù)7. MyEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。M

16、yEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。1.4.2SQL Server 2005數(shù)據(jù)庫簡介SQL Server Express 是一個免費(fèi)、易用且便于管理的數(shù)據(jù)庫。SQL Server Express 與 Microsoft Visual Studio 2005 集成在一起,可以輕松開發(fā)功能豐富、存儲安全、可快速部署的數(shù)據(jù)驅(qū)動應(yīng)用程序。SQL Server Express 是免費(fèi)的,可以再分發(fā)(受制于協(xié)議),還可以起到客戶端數(shù)據(jù)庫以及基本服務(wù)器數(shù)據(jù)庫的作用。SQL Server Express 是低端 ISV、低端服務(wù)器用戶、創(chuàng)建

17、 Web 應(yīng)用程序的非專業(yè)開發(fā)人員以及創(chuàng)建客戶端應(yīng)用程序的編程愛好者的理想選擇。SQL Server 2005 通過在可伸縮性、數(shù)據(jù)集成、開發(fā)工具和強(qiáng)大的分析等方面的革新更好的確立了微軟在BI領(lǐng)域的領(lǐng)導(dǎo)地位。SQL Server 2005 能夠把關(guān)鍵的信息及時的傳遞到組織內(nèi)員工的手中,從而實(shí)現(xiàn)了可伸縮的商業(yè)智能。從CEO 到信息工作者,員工可以快速的、容易的處理數(shù)據(jù),以更快更好的做出決策。SQL Server 2005全面的集成、分析和報表功能使企業(yè)能夠提高他們已有應(yīng)用的價值,即便這些應(yīng)用是在不同的平臺上 9。商業(yè)智能增強(qiáng)體現(xiàn)在以下幾個方面:1) 端到端的集成BI平臺2) 集成服務(wù)3) 分析服

18、務(wù)4) 報表服務(wù)5) Microsoft Office System的集成1.4.3Tomcat WEB服務(wù)器簡介Tomcat是一款優(yōu)秀的支持Web容器的服務(wù)器,它是Apache基金會的Jakarta項(xiàng)目中的一個核心的項(xiàng)目。有Apache,SUN和其他一些公司及個人共同開發(fā)而成。由于有了SUN公司的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat服務(wù)器不但支持Servlet和JSP的運(yùn)行,而且還具備了作為商業(yè)Web容器的基本特征,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。Tomcat已經(jīng)成為目前開發(fā)基于Java的Web應(yīng)用程序和最佳服務(wù)器

19、選擇之一。雖然Tomcat在執(zhí)行Web應(yīng)用程序方面表現(xiàn)出色,但是由于其不包含EJB容器,所以無法支持EJB組件的部署和運(yùn)行,但Tomcat可以與其他一些軟件集成起來實(shí)現(xiàn)更多的功能,如與JBoss服務(wù)器集成起來可以支持EJB的開發(fā)。Tomcat不僅僅是一個J2EE的Web容器,它也是具有傳統(tǒng)的Web服務(wù)器的功能:處理HTML頁面。但是與Apache相比,它的處理靜態(tài)HTML的能力相對較差。我們可以將Tomcat和Apache集成到一起,讓Apache處理靜態(tài)HTML,而Tomcat處理JSP和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。Tomcat中的應(yīng)用程序

20、與傳統(tǒng)的桌面應(yīng)用程序不同,它是一個WAR(Web Archive)文件。WAR是SUN提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個壓縮包。Tomcat的目錄結(jié)構(gòu)如下:bin文件夾:該文件夾中存放啟動和關(guān)閉Tomcat服務(wù)器的文件。common文件夾:該文件夾中存放Tomcat服務(wù)器及所有Web應(yīng)用程序都可以訪問的JAR文件和類文件。conf文件夾:該文件夾中存放Tomcat服務(wù)器的各種配置文件。logs文件夾:該文件夾中存放Tomcat服務(wù)器的日志文件。Server文件夾:該文件夾中存放Tomcat服務(wù)器的各種后臺管理文件。Shared文件夾:該文件夾中所有Web應(yīng)用程序都可

21、以該問的JAR文件和類文件,但這些文件不能被Tomcat服務(wù)器所訪問。Src文件夾:該文件夾中存放Tomcat服務(wù)器相關(guān)的源代碼。Temp文件夾:該文件夾中存放Tomcat服務(wù)器的各種臨時文件。Webapps文件夾:該文件夾中存放web應(yīng)用文件。Work文件夾:該文件夾存放JSP頁面轉(zhuǎn)換為Servlet的文件 14。- 60 -邵陽學(xué)院畢業(yè)設(shè)計(論文)第2章 系統(tǒng)分析2.1系統(tǒng)概述博客,在網(wǎng)絡(luò)上發(fā)表文章、展現(xiàn)個人的個性,而博客系統(tǒng),是為這類人群提供一個相互交流、學(xué)習(xí)的平臺。博客的兩大基本功能是共享與交流。共享,是將文章、圖片、心得等一些很私人的東西,拿出來和多數(shù)人一起分享;交流,是有這同樣興趣

22、、愛好、語言的一類人之間的聯(lián)系。本系統(tǒng)主要分為:個人博客空間、個人博客管理和博客后臺管理三個部分。2.2系統(tǒng)可行性分析2.2.1經(jīng)濟(jì)價值可行性博客從2001年在國內(nèi)落地以來,到2005年“中國博客元年”到來,“全民博客”加上“名人博客”的火熱創(chuàng)造了驚人的點(diǎn)擊率,博客的發(fā)展具備了投放廣告的可能。博客廣告的出現(xiàn)意味著個人寫博客有了商業(yè)價值,博客由此進(jìn)入了商業(yè)化的探索階段。本文著重于“個人博客廣告”的探討,通過分析“個人博客廣告”與傳統(tǒng)互聯(lián)網(wǎng)廣告相比的優(yōu)勢,針對“個人博客廣告”面臨的問題提出相應(yīng)的對策和建議從而得出結(jié)論:個人博客廣告的商業(yè)化發(fā)展具有可行性。既然個人博客已經(jīng)具備這么大的商業(yè)價值,作為一

23、個整體的博客系統(tǒng)的商業(yè)經(jīng)濟(jì)價值是不可限量的。2.2.2技術(shù)可行性相信這一點(diǎn)不用強(qiáng)加說明了,現(xiàn)在各式各樣的博客網(wǎng)站如雨后春筍般的出現(xiàn),其中的不乏像網(wǎng)易,新浪這樣的互聯(lián)網(wǎng)巨頭。其實(shí)維護(hù)一個博客網(wǎng)站對于硬件和軟件方面的要求都不是很高,當(dāng)然隨著注冊人數(shù)的增加要適當(dāng)?shù)纳壏?wù)器。2.3系統(tǒng)需求分析通過對一些典型博客網(wǎng)站的考察、分析以及實(shí)際的市場調(diào)查,要求本系統(tǒng)具有以下功能:(1)系統(tǒng)個人博客前臺展示需求分析a) 用戶的注冊,登錄。b) 登錄的用戶可以訪問自己博客或者訪問他人博客,未登錄用戶可以訪問任意博客,當(dāng)是不計入瀏覽數(shù)。c) 進(jìn)入博客的用戶可以瀏覽文章,發(fā)表留言,瀏覽相冊,查看個人資料,訪問好友。如

24、果訪問的是他人博客還可以添加好友,發(fā)送小紙條。(2)系統(tǒng)個人博客后臺管理需求分析a) 個人管理、文章管理。其中包括了查找、修改資料;添加、刪除文章。b) 相冊管理、好友管理。其中包括了添加、刪除、管理相冊;查看、刪除好友。c) 留言管理、小紙條管理。其中包括了查看、刪除留言;查看、刪除紙條。(3)系統(tǒng)管理員后臺管理需求分析a) 用戶管理。其中包括用戶博客是否被推薦,用戶是否凍結(jié),用戶是否解凍,用戶刪除。b) 文章管理。其中包括文章列表查詢,文章詳細(xì)查詢,文章是否推薦,按用戶名查詢文章。c) 相冊管理。其中包括相冊的查詢、刪除。d) 修改管理員密碼。邵陽學(xué)院畢業(yè)設(shè)計(論文)第3章 系統(tǒng)概要設(shè)計3

25、.1 項(xiàng)目規(guī)劃博客系統(tǒng)是一個典型的JSP數(shù)據(jù)庫開發(fā)應(yīng)用程序,由個人博客前臺展示、個人博客管理以及博客后臺管理三部分組成。(1) 個人博客前臺展示該部分主要包括用戶的注冊、登錄、瀏覽博客各種內(nèi)容、發(fā)表留言信息、添加好友、向好友發(fā)送信息等。(2) 個人博客管理該部分主要對個人博客的一些基礎(chǔ)數(shù)據(jù)進(jìn)行有效管理,包括個人資料修改、博客內(nèi)容管理、好友的管理、留言的管理等。(3) 博客后臺管理。該部分主要是對所以注冊博客的統(tǒng)一數(shù)據(jù)進(jìn)行有效管理,包括用戶的管理、文章的管理、相冊的管理等。3.2系統(tǒng)總體構(gòu)架這個系統(tǒng)總體劃分為兩個層次:(1) Struts層:這里采用Struts2框架作為系統(tǒng)開發(fā)的控制器組件,在

26、頁面請求處理流程中與struts1完全相同。它仍然是以前控制框架為主體的框架,用戶的請求會通過控制器選擇不同的控制器組件(即Action)來執(zhí)行不同的操作。在控制器組件中request、response和session這些servlet類的對象仍然可以使用 5。(2) Hibernate層:這里采用hibernate3作為系統(tǒng)的開發(fā)的模型組件,在數(shù)據(jù)儲存器和控制器之間加入一個持久層,該層簡化CRUD數(shù)據(jù)的工作,分離應(yīng)用程序和數(shù)據(jù)庫之間的耦合,實(shí)現(xiàn)在無需修改代碼的情況下輕松更換應(yīng)用程序數(shù)據(jù)庫。Hibernate3幾乎支持所有的主流數(shù)據(jù)庫,從開源數(shù)據(jù)庫HSQLDB、MYSQL、PostareSQL

27、到強(qiáng)大企業(yè)級數(shù)據(jù)庫oracle、IBM DB2等。本系統(tǒng)采用的數(shù)據(jù)庫是時下比較適合中小型企業(yè)的數(shù)據(jù)庫SqlServer 2005。系統(tǒng)層次結(jié)構(gòu)如圖3.1所示:FilterDispacher攔截器瀏覽器Request請求控制器組件struts層:視圖插件response響應(yīng)持久層hibernate層:數(shù)據(jù)庫圖3.1 系統(tǒng)層次結(jié)構(gòu)圖3.3 系統(tǒng)功能結(jié)構(gòu)設(shè)計個人博客空間是為他人提供瀏覽、查看博客內(nèi)容的平臺。在這個空間中,可以瀏覽文章、發(fā)表留言、添加好友和瀏覽相冊。個人博客空間的功能結(jié)構(gòu)圖如圖3.2所示。個人網(wǎng)站未登錄登錄用戶他人博客自己博客任意博客用戶注冊發(fā)送紙條添加好友訪問好友個人資料瀏覽相冊發(fā)表

28、留言瀏覽文章圖3.2 個人博客空間的功能結(jié)構(gòu)圖個人博客管理,主要功能有個人管理、文章管理、相冊管理、好友管理、留言管理和小紙條管理。個人博客管理功能結(jié)構(gòu)圖如圖3.3所示。圖3.3 個人博客管理功能結(jié)構(gòu)圖博客后臺管理系統(tǒng),主要是對博客用戶和管理員的管理。博客后臺管理包括用戶管理、用戶文章管理、用戶相冊管理和修改管理員密碼。博客后臺管理的功能結(jié)構(gòu)圖如圖3.4所示。圖3.4 博客后臺管理功能結(jié)構(gòu)圖3.4 面向?qū)ο笤O(shè)計系統(tǒng)開發(fā)是基于JAVA的面向?qū)ο蟮恼Z言進(jìn)行開發(fā)。根據(jù)前面需求分析的模型,可建立以下類與接口,以實(shí)現(xiàn)系統(tǒng)各模塊的功能。3.4.1 管理員模塊操作類該模塊所涉及的類提供了一系列的關(guān)于后天管理

29、員修改密碼、驗(yàn)證密碼、管理員退出的方法。其類圖如圖3.5所示。圖3.5 后臺管理員類圖3.4.2 文章模塊操作類該模塊中的類提供了一系列的關(guān)于管理員登陸后對文章的詳細(xì)查詢,管理員登陸后對文章的列表查詢,前臺文章的詳細(xì)查詢,前臺文章回復(fù)內(nèi)容的詳細(xì)查詢,文章的修改操作,文章的刪除操作,文章表單的校驗(yàn),文章的添加的方法。其類圖如圖3.6所示。圖3.6 后臺管理員類圖3.4.3 留言模塊操作類該模塊中的類提供了一系列的關(guān)于留言刪除、留言查詢、前臺添加留言、前臺查看留言的方法。其類圖如圖3.7所示。圖3.7 留言模塊類圖3.4.4 用戶信息操作類該模塊中的類提供了一系列的關(guān)于刪除朋友信息、后臺查詢用戶、

30、添加好友、刪除相冊類別、修改相冊類別名稱、查詢并添加相片類別信息、轉(zhuǎn)向添加文章的頁面、修改文章類別名稱、刪除文章類別操作、查詢并添加類別信息、修改用戶密碼的校驗(yàn)、修改用戶的密碼的操作、修改個人信息校驗(yàn)、修改個人信息操作、根據(jù)用戶id查詢用戶信息、根據(jù)對象進(jìn)入相應(yīng)博客、用戶登錄校驗(yàn)、用戶推薦不推薦操作、用戶凍結(jié)或解凍操作、用戶查詢功能、用戶注冊校驗(yàn)、用戶注冊、后臺用戶信息刪除操作的方法。其類圖如圖3.8所示。圖3.8 用戶信息操作模塊類圖3.4.5 前臺展示操作類該模塊中的類提供了一系列顯示推薦博客、熱門博客、推薦博客、熱門文章的方法。其類圖如圖3.9所示。圖3.9 前臺展示操作類圖邵陽學(xué)院畢業(yè)

31、設(shè)計(論文)第4章 數(shù)據(jù)庫設(shè)計4.1 數(shù)據(jù)庫ER圖本系統(tǒng)的ER圖如圖4.1所示:發(fā)表管理內(nèi)容題目地址名稱照片文章類別訪問量QQ性別職業(yè)電話主頁名稱用戶Email真實(shí)姓名密碼用戶名1類別管理員管理11NN1圖4.1 數(shù)據(jù)庫ER圖4.2 數(shù)據(jù)庫物理設(shè)計本系統(tǒng)的物理設(shè)計如圖4.2所示:圖4.2 數(shù)據(jù)庫物理設(shè)計關(guān)系圖4.3 數(shù)據(jù)庫圖表設(shè)計表4.1 管理員信息表(tb_admin)字段名稱數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idint否NULL系統(tǒng)編號accountvarchar(50)否NULL管理員賬號passwordvarchar(50)否NULL管理員密碼表4.2 用戶信息表(tb_userInf

32、o)字段名稱數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idint(4)否NULL系統(tǒng)編號accountvarchar(50)否是NULL用戶名passwordvarchar(40)否NULL密碼Realnamevarchar(10)否NULL真實(shí)姓名emailvarchar(50)否NULLEmail地址Sexvarchar(50)否NULL性別Telvarchar(50)否NULL聯(lián)系電話Professionvarchar(50)否NULL職業(yè)名稱Addressvarchar(50)否NULL聯(lián)系地址Homepagevarchar(50)是空字符串主頁名稱qqvarchar(50)否NULLQQ號碼

33、Headgifvarchar(50)是空字符串頭像地址Freezevarchar(10)是空字符串是否凍結(jié)Art_typevarchar(100)是空字符串文章類別Pic_typevarchar(100)是空字符串相片類別Friend_typevarchar(50)是空字符串好友名稱Commendvarchar(50)是空字符串是否推薦Vistorint(4)是0訪問次數(shù)Selfvarchar(50)是空字符串自我評價表4.3 文章回復(fù)信息表(tb_reArticle)字段名稱數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idint(4)否是NULL系統(tǒng)編號Re_idint(4)否NULL回復(fù)人IDacc

34、ountvarchar(50)否NULL回復(fù)人文章Contentvarchar(3000)否NULL回復(fù)內(nèi)容Re_timevarchar(50)否NULL回復(fù)時間表4.4 留言信息表(tb_info)字段名稱數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idint(4)否NULL系統(tǒng)編號Info_accountvarchar(50)否NULL發(fā)送信息人Info_fromaccountvarchar(50)否NULL接受信息人Info_contentvarchar(300)否NULL發(fā)送內(nèi)容Info_signint(4)否NULL留言標(biāo)識表4.5 相冊信息表(tb_photo)字段名稱數(shù)據(jù)類型是否為空是否主

35、鍵默認(rèn)值描述idint(4)否是NULL系統(tǒng)編號photoTypevarchar(50)否NULL相片類別photoNamevarchar(50)否NULL相片名稱photoAddressvarchar(300)否NULL相片地址photoVisitint(4)否NULL訪問量authorvarchar(50)否NULL發(fā)布者表4.6 文章表(tb_article)字段名稱數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idint(4)否是NULL系統(tǒng)編號typeNamevarchar(50)否類型名稱Titlevarchar(50)否文章題目Contentvarchar(300)否文章內(nèi)容Authorva

36、rchar(50)否文章作者sendTimevarchar(50)否發(fā)表時間Visitint否訪問量commendvarchar(10)否是否推薦第5章 詳細(xì)設(shè)計5.1 系統(tǒng)流程設(shè)計個人博客前臺管理系統(tǒng)流程圖如圖5.1所示。個人博客前臺校驗(yàn)用戶注冊是否成功校驗(yàn)用戶登陸是否成功NNYY用戶已經(jīng)登陸訪問他人博客訪問自己博客文章瀏覽熱門文章瀏覽留言查詢個人資料查詢添加好友相冊瀏覽類別查詢文章好友查詢訪問好友博客發(fā)送紙條進(jìn)入后臺管理紙條管理好友管理相冊管理留言管理文章管理圖5.1 個人博客前臺管理系統(tǒng)流程圖個人博客管理員后臺管理系統(tǒng)流程圖如圖5.2所示。個人博客管理員后臺管理文章管理圖片管理修改管理員

37、密碼退出后臺用戶管理校驗(yàn)管理員是否登錄成功管理員登錄后臺頁面圖5.2 個人博客管理員后臺管理系統(tǒng)流程圖5.2 公共模塊設(shè)計5.2.1 編寫Hibernate數(shù)據(jù)庫配置文件Hibernate配置文件主要用于配置數(shù)據(jù)庫連接和Hibernate運(yùn)行時所需的各種屬性。它同時支持XML格式的配置文件和傳統(tǒng)的properties文件配置方式,本系統(tǒng)采用了XML型配置文件。XML配置文件提供了更容易的結(jié)構(gòu)和更強(qiáng)的配置能力,可以直接對映射文件加以配置并由Hibernate自動加載。配置文件名默認(rèn)為“hibernate.cfg.xml”,本系統(tǒng)的配置文件發(fā)布在src文件夾中,配置關(guān)鍵代碼如下:!DOCTYPE

38、hibernate-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD 3.0/EN sa jdbc:sqlserver:/localhost:1433;DatabaseName=db_wyBlog org.hibernate.dialect.SQLServerDialect com.microsoft.sqlserver.jdbc.SQLServerDriver 5.2.2 數(shù)據(jù)庫持久化類的編寫本系統(tǒng)中使用的數(shù)據(jù)庫持久化類的名稱為ObjectDao。本系統(tǒng)使用了Hibernate和struts2框架的整合技術(shù),在編寫數(shù)據(jù)持

39、久化類的代碼中,分別定義了SessionFactory類,Session類和Transaction類的屬性,然后通過靜態(tài)方法取得對數(shù)據(jù)庫的連接操作,最后根據(jù)連接對象分別實(shí)現(xiàn)對數(shù)據(jù)表的添加、修改、刪除和查詢操作。1、獲取數(shù)據(jù)庫的連接通過靜態(tài)方法創(chuàng)建數(shù)據(jù)庫連接的代碼如下:public class ObjectDao private static SessionFactory sessionFactory = null;private Session session = null;Transaction tx = null;static try Configuration config = new

40、Configuration().configure();sessionFactory = config.buildSessionFactory(); catch (Exception e) System.out.println(e.getMessage();對上述方法代碼的說明如下:SessionFactory接口:初始化Hibernate充當(dāng)數(shù)據(jù)存儲源的代理,創(chuàng)建Session類的對象。一個SessionFactory類的對象對應(yīng)一個數(shù)據(jù)存儲源,該數(shù)據(jù)源從SessionFactory對象獲取。SessionFactory接口需要一個很大的緩存,用來存放預(yù)定義的SQL語句以及映射元數(shù)據(jù)。用戶還

41、可以為SessionFactory接口配置一個緩存插件,這個緩存插件通常被稱為Hibernate的第二級緩存,該緩存用來存放被操作單元讀過的數(shù)據(jù),將來其他操作單元可能會重用這些數(shù)據(jù),因此這個緩存中的數(shù)據(jù)能夠被所有單元共享。一個工作單元對應(yīng)一個數(shù)據(jù)庫事務(wù)。Session接口:Session接口是Hibernate應(yīng)用使用最廣泛的接口。Session通常也稱為持久化管理器,它提供了和持久化相關(guān)的操作,如添加、修改、刪除、加載及查詢對象。Transaction接口:Transaction接口是Hibernate的數(shù)據(jù)庫事務(wù)接口,它對底層的事務(wù)接口做了封裝,底層事務(wù)接口包括JDBC API、JTA、C

42、ORBA API。Hibernate應(yīng)用可通過一致的Transaction接口來聲明事務(wù)邊界,這有助于應(yīng)用在不同的環(huán)境或容器中移植。Configuration接口:Configuration接口用于配置并且跟蹤啟動Hibernate。Hibernate應(yīng)用通過Configuration實(shí)例來指定對象關(guān)系映射文件的位置或者動態(tài)配置Hibernate的屬性,然后創(chuàng)建SessionFactory實(shí)例。2、刪除數(shù)據(jù)刪除數(shù)據(jù)操作的方法名稱為deleteT。在該方法中,以T對象類型為參數(shù),執(zhí)行Session類中的delete方法,實(shí)現(xiàn)刪除數(shù)據(jù)的操作。具體實(shí)現(xiàn)代碼如下:public boolean dele

43、teT(T t) Session session = sessionFactory.openSession();try tx = session.beginTransaction();session.delete(t);mit(); catch (Exception e) return false; finally session.close();return true;3、保存數(shù)據(jù)添加數(shù)據(jù)操作的方法名稱為saveT。在該方法中,以T對象類型為參數(shù),執(zhí)行Session類中的save(),實(shí)現(xiàn)添加數(shù)據(jù)的操作。具體實(shí)現(xiàn)代碼如下:public boolean saveT(T t) Session s

44、ession = sessionFactory.openSession();try tx = session.beginTransaction();session.save(t);mit(); catch (Exception e) System.out.println(e);return false; finally session.close();return true; 在上述代碼中,saveT()并不立即執(zhí)行SQL中insert語句。只有當(dāng)Session清理緩存時才會執(zhí)行SQL中insert語句。當(dāng)Session清理緩存時,才會執(zhí)行SQL中insert語句。如果在save()之后,又修

45、改持久化對象的屬性,這會使得Session在清理緩存時,額外執(zhí)行SQL中update語句。4、修改數(shù)據(jù)修改數(shù)據(jù)操作的方法名稱為updateT。在該方法中,以T對象類型為參數(shù),執(zhí)行Session類中的update方法,實(shí)現(xiàn)修改數(shù)據(jù)的操作。具體實(shí)現(xiàn)代碼如下:public boolean updateT(T t) Session session = sessionFactory.openSession();try tx = session.beginTransaction();session.update(t);mit(); catch (Exception e) System.out.printl

46、n(e);return false; finally session.close();return true;5、查詢多條數(shù)據(jù)查詢多組數(shù)據(jù)的方法名稱為queryList。該方法以參數(shù)String類型對象hql為條件,調(diào)用Session類中的createQuery()來實(shí)現(xiàn)查詢功能。具體實(shí)現(xiàn)代碼如下:public List queryList(String hql) session = sessionFactory.openSession();tx = session.beginTransaction();List list = null;try Query query = session.cr

47、eateQuery(hql);list = query.list(); catch (Exception e) System.out.println(e);mit();session.close();return list;6、查詢單條數(shù)據(jù)查詢單條數(shù)據(jù)的方法名稱為queryFrom。該方法以參數(shù)String類型對象hql為條件,調(diào)用Session類中的createQuery()來實(shí)現(xiàn)查詢功能。并將查詢結(jié)果返回給Query類的query對象,最后通過該對象調(diào)用uniqueResult方法,實(shí)現(xiàn)查詢單條數(shù)據(jù)的方法。具體實(shí)現(xiàn)代碼如下:public T queryFrom(String hql) T

48、t = null;session = sessionFactory.openSession();tx = session.beginTransaction();try Query query = session.createQuery(hql);t = (T) query.uniqueResult(); catch (Exception e) mit();session.close();return t;7、在查詢結(jié)果中返回指定數(shù)據(jù)在查詢結(jié)果中返回指定數(shù)據(jù)的方法名稱為queryList。該方法存在三個參數(shù):hql參數(shù)對象表示查詢的HQL語句;showNumber參數(shù)變量表示查詢的條數(shù);begi

49、nNumber參數(shù)變量表示查詢的起始位置數(shù)。具體實(shí)現(xiàn)代碼如下:public List queryList(String hql, int showNumber, int beginNumber) session = sessionFactory.openSession();tx = session.beginTransaction();List list = null;try Query query = session.createQuery(hql);query.setMaxResults(showNumber);query.setFirstResult(beginNumber);list

50、= query.list(); catch (Exception e) mit();session.close();return list;5.3界面設(shè)計5.3.1 主界面模塊設(shè)計訪問博客程序時,首先進(jìn)入博客主界面。在該頁面包括的功能是導(dǎo)航區(qū)、推薦博客、推薦文章、熱門博客、熱門文章、主頁信息及其版權(quán)信息區(qū)。在本系統(tǒng)中,首頁操作的struts2實(shí)現(xiàn)類名稱為BlogMainAction。該類繼承了ActionSupport類并實(shí)現(xiàn)了類ServletRequestAware接口,通過該接口的setServletRequest方法獲取Web應(yīng)用中的request對象。網(wǎng)站首頁面運(yùn)行結(jié)果如圖5.3所示。

51、圖5.3 首頁運(yùn)行圖BlogMainAction類的具體實(shí)現(xiàn)代碼如下:public class BlogMainAction extends ActionSupport implementsServletRequestAware protected HttpServletRequest request;private ObjectDao userDao = new ObjectDao();private ObjectDao articleDao = new ObjectDao();private String hql_user_commend = null;private String hql

52、_user_vistor = null;private String hql_article_commend = null;private String hql_article_vistor = null;public BlogMainAction() hql_user_commend = from UserInfo where commend=是 and freeze=解凍;hql_user_vistor = from UserInfo where freeze=解凍 order by vistor desc;hql_article_commend = from ArticleInfo wh

53、ere commend=是 and author in (select account from UserInfo where freeze=解凍);hql_article_vistor = from ArticleInfo where author in (select account from UserInfo where freeze=解凍) order by visit desc; public String BlogMain() / 以下上判斷博客推薦List userCommned = userDao.queryList(hql_user_commend);if (userComm

54、ned.size() 5) userCommned = userCommned.subList(0, 5); request.setAttribute(userCommned, userCommned);/ 以下是熱門博客List userVistor = userDao.queryList(hql_user_vistor);if (userVistor.size() 5) userVistor = userVistor.subList(0, 5); request.setAttribute(userVistor, userVistor);/ 以下是推薦文章List articleCommen

55、d = articleDao.queryListObject(hql_article_commend);if (articleCommend.size() 5) articleCommend = articleCommend.subList(0, 5);request.setAttribute(articleCommend, articleCommend);/ 以下是熱門文章List articleVistor = articleDao.queryListObject(hql_article_vistor);if (articleVistor.size() 5) articleVistor = articleVistor.subList(0, 5);request.setA

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!