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

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

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

15 積分

下載資源

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

資源描述:

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

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

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

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

4、說,他不需要一個網(wǎng)站只需要一個網(wǎng)頁來展示他的信息,保存他的一些資料,博客網(wǎng)站就是一個由眾多用戶網(wǎng)頁頁面形成的網(wǎng)站。它的誕生形成了一個互聯(lián)網(wǎng)個人信息交流中心,它可以讓每個人零成本、零維護地創(chuàng)建自己風格的網(wǎng)絡(luò)媒體,每個人都可以隨時把自己的思想火花和靈感更新到博客站點上。 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ù)標準。JSP技術(shù)是以Java語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器

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

6、1 API的擴展而應(yīng)用。Servlets和JSPs最早都是由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ā)布。 綜上所述其實JSP就是服務(wù)器端的一種基于Java語言的網(wǎng)頁技術(shù),所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān)。在傳統(tǒng)的網(wǎng)頁中加入Java代碼和JSP標簽之

7、后放在服務(wù)器端運行,再將運行的結(jié)果向用戶發(fā)布,用戶通過瀏覽器就能夠看到精彩紛呈的網(wǎng)頁了。也可以簡單的理解為:HTML+Java程序片段+JSP標記 = 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)頁的運行原理 [13]。 通過JSP的運行原理,我們可以得到如下的JSP執(zhí)行過程: 圖1.1 JSP執(zhí)行原理圖 JSP技術(shù)的優(yōu)勢: (1)一次編寫,到處運行。在這一點上Jav

8、a比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。 (2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的。 (3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務(wù)器進行集群和負載均衡,到多臺Application進行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。 (4)多樣化和功能強大的開發(fā)工具支持。這一點與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺

9、之下 [6]。 JSP轉(zhuǎn)譯成Servlet有以下幾個方法: (1) jspInit()—在JSP頁面初始化時被調(diào)用??梢愿采w該方法,以提供任何的初始化工作; (2) jspDestroy()—在JSP頁面被銷毀時調(diào)用??梢愿采w該方法,以提供任何的JSP清楚工作; (3) jspService()—由容器自動定義,不應(yīng)當提供該方法的實現(xiàn) 。 JSP的頁面內(nèi)容包括: (1) 靜態(tài)內(nèi)容—HTML靜態(tài)文本; (2) 指令—<%@開始,以%>; (3) 表達式—<%@=Java表達式%>; (4) Scriptlet—<%Java代碼%>; (5) 聲明—<%!函數(shù)或方法%>; (

10、6) 動作—以“ ” ; (7) 注釋—,<%-- 這也是注釋,但客戶端不能查看到 --%> [16]。 1.3.2 腳本語言的簡介 (1)HTML語言 超文本置標語言(英文:HyperText Markup Language,簡稱為HTML)是為“網(wǎng)頁創(chuàng)建和其它可在網(wǎng)頁瀏覽器中看到的信息”設(shè)計的一種置標語言。HTML被用來結(jié)構(gòu)化信息——例如標題、段落和列表等等,也可用來在一定程度上描述文檔的外觀和語義。由蒂姆伯納斯-李給出原始定義,由IETF用簡化的SGML(標準通用置標語言)語法進

11、行進一步發(fā)展的HTML,后來成為國際標準,由萬維網(wǎng)聯(lián)盟(W3C)維護。 包含HTML內(nèi)容的文件最常用的擴展名是.html,但是像DOS這樣的舊操作系統(tǒng)限制擴展名為最多三個字符,所以.htm擴展名也被使用。雖然現(xiàn)在使用的比較少一些了,但是.htm擴展名仍舊普遍被支持。編者可以用任何文本編輯器或所見即所得的HTML編輯器來編輯HTML文件。 早期的HTML語法被定義成較松散的規(guī)則,以有助于不熟悉網(wǎng)絡(luò)出版的人采用。網(wǎng)頁瀏覽器接受了這個現(xiàn)實,并且可以顯示語法不嚴格的網(wǎng)頁。隨著時間的流逝,官方標準漸漸趨于嚴格的語法,但是瀏覽器繼續(xù)顯示一些遠稱不上合乎標準的HTML。使用XML的嚴格規(guī)則的XHTML(

12、可擴展超文本置標語言)是W3C計劃中的HTML的接替者。雖然很多人認為它已經(jīng)成為當前的HTML標準,但是它實際上是一個獨立的、和HTML平行發(fā)展的標準。W3C目前的建議是使用XHTML 1.1、XHTML 1.0或者HTML 4.01進行網(wǎng)絡(luò)出版。 結(jié)構(gòu)性標記并未指示瀏覽器的顯示方式,但是大多數(shù)瀏覽器標準化了這些元素的顯示,例如默認情況下上述的標題會被顯示為較大的粗體文字。參見層疊樣式表(CSS)。比較常用的結(jié)構(gòu)性標記有: html元素 標記HTML內(nèi)容的開始和結(jié)束。 head元素 標記HTML文件頭,包含不在正文中顯示的關(guān)鍵字、標題、腳本等等。 title元素 標記HTML文件

13、的標題。 body元素 標記HTML文件正文的開始和結(jié)束。 (2)Javascript語言 Javascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的面向?qū)ο蟮膭討B(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當時服務(wù)端需要對數(shù)據(jù)進行驗證,由于網(wǎng)絡(luò)速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。于是Netscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗證的基本功能。 總體來說JavaScript 是屬于網(wǎng)絡(luò)的腳本語言,被數(shù)百萬計的網(wǎng)頁用

14、來改進設(shè)計、驗證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應(yīng)用,是因特網(wǎng)上最流行的腳本語言,而且簡單易用。 JavaScript的組成: 1) 核心(ECMAScript) 2) 文檔對象模型(DOM) 3) 瀏覽器對象模型(BOM) JavaScript的知識結(jié)構(gòu): 1) 語法基礎(chǔ) a) 數(shù)據(jù)類型,強制數(shù)據(jù)類型轉(zhuǎn)換 b) 變量,函數(shù) c) 運算符 d) 條件,循環(huán)語句 2) 核心對象 數(shù)組對象,字符串對象,數(shù)學對象,日期對象,自定義對象。 3) 瀏覽器對象 Window、 document、 location、 history 、form對象 、表單元素對

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

