畢業(yè)設(shè)計(jì)論文基于JAVA的Weblog 網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
《畢業(yè)設(shè)計(jì)論文基于JAVA的Weblog 網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)論文基于JAVA的Weblog 網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)(60頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、邵陽學(xué)院畢業(yè)設(shè)計(jì)(論文) 第1章 緒論 現(xiàn)代科技日新月異,人們可以從很多途徑獲得信息,訪問WEB LOG成為一種很重要的獲取信息的方式。博客一詞開始代表著數(shù)字生活新時(shí)尚,通過文字、圖片、聲音、視頻、無線等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, Share me,人人都可以博客,人人都需要博客。 1.1項(xiàng)目開發(fā)背景 “博客”一詞是從英文單詞Blog翻譯而來。Blog是Weblog的簡稱,而Weblog則是由Web和Log兩個(gè)英文單詞組合而成。Weblog就是在網(wǎng)絡(luò)上發(fā)布和閱讀的流水記錄,通常稱為“網(wǎng)絡(luò)日志”,簡稱為“網(wǎng)志”。它是繼Email、BBS、IM之后
2、出現(xiàn)的第四種全新的網(wǎng)絡(luò)交流方式。它絕不僅僅是一種單向的發(fā)布系統(tǒng),而且有著極其出色的交流功能。另外Blog也提供了非常方便實(shí)用的個(gè)性化功能。簡言之,Blog就是以網(wǎng)絡(luò)作為載體,簡易迅速便捷地發(fā)布自己的心得,及時(shí)有效輕松地與他人進(jìn)行交流,再集豐富多彩的個(gè)性化展示于一體的綜合性平臺(tái)。是一種通常由個(gè)人管理、不定期張貼新的文章、圖像或視頻的網(wǎng)站。博客上的文章通常根據(jù)張貼時(shí)間,以倒序方式由新到舊排列。 許多博客專注在特定的課題上提供評(píng)論或新聞,其他則被作為比較個(gè)人的日記。一個(gè)典型的博客結(jié)合了文字、圖像、其他博客或網(wǎng)站的鏈接、及其它與主題相關(guān)的媒體。能夠讓讀者以互動(dòng)的方式留下意見,是許多博客的重要要素。大
3、部分的博客內(nèi)容以文字為主,仍有一些博客專注在藝術(shù)、攝影、視頻、音樂、播客等各種主題。博客是社會(huì)媒體網(wǎng)絡(luò)的一部分。 1.2項(xiàng)目開發(fā)目的與意義 目的:提供一個(gè)互聯(lián)網(wǎng)平臺(tái)的個(gè)人信息的交流中心,讓每個(gè)人零成本、零維護(hù)地創(chuàng)建自己的網(wǎng)絡(luò)媒體,從而達(dá)到共享資料與交流信息的目的。 意義:隨著網(wǎng)絡(luò)的普及,無論是政府機(jī)關(guān)、大中小型企業(yè)、醫(yī)院、銀行、乃至個(gè)人都需要通過網(wǎng)絡(luò)達(dá)到共享與交流的目的。能最大化的達(dá)到交流的目的就要建立自己的門戶網(wǎng)站,所以就形成了現(xiàn)在形形色色的網(wǎng)站了。對(duì)于個(gè)人而言,雖然信息量比較小,共享與交流卻是必須的,但是不可能人人自掏腰包來建立網(wǎng)站,由于這種種因素孕育了博客網(wǎng)站的誕生。就一個(gè)普通人來
4、說,他不需要一個(gè)網(wǎng)站只需要一個(gè)網(wǎng)頁來展示他的信息,保存他的一些資料,博客網(wǎng)站就是一個(gè)由眾多用戶網(wǎng)頁頁面形成的網(wǎng)站。它的誕生形成了一個(gè)互聯(lián)網(wǎng)個(gè)人信息交流中心,它可以讓每個(gè)人零成本、零維護(hù)地創(chuàng)建自己風(fēng)格的網(wǎng)絡(luò)媒體,每個(gè)人都可以隨時(shí)把自己的思想火花和靈感更新到博客站點(diǎn)上。 1.3相關(guān)技術(shù)論述 1.3.1 JSP技術(shù)概述 JSP(全稱JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)和許多公司參與共同建立的一種使軟件開發(fā)者可以響應(yīng)客戶端請(qǐng)求,而動(dòng)態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁的技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是以Java語言作為腳本語言的,JSP網(wǎng)頁為整個(gè)服務(wù)器
5、端的Java庫單元提供了一個(gè)接口來服務(wù)于HTTP的應(yīng)用程序。 JSP使Java代碼和特定的預(yù)定義動(dòng)作可以嵌入到靜態(tài)頁面中。JSP句法增加了被稱為JSP動(dòng)作的XML標(biāo)簽,它們用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標(biāo)簽庫,然后像使用標(biāo)準(zhǔn)HTML或XML標(biāo)簽一樣使用它們。標(biāo)簽庫提供了一種和平臺(tái)無關(guān)的擴(kuò)展服務(wù)器性能的方法。 JSP被JSP編譯器編譯成Java Servlets。一個(gè)JSP編譯器可以把JSP編譯成JAVA代碼寫的servlet然后再由JAVA編譯器來編譯成機(jī)器碼,也可以直接編譯成二進(jìn)制碼。 從架構(gòu)上說,JSP可以被看作是從Servlets高級(jí)提煉而作為JAVA Servlet 2.
6、1 API的擴(kuò)展而應(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ā)布。 綜上所述其實(shí)JSP就是服務(wù)器端的一種基于Java語言的網(wǎng)頁技術(shù),所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān)。在傳統(tǒng)的網(wǎng)頁中加入Java代碼和JSP標(biāo)簽之
7、后放在服務(wù)器端運(yùn)行,再將運(yùn)行的結(jié)果向用戶發(fā)布,用戶通過瀏覽器就能夠看到精彩紛呈的網(wǎng)頁了。也可以簡單的理解為:HTML+Java程序片段+JSP標(biāo)記 = JSP網(wǎng)頁。 容器在遇到JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(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)上Jav
8、a比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。 (2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)
9、之下 [6]。 JSP轉(zhuǎn)譯成Servlet有以下幾個(gè)方法: (1) jspInit()—在JSP頁面初始化時(shí)被調(diào)用??梢愿采w該方法,以提供任何的初始化工作; (2) jspDestroy()—在JSP頁面被銷毀時(shí)調(diào)用??梢愿采w該方法,以提供任何的JSP清楚工作; (3) jspService()—由容器自動(dòng)定義,不應(yīng)當(dāng)提供該方法的實(shí)現(xiàn) 。 JSP的頁面內(nèi)容包括: (1) 靜態(tài)內(nèi)容—HTML靜態(tài)文本; (2) 指令—<%@開始,以%>; (3) 表達(dá)式—<%@=Java表達(dá)式%>; (4) Scriptlet—<%Java代碼%>; (5) 聲明—<%!函數(shù)或方法%>; (
10、6) 動(dòng)作—以“
11、進(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ò)展名為最多三個(gè)字符,所以.htm擴(kuò)展名也被使用。雖然現(xiàn)在使用的比較少一些了,但是.htm擴(kuò)展名仍舊普遍被支持。編者可以用任何文本編輯器或所見即所得的HTML編輯器來編輯HTML文件。 早期的HTML語法被定義成較松散的規(guī)則,以有助于不熟悉網(wǎng)絡(luò)出版的人采用。網(wǎng)頁瀏覽器接受了這個(gè)現(xiàn)實(shí),并且可以顯示語法不嚴(yán)格的網(wǎng)頁。隨著時(shí)間的流逝,官方標(biāo)準(zhǔn)漸漸趨于嚴(yán)格的語法,但是瀏覽器繼續(xù)顯示一些遠(yuǎn)稱不上合乎標(biāo)準(zhǔn)的HTML。使用XML的嚴(yán)格規(guī)則的XHTML
12、(可擴(kuò)展超文本置標(biāo)語言)是W3C計(jì)劃中的HTML的接替者。雖然很多人認(rèn)為它已經(jīng)成為當(dāng)前的HTML標(biāo)準(zhǔn),但是它實(shí)際上是一個(gè)獨(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)題會(huì)被顯示為較大的粗體文字。參見層疊樣式表(CSS)。比較常用的結(jié)構(gòu)性標(biāo)記有: html元素 標(biāo)記HTML內(nèi)容的開始和結(jié)束。 head元素 標(biāo)記HTML文件頭,包含不在正文中顯示的關(guān)鍵字、標(biāo)題、腳本等等。 title元素 標(biāo)記HTML文
13、件的標(biāo)題。 body元素 標(biāo)記HTML文件正文的開始和結(jié)束。 (2)Javascript語言 Javascript是一種由Netscape的LiveScript發(fā)展而來的原型化繼承的面向?qū)ο蟮膭?dòng)態(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要目的是為了解決服務(wù)器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當(dāng)時(shí)服務(wù)端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,由于網(wǎng)絡(luò)速度相當(dāng)緩慢,只有28.8kbps,驗(yàn)證步驟浪費(fèi)的時(shí)間太多。于是Netscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗(yàn)證的基本功能。 總體來說JavaScript 是屬于網(wǎng)絡(luò)的腳本語言,被數(shù)百萬計(jì)的網(wǎng)頁
14、用來改進(jìn)設(shè)計(jì)、驗(yàn)證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應(yīng)用,是因特網(wǎng)上最流行的腳本語言,而且簡單易用。 JavaScript的組成: 1) 核心(ECMAScript) 2) 文檔對(duì)象模型(DOM) 3) 瀏覽器對(duì)象模型(BOM) JavaScript的知識(shí)結(jié)構(gòu): 1) 語法基礎(chǔ) a) 數(shù)據(jù)類型,強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換 b) 變量,函數(shù) c) 運(yùn)算符 d) 條件,循環(huán)語句 2) 核心對(duì)象 數(shù)組對(duì)象,字符串對(duì)象,數(shù)學(xué)對(duì)象,日期對(duì)象,自定義對(duì)象。 3) 瀏覽器對(duì)象 Window、 document、 location、 history 、form對(duì)象 、表單元素
15、對(duì)象 [2]。 JavaScript嵌入網(wǎng)頁的方法: 1) 使用 標(biāo)簽將語句嵌入文檔。 2) 將外部JavaScript 源文件鏈接到 html文檔中。 可使多個(gè)網(wǎng)頁共享一個(gè)腳本文件內(nèi)的代碼。一般在其中定義一系列在多個(gè)網(wǎng)頁中都可能要用到的函數(shù) 3) 作為網(wǎng)頁元素的事件處理程序,當(dāng)事件觸發(fā)時(shí)自動(dòng)運(yùn)行。 1.4 編程工具簡介 1.4.1 MyEclipse簡介 MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡稱Myclipse)是
16、對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(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整合幫助 對(duì)于以上每一種功能上的類
17、別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)诓挥绊懫渌K的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。 1.4.2 SQL Server 2005數(shù)據(jù)庫簡介 SQL Server Express 是一個(gè)免費(fèi)、易用且便于管理的數(shù)據(jù)庫。SQL Server Express 與 Microsoft Visual Studio 2005 集成在一起,可以輕松開發(fā)功能豐富、存儲(chǔ)安全、可快速部署的數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序。SQL Server Express 是免費(fèi)的,可以再分發(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ā)工具和強(qiáng)大的分析等方面的革新更好的確立了微軟在BI領(lǐng)域的領(lǐng)導(dǎo)地位。SQL Server 2005 能夠把關(guān)鍵的信息及時(shí)的傳遞到組織內(nèi)員工的手中,從而實(shí)現(xiàn)了可伸縮的商業(yè)智能。從CEO 到信息工作者,員工可以快速的、容易的處理數(shù)據(jù),以更快更好的做出決策。SQL Server 2005全面的集成、分析和報(bào)表功能使企業(yè)能夠提高他們已有應(yīng)用的價(jià)值,即便這些應(yīng)用是在不同的平臺(tái)上
19、[9]。 商業(yè)智能增強(qiáng)體現(xiàn)在以下幾個(gè)方面: 1) 端到端的集成BI平臺(tái) 2) 集成服務(wù) 3) 分析服務(wù) 4) 報(bào)表服務(wù) 5) Microsoft Office System的集成 1.4.3 Tomcat WEB服務(wù)器簡介 Tomcat是一款優(yōu)秀的支持Web容器的服務(wù)器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心的項(xiàng)目。有Apache,SUN和其他一些公司及個(gè)人共同開發(fā)而成。由于有了SUN公司的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。 Tomcat服務(wù)器不但支持Servlet和JSP的運(yùn)行,而且還具備了作為商業(yè)Web容器的基本特征
20、,如Tomcat管理和控制平臺(tái)、安全域管理和Tomcat閥等。Tomcat已經(jīng)成為目前開發(fā)基于Java的Web應(yīng)用程序和最佳服務(wù)器選擇之一。 雖然Tomcat在執(zhí)行Web應(yīng)用程序方面表現(xiàn)出色,但是由于其不包含EJB容器,所以無法支持EJB組件的部署和運(yùn)行,但Tomcat可以與其他一些軟件集成起來實(shí)現(xiàn)更多的功能,如與JBoss服務(wù)器集成起來可以支持EJB的開發(fā)。 Tomcat不僅僅是一個(gè)J2EE的Web容器,它也是具有傳統(tǒng)的Web服務(wù)器的功能:處理HTML頁面。但是與Apache相比,它的處理靜態(tài)HTML的能力相對(duì)較差。我們可以將Tomcat和Apache集成到一起,讓Apache處理靜態(tài)H
21、TML,而Tomcat處理JSP和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。 Tomcat中的應(yīng)用程序與傳統(tǒng)的桌面應(yīng)用程序不同,它是一個(gè)WAR(Web Archive)文件。WAR是SUN提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包。 Tomcat的目錄結(jié)構(gòu)如下: bin文件夾:該文件夾中存放啟動(dòng)和關(guān)閉Tomcat服務(wù)器的文件。 common文件夾:該文件夾中存放Tomcat服務(wù)器及所有Web應(yīng)用程序都可以訪問的JAR文件和類文件。 conf文件夾:該文件夾中存放Tomcat服務(wù)器的各種配置文件。 logs文件夾:該文件
22、夾中存放Tomcat服務(wù)器的日志文件。 Server文件夾:該文件夾中存放Tomcat服務(wù)器的各種后臺(tái)管理文件。 Shared文件夾:該文件夾中所有Web應(yīng)用程序都可以該問的JAR文件和類文件,但這些文件不能被Tomcat服務(wù)器所訪問。 Src文件夾:該文件夾中存放Tomcat服務(wù)器相關(guān)的源代碼。 Temp文件夾:該文件夾中存放Tomcat服務(wù)器的各種臨時(shí)文件。 Webapps文件夾:該文件夾中存放web應(yīng)用文件。 Work文件夾:該文件夾存放JSP頁面轉(zhuǎn)換為Servlet的文件 [14]。 - 60 - 邵陽學(xué)院畢業(yè)設(shè)計(jì)(論文) 第2章 系統(tǒng)分析 2.1系統(tǒng)概述 博
23、客,在網(wǎng)絡(luò)上發(fā)表文章、展現(xiàn)個(gè)人的個(gè)性,而博客系統(tǒng),是為這類人群提供一個(gè)相互交流、學(xué)習(xí)的平臺(tái)。博客的兩大基本功能是共享與交流。共享,是將文章、圖片、心得等一些很私人的東西,拿出來和多數(shù)人一起分享;交流,是有這同樣興趣、愛好、語言的一類人之間的聯(lián)系。本系統(tǒng)主要分為:個(gè)人博客空間、個(gè)人博客管理和博客后臺(tái)管理三個(gè)部分。 2.2系統(tǒng)可行性分析 2.2.1 經(jīng)濟(jì)價(jià)值可行性 博客從2001年在國內(nèi)落地以來,到2005年“中國博客元年”到來,“全民博客”加上“名人博客”的火熱創(chuàng)造了驚人的點(diǎn)擊率,博客的發(fā)展具備了投放廣告的可能。博客廣告的出現(xiàn)意味著個(gè)人寫博客有了商業(yè)價(jià)值,博客由此進(jìn)入了商業(yè)化的探索階段。本
24、文著重于“個(gè)人博客廣告”的探討,通過分析“個(gè)人博客廣告”與傳統(tǒng)互聯(lián)網(wǎng)廣告相比的優(yōu)勢,針對(duì)“個(gè)人博客廣告”面臨的問題提出相應(yīng)的對(duì)策和建議從而得出結(jié)論:個(gè)人博客廣告的商業(yè)化發(fā)展具有可行性。既然個(gè)人博客已經(jīng)具備這么大的商業(yè)價(jià)值,作為一個(gè)整體的博客系統(tǒng)的商業(yè)經(jīng)濟(jì)價(jià)值是不可限量的。 2.2.2 技術(shù)可行性 相信這一點(diǎn)不用強(qiáng)加說明了,現(xiàn)在各式各樣的博客網(wǎng)站如雨后春筍般的出現(xiàn),其中的不乏像網(wǎng)易,新浪這樣的互聯(lián)網(wǎng)巨頭。其實(shí)維護(hù)一個(gè)博客網(wǎng)站對(duì)于硬件和軟件方面的要求都不是很高,當(dāng)然隨著注冊(cè)人數(shù)的增加要適當(dāng)?shù)纳?jí)服務(wù)器。 2.3系統(tǒng)需求分析 通過對(duì)一些典型博客網(wǎng)站的考察、分析以及實(shí)際的市場調(diào)查,要求本系統(tǒng)具
25、有以下功能: (1)系統(tǒng)個(gè)人博客前臺(tái)展示需求分析 a) 用戶的注冊(cè),登錄。 b) 登錄的用戶可以訪問自己博客或者訪問他人博客,未登錄用戶可以訪問任意博客,當(dāng)是不計(jì)入瀏覽數(shù)。 c) 進(jìn)入博客的用戶可以瀏覽文章,發(fā)表留言,瀏覽相冊(cè),查看個(gè)人資料,訪問好友。如果訪問的是他人博客還可以添加好友,發(fā)送小紙條。 (2)系統(tǒng)個(gè)人博客后臺(tái)管理需求分析 a) 個(gè)人管理、文章管理。其中包括了查找、修改資料;添加、刪除文章。 b) 相冊(cè)管理、好友管理。其中包括了添加、刪除、管理相冊(cè);查看、刪除好友。 c) 留言管理、小紙條管理。其中包括了查看、刪除留言;查看、刪除紙條。 (3)系統(tǒng)管理員后臺(tái)管理需
26、求分析 a) 用戶管理。其中包括用戶博客是否被推薦,用戶是否凍結(jié),用戶是否解凍,用戶刪除。 b) 文章管理。其中包括文章列表查詢,文章詳細(xì)查詢,文章是否推薦,按用戶名查詢文章。 c) 相冊(cè)管理。其中包括相冊(cè)的查詢、刪除。 d) 修改管理員密碼。 邵陽學(xué)院畢業(yè)設(shè)計(jì)(論文) 第3章 系統(tǒng)概要設(shè)計(jì) 3.1 項(xiàng)目規(guī)劃 博客系統(tǒng)是一個(gè)典型的JSP數(shù)據(jù)庫開發(fā)應(yīng)用程序,由個(gè)人博客前臺(tái)展示、個(gè)人博客管理以及博客后臺(tái)管理三部分組成。 (1) 個(gè)人博客前臺(tái)展示 該部分主要包括用戶的注冊(cè)、登錄、瀏覽博客各種內(nèi)容、發(fā)表留言信息、添加好友、向好
27、友發(fā)送信息等。 (2) 個(gè)人博客管理 該部分主要對(duì)個(gè)人博客的一些基礎(chǔ)數(shù)據(jù)進(jìn)行有效管理,包括個(gè)人資料修改、博客內(nèi)容管理、好友的管理、留言的管理等。 (3) 博客后臺(tái)管理。 該部分主要是對(duì)所以注冊(cè)博客的統(tǒng)一數(shù)據(jù)進(jìn)行有效管理,包括用戶的管理、文章的管理、相冊(cè)的管理等。 3.2系統(tǒng)總體構(gòu)架 這個(gè)系統(tǒng)總體劃分為兩個(gè)層次: (1) Struts層: 這里采用Struts2框架作為系統(tǒng)開發(fā)的控制器組件,在頁面請(qǐng)求處理流程中與struts1完全相同。它仍然是以前控制框架為主體的框架,用戶的請(qǐng)求會(huì)通過控制器選擇不同的控制器組件(即Action)來執(zhí)行不同的操作。在控制器組件中request、re
28、sponse和session這些servlet類的對(duì)象仍然可以使用 [5]。 (2) Hibernate層: 這里采用hibernate3作為系統(tǒng)的開發(fā)的模型組件,在數(shù)據(jù)儲(chǔ)存器和控制器之間加入一個(gè)持久層,該層簡化CRUD數(shù)據(jù)的工作,分離應(yīng)用程序和數(shù)據(jù)庫之間的耦合,實(shí)現(xiàn)在無需修改代碼的情況下輕松更換應(yīng)用程序數(shù)據(jù)庫。Hibernate3幾乎支持所有的主流數(shù)據(jù)庫,從開源數(shù)據(jù)庫HSQLDB、MYSQL、PostareSQL到強(qiáng)大企業(yè)級(jí)數(shù)據(jù)庫oracle、IBM DB2等。本系統(tǒng)采用的數(shù)據(jù)庫是時(shí)下比較適合中小型企業(yè)的數(shù)據(jù)庫SqlServer 2005。 系統(tǒng)層次結(jié)構(gòu)如圖3.1所示: Filter
29、Dispacher攔截器 瀏覽器 Request請(qǐng)求 控制器組件 struts層: 視圖插件 response響應(yīng) 持久層 hibernate層: 數(shù)據(jù)庫 圖3.1 系統(tǒng)層次結(jié)構(gòu)圖 3.3 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì) 個(gè)人博客空間是為他人提供瀏覽、查看博客內(nèi)容的平臺(tái)。在這個(gè)空間中,可以瀏覽文章、發(fā)表留言、添加好友和瀏覽相冊(cè)。個(gè)人博客空間的功能結(jié)構(gòu)圖如圖3.2所示。 個(gè)人網(wǎng)站 未登錄 登錄用戶 他人博客 自己博客 任意博客 用戶注冊(cè) 發(fā)送紙條 添加好友 訪問好友 個(gè)人資料 瀏覽相冊(cè) 發(fā)表留言 瀏覽文
30、章 圖3.2 個(gè)人博客空間的功能結(jié)構(gòu)圖 個(gè)人博客管理,主要功能有個(gè)人管理、文章管理、相冊(cè)管理、好友管理、留言管理和小紙條管理。個(gè)人博客管理功能結(jié)構(gòu)圖如圖3.3所示。 圖3.3 個(gè)人博客管理功能結(jié)構(gòu)圖 博客后臺(tái)管理系統(tǒng),主要是對(duì)博客用戶和管理員的管理。博客后臺(tái)管理包括用戶管理、用戶文章管理、用戶相冊(cè)管理和修改管理員密碼。博客后臺(tái)管理的功能結(jié)構(gòu)圖如圖3.4所示。 圖3.4 博客后臺(tái)管理功能結(jié)構(gòu)圖 3.4 面向?qū)ο笤O(shè)計(jì) 系統(tǒng)開發(fā)是基于JAVA的面向?qū)ο蟮恼Z言進(jìn)行開發(fā)。 根據(jù)前面需求分析的模型,可建立以下類與接口,以實(shí)現(xiàn)系統(tǒng)各模塊的功能。 3.4.1
31、 管理員模塊操作類 該模塊所涉及的類提供了一系列的關(guān)于后天管理員修改密碼、驗(yàn)證密碼、管理員退出的方法。其類圖如圖3.5所示。 圖3.5 后臺(tái)管理員類圖 3.4.2 文章模塊操作類 該模塊中的類提供了一系列的關(guān)于管理員登陸后對(duì)文章的詳細(xì)查詢,管理員登陸后對(duì)文章的列表查詢,前臺(tái)文章的詳細(xì)查詢,前臺(tái)文章回復(fù)內(nèi)容的詳細(xì)查詢,文章的修改操作,文章的刪除操作,文章表單的校驗(yàn),文章的添加的方法。其類圖如圖3.6所示。 圖3.6 后臺(tái)管理員類圖 3.4.3 留言模塊操作類 該模塊中的類提供了一系列的關(guān)于留言刪除、留言查詢、前臺(tái)添加留言、前臺(tái)查看留言的方法。其類圖如圖3.7所示。
32、 圖3.7 留言模塊類圖 3.4.4 用戶信息操作類 該模塊中的類提供了一系列的關(guān)于刪除朋友信息、后臺(tái)查詢用戶、添加好友、刪除相冊(cè)類別、修改相冊(cè)類別名稱、查詢并添加相片類別信息、轉(zhuǎn)向添加文章的頁面、修改文章類別名稱、刪除文章類別操作、查詢并添加類別信息、修改用戶密碼的校驗(yàn)、修改用戶的密碼的操作、修改個(gè)人信息校驗(yàn)、修改個(gè)人信息操作、根據(jù)用戶id查詢用戶信息、根據(jù)對(duì)象進(jìn)入相應(yīng)博客、用戶登錄校驗(yàn)、用戶推薦不推薦操作、用戶凍結(jié)或解凍操作、用戶查詢功能、用戶注冊(cè)校驗(yàn)、用戶注冊(cè)、后臺(tái)用戶信息刪除操作的方法。其類圖如圖3.8所示。 圖3.8 用戶信息操作模塊類圖 3.4.5 前臺(tái)
33、展示操作類 該模塊中的類提供了一系列顯示推薦博客、熱門博客、推薦博客、熱門文章的方法。其類圖如圖3.9所示。 圖3.9 前臺(tái)展示操作類圖 邵陽學(xué)院畢業(yè)設(shè)計(jì)(論文) 第4章 數(shù)據(jù)庫設(shè)計(jì) 4.1 數(shù)據(jù)庫ER圖 本系統(tǒng)的ER圖如圖4.1所示: 發(fā)表管理 內(nèi)容 題目 地址 名稱 照片 文章 類別 訪問量 QQ 性別 職業(yè) 電話 主頁名稱 用戶 Email 真實(shí)姓名 密碼 用戶名 1 類別 管理員 管理 1 1 N N
34、 1 圖4.1 數(shù)據(jù)庫ER圖 4.2 數(shù)據(jù)庫物理設(shè)計(jì) 本系統(tǒng)的物理設(shè)計(jì)如圖4.2所示: 圖4.2 數(shù)據(jù)庫物理設(shè)計(jì)關(guān)系圖 4.3 數(shù)據(jù)庫圖表設(shè)計(jì) 表4.1 管理員信息表(tb_admin) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認(rèn)值 描述 id int 否 NULL 系統(tǒng)編號(hào) account varchar(50) 否 NULL 管理員賬號(hào) password varchar(50) 否 NULL 管理員密碼 表4.2 用戶信息表(tb_userInfo) 字段名稱 數(shù)據(jù)類型
35、 是否為空 是否主鍵 默認(rèn)值 描述 id int(4) 否 NULL 系統(tǒng)編號(hào) account varchar(50) 否 是 NULL 用戶名 password varchar(40) 否 NULL 密碼 Realname varchar(10) 否 NULL 真實(shí)姓名 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號(hào)碼 Headgif varchar(50) 是 空字符串 頭像地址 Freeze varchar(10) 是 空字符串 是否凍結(jié) Art_type varchar(100) 是 空字符串 文章類別 Pic_type varchar(100) 是 空字符串 相片類別 Friend_ty
37、pe varchar(50) 是 空字符串 好友名稱 Commend varchar(50) 是 空字符串 是否推薦 Vistor int(4) 是 0 訪問次數(shù) Self varchar(50) 是 空字符串 自我評(píng)價(jià) 表4.3 文章回復(fù)信息表(tb_reArticle) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認(rèn)值 描述 id int(4) 否 是 NULL 系統(tǒng)編號(hào) 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ù)時(shí)間 表4.4 留言信息表(tb_info) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認(rèn)值 描述 id int(4) 否 NULL 系統(tǒng)編號(hào) 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 留言標(biāo)識(shí) 表4.5 相冊(cè)信息表(tb_photo) 字段名稱 數(shù)據(jù)類型 是否為空 是否主鍵 默認(rèn)值 描述 id int(4) 否 是 NULL 系統(tǒng)編號(hào) 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ù)類型 是否為空 是否主鍵 默認(rèn)值 描述 id int(4) 否 是 NULL 系統(tǒng)編號(hào) typeName varchar(50) 否 類型名稱 Title varchar(50) 否 文章題目 Content varchar(300) 否 文章內(nèi)容 Author varchar(50) 否 文章作者 sendTime varchar(50) 否 發(fā)表
41、時(shí)間 Visit int 否 訪問量 commend varchar(10) 否 是否推薦 第5章 詳細(xì)設(shè)計(jì) 5.1 系統(tǒng)流程設(shè)計(jì) 個(gè)人博客前臺(tái)管理系統(tǒng)流程圖如圖5.1所示。 個(gè)人博客前臺(tái) 校驗(yàn)用戶注冊(cè)是否成功 校驗(yàn)用戶登陸是否成功 N N Y Y 用戶已經(jīng)登陸 訪問他人博客 訪問自己博客 文章瀏覽 熱門文章瀏覽 留言查詢 個(gè)人資料查詢 添加好友 相冊(cè)瀏覽 類別查詢文章 好友查詢 訪問好友博客 發(fā)送紙條 進(jìn)入后
42、臺(tái)管理 紙條管理 好友管理 相冊(cè)管理 留言管理 文章管理 圖5.1 個(gè)人博客前臺(tái)管理系統(tǒng)流程圖 個(gè)人博客管理員后臺(tái)管理系統(tǒng)流程圖如圖5.2所示。 個(gè)人博客管理員后臺(tái)管理 文章管理 圖片管理 修改管理員密碼 退出后臺(tái) 用戶管理 校驗(yàn)管理員是否登錄成功 管理員登錄后臺(tái)頁面 圖5.2 個(gè)人博客管理員后臺(tái)管理系統(tǒng)流程圖 5.2 公共模塊設(shè)計(jì) 5.2.1 編寫Hibernate數(shù)據(jù)庫配置文件 Hibernate配置文件主要用于配置
43、數(shù)據(jù)庫連接和Hibernate運(yùn)行時(shí)所需的各種屬性。它同時(shí)支持XML格式的配置文件和傳統(tǒng)的properties文件配置方式,本系統(tǒng)采用了XML型配置文件。XML配置文件提供了更容易的結(jié)構(gòu)和更強(qiáng)的配置能力,可以直接對(duì)映射文件加以配置并由Hibernate自動(dòng)加載。
配置文件名默認(rèn)為“hibernate.cfg.xml”,本系統(tǒng)的配置文件發(fā)布在src文件夾中,配置關(guān)鍵代碼如下:
sa
48、ss ObjectDao
49、.out.println(e.getMessage()); } } } 對(duì)上述方法代碼的說明如下: SessionFactory接口:初始化Hibernate充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,創(chuàng)建Session類的對(duì)象。一個(gè)SessionFactory類的對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)存儲(chǔ)源,該數(shù)據(jù)源從SessionFactory對(duì)象獲取。SessionFactory接口需要一個(gè)很大的緩存,用來存放預(yù)定義的SQL語句以及映射元數(shù)據(jù)。用戶還可以為SessionFactory接口配置一個(gè)緩存插件,這個(gè)緩存插件通常被稱為Hibernate的第二級(jí)緩存,該緩存用來存放被操作單元讀過的數(shù)據(jù),將來其他操作單元可能會(huì)
50、重用這些數(shù)據(jù),因此這個(gè)緩存中的數(shù)據(jù)能夠被所有單元共享。一個(gè)工作單元對(duì)應(yīng)一個(gè)數(shù)據(jù)庫事務(wù)。 Session接口:Session接口是Hibernate應(yīng)用使用最廣泛的接口。Session通常也稱為持久化管理器,它提供了和持久化相關(guān)的操作,如添加、修改、刪除、加載及查詢對(duì)象。 Transaction接口:Transaction接口是Hibernate的數(shù)據(jù)庫事務(wù)接口,它對(duì)底層的事務(wù)接口做了封裝,底層事務(wù)接口包括JDBC API、JTA、CORBA API。Hibernate應(yīng)用可通過一致的Transaction接口來聲明事務(wù)邊界,這有助于應(yīng)用在不同的環(huán)境或容器中移植。 Configuratio
51、n接口:Configuration接口用于配置并且跟蹤啟動(dòng)Hibernate。Hibernate應(yīng)用通過Configuration實(shí)例來指定對(duì)象—關(guān)系映射文件的位置或者動(dòng)態(tài)配置Hibernate的屬性,然后創(chuàng)建SessionFactory實(shí)例。 2、刪除數(shù)據(jù) 刪除數(shù)據(jù)操作的方法名稱為deleteT。在該方法中,以T對(duì)象類型為參數(shù),執(zhí)行Session類中的delete方法,實(shí)現(xiàn)刪除數(shù)據(jù)的操作。具體實(shí)現(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對(duì)象類型為參數(shù),執(zhí)行Session類中的save(),實(shí)現(xiàn)添加數(shù)據(jù)的操作。具體實(shí)現(xiàn)代碼如下: public boolean saveT(T t) { Session
53、 session = 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清理緩
54、存時(shí)才會(huì)執(zhí)行SQL中insert語句。當(dāng)Session清理緩存時(shí),才會(huì)執(zhí)行SQL中insert語句。如果在save()之后,又修改持久化對(duì)象的屬性,這會(huì)使得Session在清理緩存時(shí),額外執(zhí)行SQL中update語句。 4、修改數(shù)據(jù) 修改數(shù)據(jù)操作的方法名稱為updateT。在該方法中,以T對(duì)象類型為參數(shù),執(zhí)行Session類中的update方法,實(shí)現(xiàn)修改數(shù)據(jù)的操作。具體實(shí)現(xiàn)代碼如下: public boolean updateT(T t) { Session session = sessionFactory.openSession(); try { tx = sess
55、ion.beginTransaction(); 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類型對(duì)象hql為條件,調(diào)用Session類中的createQuery()來實(shí)現(xiàn)查詢功能。具體實(shí)現(xiàn)代碼如下: public Li
56、st
57、 return list; } 6、查詢單條數(shù)據(jù) 查詢單條數(shù)據(jù)的方法名稱為queryFrom。該方法以參數(shù)String類型對(duì)象hql為條件,調(diào)用Session類中的createQuery()來實(shí)現(xiàn)查詢功能。并將查詢結(jié)果返回給Query類的query對(duì)象,最后通過該對(duì)象調(diào)用uniqueResult方法,實(shí)現(xiàn)查詢單條數(shù)據(jù)的方法。具體實(shí)現(xiàn)代碼如下: public T queryFrom(String hql) { T t = null; session = sessionFactory.openSession(); tx = session.beginTransact
58、ion(); 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。該方法存在三個(gè)參數(shù):hql參數(shù)對(duì)象表示查詢的HQL語句;showNumber參數(shù)變量表示查詢的條數(shù);beginNumber參數(shù)變量表示查詢的起始位置數(shù)。具體實(shí)現(xiàn)代碼
59、如下:
public List
60、Number); list = query.list(); } catch (Exception e) { } mit(); session.close(); return list; } 5.3界面設(shè)計(jì) 5.3.1 主界面模塊設(shè)計(jì) 訪問博客程序時(shí),首先進(jìn)入博客主界面。在該頁面包括的功能是導(dǎo)航區(qū)、推薦博客、推薦文章、熱門博客、熱門文章、主頁信息及其版權(quán)信息區(qū)。在本系統(tǒng)中,首頁操作的struts2實(shí)現(xiàn)類名稱為BlogMainAction。該類繼承了ActionSupport類并實(shí)現(xiàn)了類ServletRequestAware接口,通過該接口的setS
61、ervletRequest方法獲取Web應(yīng)用中的request對(duì)象。網(wǎng)站首頁面運(yùn)行結(jié)果如圖5.3所示。
圖5.3 首頁運(yùn)行圖
BlogMainAction類的具體實(shí)現(xiàn)代碼如下:
public class BlogMainAction extends ActionSupport implements
ServletRequestAware {
protected HttpServletRequest request;
private ObjectDao
62、ectDao
63、where 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 (se
64、lect account from UserInfo where freeze='解凍') order by visit desc"; }
public String BlogMain() {
// 以下上判斷博客推薦
List
65、ned", userCommned);
// 以下是熱門博客
List
66、queryListObject(hql_article_commend);
if (articleCommend.size() > 5) {
articleCommend = articleCommend.subList(0, 5);
}
request.setAttribute("articleCommend", articleCommend);
// 以下是熱門文章
List
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版小學(xué)數(shù)學(xué)二年級(jí)下冊(cè)《總復(fù)習(xí)圖形的運(yùn)動(dòng)》ppt課件
- 鉆石小鳥電子商務(wù)案例分析x
- 貴州專版201x中考語文復(fù)習(xí)第二輪古詩文閱讀專題十文言文閱讀專項(xiàng)訓(xùn)練二課外古詩詞賞析課件
- 計(jì)算機(jī)發(fā)展簡史
- 五年級(jí)最小公倍數(shù)
- 分?jǐn)?shù)除法應(yīng)用題(一)1
- 人教版小學(xué)科學(xué)三年級(jí)《空氣占據(jù)空間嗎》
- 腹腔鏡脾切除技巧探討
- 水下溷凝土的灌注
- 主題班會(huì)關(guān)注小環(huán)境共享大健康
- 章引言數(shù)字圖像處理
- 學(xué)情通報(bào)會(huì)二課件
- 醫(yī)療企業(yè)組織氣氛建設(shè)方案分析
- 數(shù)據(jù)中心供配電系統(tǒng)概述
- 小學(xué)三年級(jí)口算題卡課件