16、Eclipse IDE的擴展,利用它我們可以在數(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項目部署服務(wù) 6. 數(shù)據(jù)庫服務(wù) 7. MyEclipse整合幫助 對于以上每一種功能上的類別

17、,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。 1.4.2 SQL Server 2005數(shù)據(jù)庫簡介 SQL Server Express 是一個免費、易用且便于管理的數(shù)據(jù)庫。SQL Server Express 與 Microsoft Visual Studio 2005 集成在一起,可以輕松開發(fā)功能豐富、存儲安全、可快速部署的數(shù)據(jù)驅(qū)動應(yīng)用程序。SQL Server Express 是免費的,可以再分發(fā)(受制于協(xié)議),還可以起到客戶端數(shù)據(jù)庫以及基本服務(wù)器數(shù)據(jù)庫

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

19、9]。 商業(yè)智能增強體現(xiàn)在以下幾個方面: 1) 端到端的集成BI平臺 2) 集成服務(wù) 3) 分析服務(wù) 4) 報表服務(wù) 5) Microsoft Office System的集成 1.4.3 Tomcat WEB服務(wù)器簡介 Tomcat是一款優(yōu)秀的支持Web容器的服務(wù)器,它是Apache基金會的Jakarta項目中的一個核心的項目。有Apache,SUN和其他一些公司及個人共同開發(fā)而成。由于有了SUN公司的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。 Tomcat服務(wù)器不但支持Servlet和JSP的運行,而且還具備了作為商業(yè)Web容器的基本特征,

20、如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。Tomcat已經(jīng)成為目前開發(fā)基于Java的Web應(yīng)用程序和最佳服務(wù)器選擇之一。 雖然Tomcat在執(zhí)行Web應(yīng)用程序方面表現(xiàn)出色,但是由于其不包含EJB容器,所以無法支持EJB組件的部署和運行,但Tomcat可以與其他一些軟件集成起來實現(xiàn)更多的功能,如與JBoss服務(wù)器集成起來可以支持EJB的開發(fā)。 Tomcat不僅僅是一個J2EE的Web容器,它也是具有傳統(tǒng)的Web服務(wù)器的功能:處理HTML頁面。但是與Apache相比,它的處理靜態(tài)HTML的能力相對較差。我們可以將Tomcat和Apache集成到一起,讓Apache處理靜態(tài)HT

21、ML,而Tomcat處理JSP和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。 Tomcat中的應(yīng)用程序與傳統(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文件夾:該文件夾

22、中存放Tomcat服務(wù)器的日志文件。 Server文件夾:該文件夾中存放Tomcat服務(wù)器的各種后臺管理文件。 Shared文件夾:該文件夾中所有Web應(yīng)用程序都可以該問的JAR文件和類文件,但這些文件不能被Tomcat服務(wù)器所訪問。 Src文件夾:該文件夾中存放Tomcat服務(wù)器相關(guān)的源代碼。 Temp文件夾:該文件夾中存放Tomcat服務(wù)器的各種臨時文件。 Webapps文件夾:該文件夾中存放web應(yīng)用文件。 Work文件夾:該文件夾存放JSP頁面轉(zhuǎn)換為Servlet的文件 [14]。 - 61 - 邵陽學院畢業(yè)設(shè)計(論文) 第2章 系統(tǒng)分析 2.1系統(tǒng)概述 博客

23、,在網(wǎng)絡(luò)上發(fā)表文章、展現(xiàn)個人的個性,而博客系統(tǒng),是為這類人群提供一個相互交流、學習的平臺。博客的兩大基本功能是共享與交流。共享,是將文章、圖片、心得等一些很私人的東西,拿出來和多數(shù)人一起分享;交流,是有這同樣興趣、愛好、語言的一類人之間的聯(lián)系。本系統(tǒng)主要分為:個人博客空間、個人博客管理和博客后臺管理三個部分。 2.2系統(tǒng)可行性分析 2.2.1 經(jīng)濟價值可行性 博客從2001年在國內(nèi)落地以來,到2005年“中國博客元年”到來,“全民博客”加上“名人博客”的火熱創(chuàng)造了驚人的點擊率,博客的發(fā)展具備了投放廣告的可能。博客廣告的出現(xiàn)意味著個人寫博客有了商業(yè)價值,博客由此進入了商業(yè)化的探索階段。本文

24、著重于“個人博客廣告”的探討,通過分析“個人博客廣告”與傳統(tǒng)互聯(lián)網(wǎng)廣告相比的優(yōu)勢,針對“個人博客廣告”面臨的問題提出相應(yīng)的對策和建議從而得出結(jié)論:個人博客廣告的商業(yè)化發(fā)展具有可行性。既然個人博客已經(jīng)具備這么大的商業(yè)價值,作為一個整體的博客系統(tǒng)的商業(yè)經(jīng)濟價值是不可限量的。 2.2.2 技術(shù)可行性 相信這一點不用強加說明了,現(xiàn)在各式各樣的博客網(wǎng)站如雨后春筍般的出現(xiàn),其中的不乏像網(wǎng)易,新浪這樣的互聯(lián)網(wǎng)巨頭。其實維護一個博客網(wǎng)站對于硬件和軟件方面的要求都不是很高,當然隨著注冊人數(shù)的增加要適當?shù)纳壏?wù)器。 2.3系統(tǒng)需求分析 通過對一些典型博客網(wǎng)站的考察、分析以及實際的市場調(diào)查,要求本系統(tǒng)具有

25、以下功能: (1)系統(tǒng)個人博客前臺展示需求分析 a) 用戶的注冊,登錄。 b) 登錄的用戶可以訪問自己博客或者訪問他人博客,未登錄用戶可以訪問任意博客,當是不計入瀏覽數(shù)。 c) 進入博客的用戶可以瀏覽文章,發(fā)表留言,瀏覽相冊,查看個人資料,訪問好友。如果訪問的是他人博客還可以添加好友,發(fā)送小紙條。 (2)系統(tǒng)個人博客后臺管理需求分析 a) 個人管理、文章管理。其中包括了查找、修改資料;添加、刪除文章。 b) 相冊管理、好友管理。其中包括了添加、刪除、管理相冊;查看、刪除好友。 c) 留言管理、小紙條管理。其中包括了查看、刪除留言;查看、刪除紙條。 (3)系統(tǒng)管理員后臺管理需求

26、分析 a) 用戶管理。其中包括用戶博客是否被推薦,用戶是否凍結(jié),用戶是否解凍,用戶刪除。 b) 文章管理。其中包括文章列表查詢,文章詳細查詢,文章是否推薦,按用戶名查詢文章。 c) 相冊管理。其中包括相冊的查詢、刪除。 d) 修改管理員密碼。 邵陽學院畢業(yè)設(shè)計(論文) 第3章 系統(tǒng)概要設(shè)計 3.1 項目規(guī)劃 博客系統(tǒng)是一個典型的JSP數(shù)據(jù)庫開發(fā)應(yīng)用程序,由個人博客前臺展示、個人博客管理以及博客后臺管理三部分組成。 (1) 個人博客前臺展示 該部分主要包括用戶的注冊、登錄、瀏覽博客各種內(nèi)容、發(fā)表留言信息、添加好友、向好友

27、發(fā)送信息等。 (2) 個人博客管理 該部分主要對個人博客的一些基礎(chǔ)數(shù)據(jù)進行有效管理,包括個人資料修改、博客內(nèi)容管理、好友的管理、留言的管理等。 (3) 博客后臺管理。 該部分主要是對所以注冊博客的統(tǒng)一數(shù)據(jù)進行有效管理,包括用戶的管理、文章的管理、相冊的管理等。 3.2系統(tǒng)總體構(gòu)架 這個系統(tǒng)總體劃分為兩個層次: (1) Struts層: 這里采用Struts2框架作為系統(tǒng)開發(fā)的控制器組件,在頁面請求處理流程中與struts1完全相同。它仍然是以前控制框架為主體的框架,用戶的請求會通過控制器選擇不同的控制器組件(即Action)來執(zhí)行不同的操作。在控制器組件中request、res

28、ponse和session這些servlet類的對象仍然可以使用 [5]。 (2) Hibernate層: 這里采用hibernate3作為系統(tǒng)的開發(fā)的模型組件,在數(shù)據(jù)儲存器和控制器之間加入一個持久層,該層簡化CRUD數(shù)據(jù)的工作,分離應(yīng)用程序和數(shù)據(jù)庫之間的耦合,實現(xiàn)在無需修改代碼的情況下輕松更換應(yīng)用程序數(shù)據(jù)庫。Hibernate3幾乎支持所有的主流數(shù)據(jù)庫,從開源數(shù)據(jù)庫HSQLDB、MYSQL、PostareSQL到強大企業(yè)級數(shù)據(jù)庫oracle、IBM DB2等。本系統(tǒng)采用的數(shù)據(jù)庫是時下比較適合中小型企業(yè)的數(shù)據(jù)庫SqlServer 2005。 系統(tǒng)層次結(jié)構(gòu)如圖3.1所示: FilterD

29、ispacher攔截器 瀏覽器 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ā)表留言 瀏覽文章

30、 圖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言進行開發(fā)。 根據(jù)前面需求分析的模型,可建立以下類與接口,以實現(xiàn)系統(tǒng)各模塊的功能。 3.4.1

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

32、 圖3.7 留言模塊類圖 3.4.4 用戶信息操作類 該模塊中的類提供了一系列的關(guān)于刪除朋友信息、后臺查詢用戶、添加好友、刪除相冊類別、修改相冊類別名稱、查詢并添加相片類別信息、轉(zhuǎn)向添加文章的頁面、修改文章類別名稱、刪除文章類別操作、查詢并添加類別信息、修改用戶密碼的校驗、修改用戶的密碼的操作、修改個人信息校驗、修改個人信息操作、根據(jù)用戶id查詢用戶信息、根據(jù)對象進入相應(yīng)博客、用戶登錄校驗、用戶推薦不推薦操作、用戶凍結(jié)或解凍操作、用戶查詢功能、用戶注冊校驗、用戶注冊、后臺用戶信息刪除操作的方法。其類圖如圖3.8所示。 圖3.8 用戶信息操作模塊類圖 3.4.5 前臺展

33、示操作類 該模塊中的類提供了一系列顯示推薦博客、熱門博客、推薦博客、熱門文章的方法。其類圖如圖3.9所示。 圖3.9 前臺展示操作類圖 邵陽學院畢業(yè)設(shè)計(論文) 第4章 數(shù)據(jù)庫設(shè)計 4.1 數(shù)據(jù)庫ER圖 本系統(tǒng)的ER圖如圖4.1所示: 發(fā)表管理 內(nèi)容 題目 地址 名稱 照片 文章 類別 訪問量 QQ 性別 職業(yè) 電話 主頁名稱 用戶 Email 真實姓名 密碼 用戶名 1 類別 管理員 管理 1 1 N N

34、1 圖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ù)類型 是否為空 是否主鍵 默認值 描述 id int 否 NULL 系統(tǒng)編號 account varchar(50) 否 NULL 管理員賬號 password varchar(50) 否 NULL 管理員密碼 表4.2 用戶信息表(tb_userInfo) 字段名稱 數(shù)據(jù)類型

35、 是否為空 是否主鍵 默認值 描述 id int(4) 否 NULL 系統(tǒng)編號 account varchar(50) 否 是 NULL 用戶名 password varchar(40) 否 NULL 密碼 Realname varchar(10) 否 NULL 真實姓名 email varchar(50) 否 NULL Email地址 Sex varchar(50) 否 NULL 性別 Tel varchar(50) 否 NULL 聯(lián)系電話 Profession varchar(50)

36、 否 NULL 職業(yè)名稱 Address varchar(50) 否 NULL 聯(lián)系地址 Homepage varchar(50) 是 空字符串 主頁名稱 qq varchar(50) 否 NULL QQ號碼 Headgif varchar(50) 是 空字符串 頭像地址 Freeze varchar(10) 是 空字符串 是否凍結(jié) Art_type varchar(100) 是 空字符串 文章類別 Pic_type varchar(100) 是 空字符串 相片類別 Friend_typ

37、e varchar(50) 是 空字符串 好友名稱 Commend varchar(50) 是 空字符串 是否推薦 Vistor int(4) 是 0 訪問次數(shù) Self varchar(50) 是 空字符串 自我評價 表4.3 文章回復(fù)信息表(tb_reArticle) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認值 描述 id int(4) 否 是 NULL 系統(tǒng)編號 Re_id int(4) 否 NULL 回復(fù)人ID account varchar(50) 否 NULL 回

38、復(fù)人文章 Content varchar(3000) 否 NULL 回復(fù)內(nèi)容 Re_time varchar(50) 否 NULL 回復(fù)時間 表4.4 留言信息表(tb_info) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認值 描述 id int(4) 否 NULL 系統(tǒng)編號 Info_account varchar(50) 否 NULL 發(fā)送信息人 Info_fromaccount varchar(50) 否 NULL 接受信息人 Info_content varchar(300) 否

39、 NULL 發(fā)送內(nèi)容 Info_sign int(4) 否 NULL 留言標識 表4.5 相冊信息表(tb_photo) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認值 描述 id int(4) 否 是 NULL 系統(tǒng)編號 photoType varchar(50) 否 NULL 相片類別 photoName varchar(50) 否 NULL 相片名稱 photoAddress varchar(300) 否 NULL 相片地址 photoVisit int(4) 否 NULL 訪

40、問量 author varchar(50) 否 NULL 發(fā)布者 表4.6 文章表(tb_article) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認值 描述 id int(4) 否 是 NULL 系統(tǒng)編號 typeName varchar(50) 否 類型名稱 Title varchar(50) 否 文章題目 Content varchar(300) 否 文章內(nèi)容 Author varchar(50) 否 文章作者 sendTime varchar(50) 否 發(fā)表時

41、間 Visit int 否 訪問量 commend varchar(10) 否 是否推薦 第5章 詳細設(shè)計 5.1 系統(tǒng)流程設(shè)計 個人博客前臺管理系統(tǒng)流程圖如圖5.1所示。 個人博客前臺 校驗用戶注冊是否成功 校驗用戶登陸是否成功 N N Y Y 用戶已經(jīng)登陸 訪問他人博客 訪問自己博客 文章瀏覽 熱門文章瀏覽 留言查詢 個人資料查詢 添加好友 相冊瀏覽 類別查詢文章 好友查詢 訪問好友博客 發(fā)送紙條 進入后臺

42、管理 紙條管理 好友管理 相冊管理 留言管理 文章管理 圖5.1 個人博客前臺管理系統(tǒng)流程圖 個人博客管理員后臺管理系統(tǒng)流程圖如圖5.2所示。 個人博客管理員后臺管理 文章管理 圖片管理 修改管理員密碼 退出后臺 用戶管理 校驗管理員是否登錄成功 管理員登錄后臺頁面 圖5.2 個人博客管理員后臺管理系統(tǒng)流程圖 5.2 公共模塊設(shè)計 5.2.1 編寫Hibernate數(shù)據(jù)庫配置文件 Hibernate配置文件主要用于配置數(shù)

43、據(jù)庫連接和Hibernate運行時所需的各種屬性。它同時支持XML格式的配置文件和傳統(tǒng)的properties文件配置方式,本系統(tǒng)采用了XML型配置文件。XML配置文件提供了更容易的結(jié)構(gòu)和更強的配置能力,可以直接對映射文件加以配置并由Hibernate自動加載。 配置文件名默認為“hibernate.cfg.xml”,本系統(tǒng)的配置文件發(fā)布在src文件夾中,配置關(guān)鍵代碼如下:

44、e 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ù)持久化類的代碼中,分別定義了SessionFactory類,Session類和Transaction類的屬性,然后通過靜態(tài)方法取得對數(shù)據(jù)庫的連接操作,最后根據(jù)連接對象分別實現(xiàn)對數(shù)據(jù)表的添加、修改、刪除和查詢操作。 1、獲取數(shù)據(jù)庫的連接 通過靜態(tài)方法創(chuàng)建數(shù)據(jù)庫連接的代碼如下: public class Ob

48、jectDao { private static SessionFactory sessionFactory = null; private Session session = null; Transaction tx = null; static { try { Configuration config = new Configuration().configure(); sessionFactory = config.buildSessionFactory(); } catch (Exception e) { System.out.

49、println(e.getMessage()); } } } 對上述方法代碼的說明如下: SessionFactory接口:初始化Hibernate充當數(shù)據(jù)存儲源的代理,創(chuàng)建Session類的對象。一個SessionFactory類的對象對應(yīng)一個數(shù)據(jù)存儲源,該數(shù)據(jù)源從SessionFactory對象獲取。SessionFactory接口需要一個很大的緩存,用來存放預(yù)定義的SQL語句以及映射元數(shù)據(jù)。用戶還可以為SessionFactory接口配置一個緩存插件,這個緩存插件通常被稱為Hibernate的第二級緩存,該緩存用來存放被操作單元讀過的數(shù)據(jù),將來其他操作單元可能會重用這些數(shù)

50、據(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、CORBA API。Hibernate應(yīng)用可通過一致的Transaction接口來聲明事務(wù)邊界,這有助于應(yīng)用在不同的環(huán)境或容器中移植。 Configuration接口:C

51、onfiguration接口用于配置并且跟蹤啟動Hibernate。Hibernate應(yīng)用通過Configuration實例來指定對象—關(guān)系映射文件的位置或者動態(tài)配置Hibernate的屬性,然后創(chuàng)建SessionFactory實例。 2、刪除數(shù)據(jù) 刪除數(shù)據(jù)操作的方法名稱為deleteT。在該方法中,以T對象類型為參數(shù),執(zhí)行Session類中的delete方法,實現(xiàn)刪除數(shù)據(jù)的操作。具體實現(xiàn)代碼如下: public boolean deleteT(T t) { Session session = sessionFactory.openSession(); try {

52、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(),實現(xiàn)添加數(shù)據(jù)的操作。具體實現(xiàn)代碼如下: public boolean saveT(T t) { Session sess

53、ion = 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語句。只有當Session清理緩存時才會執(zhí)

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

55、eginTransaction(); session.update(t); mit(); } catch (Exception e) { System.out.println(e); return false; } finally { session.close(); } return true; } 5、查詢多條數(shù)據(jù) 查詢多組數(shù)據(jù)的方法名稱為queryList。該方法以參數(shù)String類型對象hql為條件,調(diào)用Session類中的createQuery()來實現(xiàn)查詢功能。具體實現(xiàn)代碼如下: public List

56、 queryList(String hql) { session = sessionFactory.openSession(); tx = session.beginTransaction(); List list = null; try { Query query = session.createQuery(hql); list = query.list(); } catch (Exception e) { System.out.println(e); } mit(); session.close(); re

57、turn list; } 6、查詢單條數(shù)據(jù) 查詢單條數(shù)據(jù)的方法名稱為queryFrom。該方法以參數(shù)String類型對象hql為條件,調(diào)用Session類中的createQuery()來實現(xiàn)查詢功能。并將查詢結(jié)果返回給Query類的query對象,最后通過該對象調(diào)用uniqueResult方法,實現(xiàn)查詢單條數(shù)據(jù)的方法。具體實現(xiàn)代碼如下: public T queryFrom(String hql) { T t = null; session = sessionFactory.openSession(); tx = session.beginTransaction()

58、; 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ù);beginNumber參數(shù)變量表示查詢的起始位置數(shù)。具體實現(xiàn)代碼如下:

59、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(beginNumbe

60、r); list = query.list(); } catch (Exception e) { } mit(); session.close(); return list; } 5.3界面設(shè)計 5.3.1 主界面模塊設(shè)計 訪問博客程序時,首先進入博客主界面。在該頁面包括的功能是導(dǎo)航區(qū)、推薦博客、推薦文章、熱門博客、熱門文章、主頁信息及其版權(quán)信息區(qū)。在本系統(tǒng)中,首頁操作的struts2實現(xiàn)類名稱為BlogMainAction。該類繼承了ActionSupport類并實現(xiàn)了類ServletRequestAware接口,通過該接口的setServle

61、tRequest方法獲取Web應(yīng)用中的request對象。網(wǎng)站首頁面運行結(jié)果如圖5.3所示。 圖5.3 首頁運行圖 BlogMainAction類的具體實現(xiàn)代碼如下: public class BlogMainAction extends ActionSupport implements ServletRequestAware { protected HttpServletRequest request; private ObjectDao userDao = new ObjectDao(); private ObjectDa

62、o articleDao = new ObjectDao(); private String hql_user_commend = null; private String hql_user_vistor = null; private String hql_article_commend = null; private String hql_article_vistor = null; public BlogMainAction() { hql_user_commend = "from UserInfo where

63、 commend=是 and freeze=解凍"; hql_user_vistor = "from UserInfo where freeze=解凍 order by vistor desc"; hql_article_commend = "from ArticleInfo where commend=是 and author in (select account from UserInfo where freeze=解凍)"; hql_article_vistor = "from ArticleInfo where author in (select account fr

64、om UserInfo where freeze=解凍) order by visit desc"; } public String BlogMain() { // 以下上判斷博客推薦 List userCommned = userDao.queryList(hql_user_commend); if (userCommned.size() > 5) { userCommned = userCommned.subList(0, 5); } request.setAttribute("userCommned", userCommned

65、); // 以下是熱門博客 List userVistor = userDao.queryList(hql_user_vistor); if (userVistor.size() > 5) { userVistor = userVistor.subList(0, 5); } request.setAttribute("userVistor", userVistor); // 以下是推薦文章 List articleCommend = articleDao .queryListObject(h

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

相關(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)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!