613352377畢業(yè)設(shè)計(jì)(論文)基于JAVA的Weblog 網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
《613352377畢業(yè)設(shè)計(jì)(論文)基于JAVA的Weblog 網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《613352377畢業(yè)設(shè)計(jì)(論文)基于JAVA的Weblog 網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)(61頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、邵陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文)第1章 緒論現(xiàn)代科技日新月異,人們可以從很多途徑獲得信息,訪問(wèn)WEB LOG成為一種很重要的獲取信息的方式。博客一詞開(kāi)始代表著數(shù)字生活新時(shí)尚,通過(guò)文字、圖片、聲音、視頻、無(wú)線等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, Share me,人人都可以博客,人人都需要博客。1.1項(xiàng)目開(kāi)發(fā)背景“博客”一詞是從英文單詞Blog翻譯而來(lái)。Blog是Weblog的簡(jiǎn)稱(chēng),而Weblog則是由Web和Log兩個(gè)英文單詞組合而成。Weblog就是在網(wǎng)絡(luò)上發(fā)布和閱讀的流水記錄,通常稱(chēng)為“網(wǎng)絡(luò)日志”,簡(jiǎn)稱(chēng)為“網(wǎng)志”。它是繼Email、BBS、IM之后出現(xiàn)的第四種全新
2、的網(wǎng)絡(luò)交流方式。它絕不僅僅是一種單向的發(fā)布系統(tǒng),而且有著極其出色的交流功能。另外Blog也提供了非常方便實(shí)用的個(gè)性化功能。簡(jiǎn)言之,Blog就是以網(wǎng)絡(luò)作為載體,簡(jiǎn)易迅速便捷地發(fā)布自己的心得,及時(shí)有效輕松地與他人進(jìn)行交流,再集豐富多彩的個(gè)性化展示于一體的綜合性平臺(tái)。是一種通常由個(gè)人管理、不定期張貼新的文章、圖像或視頻的網(wǎng)站。博客上的文章通常根據(jù)張貼時(shí)間,以倒序方式由新到舊排列。許多博客專(zhuān)注在特定的課題上提供評(píng)論或新聞,其他則被作為比較個(gè)人的日記。一個(gè)典型的博客結(jié)合了文字、圖像、其他博客或網(wǎng)站的鏈接、及其它與主題相關(guān)的媒體。能夠讓讀者以互動(dòng)的方式留下意見(jiàn),是許多博客的重要要素。大部分的博客內(nèi)容以文字
3、為主,仍有一些博客專(zhuān)注在藝術(shù)、攝影、視頻、音樂(lè)、播客等各種主題。博客是社會(huì)媒體網(wǎng)絡(luò)的一部分。1.2項(xiàng)目開(kāi)發(fā)目的與意義目的:提供一個(gè)互聯(lián)網(wǎng)平臺(tái)的個(gè)人信息的交流中心,讓每個(gè)人零成本、零維護(hù)地創(chuàng)建自己的網(wǎng)絡(luò)媒體,從而達(dá)到共享資料與交流信息的目的。意義:隨著網(wǎng)絡(luò)的普及,無(wú)論是政府機(jī)關(guān)、大中小型企業(yè)、醫(yī)院、銀行、乃至個(gè)人都需要通過(guò)網(wǎng)絡(luò)達(dá)到共享與交流的目的。能最大化的達(dá)到交流的目的就要建立自己的門(mén)戶(hù)網(wǎng)站,所以就形成了現(xiàn)在形形色色的網(wǎng)站了。對(duì)于個(gè)人而言,雖然信息量比較小,共享與交流卻是必須的,但是不可能人人自掏腰包來(lái)建立網(wǎng)站,由于這種種因素孕育了博客網(wǎng)站的誕生。就一個(gè)普通人來(lái)說(shuō),他不需要一個(gè)網(wǎng)站只需要一個(gè)網(wǎng)
4、頁(yè)來(lái)展示他的信息,保存他的一些資料,博客網(wǎng)站就是一個(gè)由眾多用戶(hù)網(wǎng)頁(yè)頁(yè)面形成的網(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(全稱(chēng)JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)和許多公司參與共同建立的一種使軟件開(kāi)發(fā)者可以響應(yīng)客戶(hù)端請(qǐng)求,而動(dòng)態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁(yè)的技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是以Java語(yǔ)言作為腳本語(yǔ)言的,JSP網(wǎng)頁(yè)為整個(gè)服務(wù)器端的Java庫(kù)單元提供了一個(gè)接口來(lái)服務(wù)于HT
5、TP的應(yīng)用程序。JSP使Java代碼和特定的預(yù)定義動(dòng)作可以嵌入到靜態(tài)頁(yè)面中。JSP句法增加了被稱(chēng)為JSP動(dòng)作的XML標(biāo)簽,它們用來(lái)調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標(biāo)簽庫(kù),然后像使用標(biāo)準(zhǔn)HTML或XML標(biāo)簽一樣使用它們。標(biāo)簽庫(kù)提供了一種和平臺(tái)無(wú)關(guān)的擴(kuò)展服務(wù)器性能的方法。JSP被JSP編譯器編譯成Java Servlets。一個(gè)JSP編譯器可以把JSP編譯成JAVA代碼寫(xiě)的servlet然后再由JAVA編譯器來(lái)編譯成機(jī)器碼,也可以直接編譯成二進(jìn)制碼。從架構(gòu)上說(shuō),JSP可以被看作是從Servlets高級(jí)提煉而作為JAVA Servlet 2.1 API的擴(kuò)展而應(yīng)用。Servlets和JSPs最早都
6、是由Sun Microsystems(升陽(yáng)公司)開(kāi)發(fā)的。從JSP1.2版本以來(lái),JSP處于Java Community Process開(kāi)發(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語(yǔ)言的網(wǎng)頁(yè)技術(shù),所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶(hù)端的僅是得到的結(jié)果,與客戶(hù)端的瀏覽器無(wú)關(guān)。在傳統(tǒng)的網(wǎng)頁(yè)中加入Java代碼和JSP標(biāo)簽之后放在服務(wù)器端運(yùn)行,再將運(yùn)行的結(jié)果向用戶(hù)發(fā)布,用戶(hù)通過(guò)瀏覽器
7、就能夠看到精彩紛呈的網(wǎng)頁(yè)了。也可以簡(jiǎn)單的理解為:HTML+Java程序片段+JSP標(biāo)記 = JSP網(wǎng)頁(yè)。容器在遇到JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的Java代碼,通過(guò)這些Java代碼可以操作數(shù)據(jù)庫(kù)、發(fā)送Email、傳輸數(shù)據(jù)信息以及轉(zhuǎn)到另外的網(wǎng)頁(yè)等。然后服務(wù)器將執(zhí)行完代碼后所產(chǎn)生的結(jié)果封裝到原HTML網(wǎng)頁(yè)中,以HTML的格式返回給用戶(hù),這就是JSP網(wǎng)頁(yè)的運(yùn)行原理 13。通過(guò)JSP的運(yùn)行原理,我們可以得到如下的JSP執(zhí)行過(guò)程:圖1.1 JSP執(zhí)行原理圖JSP技術(shù)的優(yōu)勢(shì):(1)一次編寫(xiě),到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺(tái)支持。基本上可以在
8、所有平臺(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見(jiàn)的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下 6。JSP轉(zhuǎn)譯成Servlet有以下幾個(gè)方法:(1) jspInit()在JSP頁(yè)面初始化時(shí)被
9、調(diào)用。可以覆蓋該方法,以提供任何的初始化工作;(2) jspDestroy()在JSP頁(yè)面被銷(xiāo)毀時(shí)調(diào)用??梢愿采w該方法,以提供任何的JSP清楚工作;(3) jspService()由容器自動(dòng)定義,不應(yīng)當(dāng)提供該方法的實(shí)現(xiàn) 。JSP的頁(yè)面內(nèi)容包括:(1) 靜態(tài)內(nèi)容HTML靜態(tài)文本;(2) 指令;(3) 表達(dá)式;(4) Scriptlet;(5) 聲明;(6) 動(dòng)作以“ jsp: 動(dòng)作名 ”開(kāi)始,以“ ” ;(7) 注釋?zhuān)?16。1.3.2腳本語(yǔ)言的簡(jiǎn)介(1)HTML語(yǔ)言超文本置標(biāo)語(yǔ)言(英文:HyperText Markup Language,簡(jiǎn)稱(chēng)為HTML)是為“網(wǎng)頁(yè)創(chuàng)建和其它可在網(wǎng)頁(yè)瀏覽器中看到
10、的信息”設(shè)計(jì)的一種置標(biāo)語(yǔ)言。HTML被用來(lái)結(jié)構(gòu)化信息例如標(biāo)題、段落和列表等等,也可用來(lái)在一定程度上描述文檔的外觀和語(yǔ)義。由蒂姆伯納斯-李給出原始定義,由IETF用簡(jiǎn)化的SGML(標(biāo)準(zhǔn)通用置標(biāo)語(yǔ)言)語(yǔ)法進(jìn)行進(jìn)一步發(fā)展的HTML,后來(lái)成為國(guó)際標(biāo)準(zhǔn),由萬(wàn)維網(wǎng)聯(lián)盟(W3C)維護(hù)。包含HTML內(nèi)容的文件最常用的擴(kuò)展名是.html,但是像DOS這樣的舊操作系統(tǒng)限制擴(kuò)展名為最多三個(gè)字符,所以.htm擴(kuò)展名也被使用。雖然現(xiàn)在使用的比較少一些了,但是.htm擴(kuò)展名仍舊普遍被支持。編者可以用任何文本編輯器或所見(jiàn)即所得的HTML編輯器來(lái)編輯HTML文件。早期的HTML語(yǔ)法被定義成較松散的規(guī)則,以有助于不熟悉網(wǎng)絡(luò)出版
11、的人采用。網(wǎng)頁(yè)瀏覽器接受了這個(gè)現(xiàn)實(shí),并且可以顯示語(yǔ)法不嚴(yán)格的網(wǎng)頁(yè)。隨著時(shí)間的流逝,官方標(biāo)準(zhǔn)漸漸趨于嚴(yán)格的語(yǔ)法,但是瀏覽器繼續(xù)顯示一些遠(yuǎn)稱(chēng)不上合乎標(biāo)準(zhǔn)的HTML。使用XML的嚴(yán)格規(guī)則的XHTML(可擴(kuò)展超文本置標(biāo)語(yǔ)言)是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ì)被顯示為較大的粗體文字。參見(jiàn)層疊樣式表(CSS)。比較常
12、用的結(jié)構(gòu)性標(biāo)記有: html元素 標(biāo)記HTML內(nèi)容的開(kāi)始和結(jié)束。 head元素 標(biāo)記HTML文件頭,包含不在正文中顯示的關(guān)鍵字、標(biāo)題、腳本等等。 title元素 標(biāo)記HTML文件的標(biāo)題。 body元素 標(biāo)記HTML文件正文的開(kāi)始和結(jié)束。 (2)Javascript語(yǔ)言Javascript是一種由Netscape的LiveScript發(fā)展而來(lái)的原型化繼承的面向?qū)ο蟮膭?dòng)態(tài)類(lèi)型的區(qū)分大小寫(xiě)的客戶(hù)端腳本語(yǔ)言,主要目的是為了解決服務(wù)器端語(yǔ)言,比如Perl,遺留的速度問(wèn)題,為客戶(hù)提供更流暢的瀏覽效果。當(dāng)時(shí)服務(wù)端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,由于網(wǎng)絡(luò)速度相當(dāng)緩慢,只有28.8kbps,驗(yàn)證步驟浪費(fèi)的時(shí)間太多。于是Ne
13、tscape的瀏覽器Navigator加入了Javascript,提供了數(shù)據(jù)驗(yàn)證的基本功能。總體來(lái)說(shuō)JavaScript 是屬于網(wǎng)絡(luò)的腳本語(yǔ)言,被數(shù)百萬(wàn)計(jì)的網(wǎng)頁(yè)用來(lái)改進(jìn)設(shè)計(jì)、驗(yàn)證表單、檢測(cè)瀏覽器、創(chuàng)建cookies,以及更多的應(yīng)用,是因特網(wǎng)上最流行的腳本語(yǔ)言,而且簡(jiǎn)單易用。JavaScript的組成:1) 核心(ECMAScript)2) 文檔對(duì)象模型(DOM) 3) 瀏覽器對(duì)象模型(BOM)JavaScript的知識(shí)結(jié)構(gòu):1) 語(yǔ)法基礎(chǔ)a) 數(shù)據(jù)類(lèi)型,強(qiáng)制數(shù)據(jù)類(lèi)型轉(zhuǎn)換b) 變量,函數(shù)c) 運(yùn)算符d) 條件,循環(huán)語(yǔ)句2) 核心對(duì)象數(shù)組對(duì)象,字符串對(duì)象,數(shù)學(xué)對(duì)象,日期對(duì)象,自定義對(duì)象。3) 瀏覽
14、器對(duì)象Window、 document、 location、 history 、form對(duì)象 、表單元素對(duì)象 2。JavaScript嵌入網(wǎng)頁(yè)的方法:1) 使用 標(biāo)簽將語(yǔ)句嵌入文檔。2) 將外部JavaScript 源文件鏈接到 html文檔中??墒苟鄠€(gè)網(wǎng)頁(yè)共享一個(gè)腳本文件內(nèi)的代碼。一般在其中定義一系列在多個(gè)網(wǎng)頁(yè)中都可能要用到的函數(shù)3) 作為網(wǎng)頁(yè)元素的事件處理程序,當(dāng)事件觸發(fā)時(shí)自動(dòng)運(yùn)行。1.4 編程工具簡(jiǎn)介1.4.1MyEclipse簡(jiǎn)介MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱(chēng)Myclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用
15、它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類(lèi):1. JavaEE模型2. WEB開(kāi)發(fā)工具3. EJB開(kāi)發(fā)工具4. 應(yīng)用程序服務(wù)器的連接器5. JavaEE項(xiàng)目部署服務(wù)6. 數(shù)據(jù)庫(kù)服務(wù)7. MyEclipse整合幫助對(duì)于以上每一種功能上的類(lèi)別,在Eclipse中都有相應(yīng)的功能部件,并通過(guò)一系列的插件來(lái)實(shí)現(xiàn)它們。M
16、yEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)诓挥绊懫渌K的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。1.4.2SQL Server 2005數(shù)據(jù)庫(kù)簡(jiǎn)介SQL Server Express 是一個(gè)免費(fèi)、易用且便于管理的數(shù)據(jù)庫(kù)。SQL Server Express 與 Microsoft Visual Studio 2005 集成在一起,可以輕松開(kāi)發(fā)功能豐富、存儲(chǔ)安全、可快速部署的數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序。SQL Server Express 是免費(fèi)的,可以再分發(fā)(受制于協(xié)議),還可以起到客戶(hù)端數(shù)據(jù)庫(kù)以及基本服務(wù)器數(shù)據(jù)庫(kù)的作用。SQL Server Express 是低端 ISV、低端服務(wù)器用戶(hù)、創(chuàng)建
17、 Web 應(yīng)用程序的非專(zhuān)業(yè)開(kāi)發(fā)人員以及創(chuàng)建客戶(hù)端應(yīng)用程序的編程愛(ài)好者的理想選擇。SQL Server 2005 通過(guò)在可伸縮性、數(shù)據(jù)集成、開(kāi)發(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)上 9。商業(yè)智能增強(qiáng)體現(xiàn)在以下幾個(gè)方面:1) 端到端的集成BI平臺(tái)2) 集成服務(wù)3) 分析服
18、務(wù)4) 報(bào)表服務(wù)5) Microsoft Office System的集成1.4.3Tomcat WEB服務(wù)器簡(jiǎn)介T(mén)omcat是一款優(yōu)秀的支持Web容器的服務(wù)器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心的項(xiàng)目。有Apache,SUN和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了SUN公司的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat服務(wù)器不但支持Servlet和JSP的運(yùn)行,而且還具備了作為商業(yè)Web容器的基本特征,如Tomcat管理和控制平臺(tái)、安全域管理和Tomcat閥等。Tomcat已經(jīng)成為目前開(kāi)發(fā)基于Java的Web應(yīng)用程序和最佳服務(wù)器
19、選擇之一。雖然Tomcat在執(zhí)行Web應(yīng)用程序方面表現(xiàn)出色,但是由于其不包含EJB容器,所以無(wú)法支持EJB組件的部署和運(yùn)行,但Tomcat可以與其他一些軟件集成起來(lái)實(shí)現(xiàn)更多的功能,如與JBoss服務(wù)器集成起來(lái)可以支持EJB的開(kāi)發(fā)。Tomcat不僅僅是一個(gè)J2EE的Web容器,它也是具有傳統(tǒng)的Web服務(wù)器的功能:處理HTML頁(yè)面。但是與Apache相比,它的處理靜態(tài)HTML的能力相對(duì)較差。我們可以將Tomcat和Apache集成到一起,讓Apache處理靜態(tài)HTML,而Tomcat處理JSP和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。Tomcat中的應(yīng)用程序
20、與傳統(tǒng)的桌面應(yīng)用程序不同,它是一個(gè)WAR(Web Archive)文件。WAR是SUN提出的一種Web應(yīng)用程序格式,與JAR類(lèi)似,也是許多文件的一個(gè)壓縮包。Tomcat的目錄結(jié)構(gòu)如下:bin文件夾:該文件夾中存放啟動(dòng)和關(guān)閉Tomcat服務(wù)器的文件。common文件夾:該文件夾中存放Tomcat服務(wù)器及所有Web應(yīng)用程序都可以訪問(wèn)的JAR文件和類(lèi)文件。conf文件夾:該文件夾中存放Tomcat服務(wù)器的各種配置文件。logs文件夾:該文件夾中存放Tomcat服務(wù)器的日志文件。Server文件夾:該文件夾中存放Tomcat服務(wù)器的各種后臺(tái)管理文件。Shared文件夾:該文件夾中所有Web應(yīng)用程序都可
21、以該問(wèn)的JAR文件和類(lèi)文件,但這些文件不能被Tomcat服務(wù)器所訪問(wèn)。Src文件夾:該文件夾中存放Tomcat服務(wù)器相關(guān)的源代碼。Temp文件夾:該文件夾中存放Tomcat服務(wù)器的各種臨時(shí)文件。Webapps文件夾:該文件夾中存放web應(yīng)用文件。Work文件夾:該文件夾存放JSP頁(yè)面轉(zhuǎn)換為Servlet的文件 14。- 61 -邵陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文)第2章 系統(tǒng)分析2.1系統(tǒng)概述博客,在網(wǎng)絡(luò)上發(fā)表文章、展現(xiàn)個(gè)人的個(gè)性,而博客系統(tǒng),是為這類(lèi)人群提供一個(gè)相互交流、學(xué)習(xí)的平臺(tái)。博客的兩大基本功能是共享與交流。共享,是將文章、圖片、心得等一些很私人的東西,拿出來(lái)和多數(shù)人一起分享;交流,是有這同樣興趣
22、、愛(ài)好、語(yǔ)言的一類(lèi)人之間的聯(lián)系。本系統(tǒng)主要分為:個(gè)人博客空間、個(gè)人博客管理和博客后臺(tái)管理三個(gè)部分。2.2系統(tǒng)可行性分析2.2.1經(jīng)濟(jì)價(jià)值可行性博客從2001年在國(guó)內(nèi)落地以來(lái),到2005年“中國(guó)博客元年”到來(lái),“全民博客”加上“名人博客”的火熱創(chuàng)造了驚人的點(diǎn)擊率,博客的發(fā)展具備了投放廣告的可能。博客廣告的出現(xiàn)意味著個(gè)人寫(xiě)博客有了商業(yè)價(jià)值,博客由此進(jìn)入了商業(yè)化的探索階段。本文著重于“個(gè)人博客廣告”的探討,通過(guò)分析“個(gè)人博客廣告”與傳統(tǒng)互聯(lián)網(wǎng)廣告相比的優(yōu)勢(shì),針對(duì)“個(gè)人博客廣告”面臨的問(wèn)題提出相應(yīng)的對(duì)策和建議從而得出結(jié)論:個(gè)人博客廣告的商業(yè)化發(fā)展具有可行性。既然個(gè)人博客已經(jīng)具備這么大的商業(yè)價(jià)值,作為一
23、個(gè)整體的博客系統(tǒng)的商業(yè)經(jīng)濟(jì)價(jià)值是不可限量的。2.2.2技術(shù)可行性相信這一點(diǎn)不用強(qiáng)加說(shuō)明了,現(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)需求分析通過(guò)對(duì)一些典型博客網(wǎng)站的考察、分析以及實(shí)際的市場(chǎng)調(diào)查,要求本系統(tǒng)具有以下功能:(1)系統(tǒng)個(gè)人博客前臺(tái)展示需求分析a) 用戶(hù)的注冊(cè),登錄。b) 登錄的用戶(hù)可以訪問(wèn)自己博客或者訪問(wèn)他人博客,未登錄用戶(hù)可以訪問(wèn)任意博客,當(dāng)是不計(jì)入瀏覽數(shù)。c) 進(jìn)入博客的用戶(hù)可以瀏覽文章,發(fā)表留言,瀏覽相冊(cè),查看個(gè)人資料,訪問(wèn)好友。如
24、果訪問(wèn)的是他人博客還可以添加好友,發(fā)送小紙條。(2)系統(tǒng)個(gè)人博客后臺(tái)管理需求分析a) 個(gè)人管理、文章管理。其中包括了查找、修改資料;添加、刪除文章。b) 相冊(cè)管理、好友管理。其中包括了添加、刪除、管理相冊(cè);查看、刪除好友。c) 留言管理、小紙條管理。其中包括了查看、刪除留言;查看、刪除紙條。(3)系統(tǒng)管理員后臺(tái)管理需求分析a) 用戶(hù)管理。其中包括用戶(hù)博客是否被推薦,用戶(hù)是否凍結(jié),用戶(hù)是否解凍,用戶(hù)刪除。b) 文章管理。其中包括文章列表查詢(xún),文章詳細(xì)查詢(xún),文章是否推薦,按用戶(hù)名查詢(xún)文章。c) 相冊(cè)管理。其中包括相冊(cè)的查詢(xún)、刪除。d) 修改管理員密碼。邵陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文)第3章 系統(tǒng)概要設(shè)計(jì)3
25、.1 項(xiàng)目規(guī)劃博客系統(tǒng)是一個(gè)典型的JSP數(shù)據(jù)庫(kù)開(kāi)發(fā)應(yīng)用程序,由個(gè)人博客前臺(tái)展示、個(gè)人博客管理以及博客后臺(tái)管理三部分組成。(1) 個(gè)人博客前臺(tái)展示該部分主要包括用戶(hù)的注冊(cè)、登錄、瀏覽博客各種內(nèi)容、發(fā)表留言信息、添加好友、向好友發(fā)送信息等。(2) 個(gè)人博客管理該部分主要對(duì)個(gè)人博客的一些基礎(chǔ)數(shù)據(jù)進(jìn)行有效管理,包括個(gè)人資料修改、博客內(nèi)容管理、好友的管理、留言的管理等。(3) 博客后臺(tái)管理。該部分主要是對(duì)所以注冊(cè)博客的統(tǒng)一數(shù)據(jù)進(jìn)行有效管理,包括用戶(hù)的管理、文章的管理、相冊(cè)的管理等。3.2系統(tǒng)總體構(gòu)架這個(gè)系統(tǒng)總體劃分為兩個(gè)層次:(1) Struts層:這里采用Struts2框架作為系統(tǒng)開(kāi)發(fā)的控制器組件,在
26、頁(yè)面請(qǐng)求處理流程中與struts1完全相同。它仍然是以前控制框架為主體的框架,用戶(hù)的請(qǐng)求會(huì)通過(guò)控制器選擇不同的控制器組件(即Action)來(lái)執(zhí)行不同的操作。在控制器組件中request、response和session這些servlet類(lèi)的對(duì)象仍然可以使用 5。(2) Hibernate層:這里采用hibernate3作為系統(tǒng)的開(kāi)發(fā)的模型組件,在數(shù)據(jù)儲(chǔ)存器和控制器之間加入一個(gè)持久層,該層簡(jiǎn)化CRUD數(shù)據(jù)的工作,分離應(yīng)用程序和數(shù)據(jù)庫(kù)之間的耦合,實(shí)現(xiàn)在無(wú)需修改代碼的情況下輕松更換應(yīng)用程序數(shù)據(jù)庫(kù)。Hibernate3幾乎支持所有的主流數(shù)據(jù)庫(kù),從開(kāi)源數(shù)據(jù)庫(kù)HSQLDB、MYSQL、PostareSQL
27、到強(qiáng)大企業(yè)級(jí)數(shù)據(jù)庫(kù)oracle、IBM DB2等。本系統(tǒng)采用的數(shù)據(jù)庫(kù)是時(shí)下比較適合中小型企業(yè)的數(shù)據(jù)庫(kù)SqlServer 2005。系統(tǒng)層次結(jié)構(gòu)如圖3.1所示:FilterDispacher攔截器瀏覽器Request請(qǐng)求控制器組件struts層:視圖插件response響應(yīng)持久層hibernate層:數(shù)據(jù)庫(kù)圖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)站未登錄登錄用戶(hù)他人博客自己博客任意博客用戶(hù)注冊(cè)發(fā)送紙條添加好友訪問(wèn)好友個(gè)人資料瀏覽相冊(cè)發(fā)表
28、留言瀏覽文章圖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ì)博客用戶(hù)和管理員的管理。博客后臺(tái)管理包括用戶(hù)管理、用戶(hù)文章管理、用戶(hù)相冊(cè)管理和修改管理員密碼。博客后臺(tái)管理的功能結(jié)構(gòu)圖如圖3.4所示。圖3.4 博客后臺(tái)管理功能結(jié)構(gòu)圖3.4 面向?qū)ο笤O(shè)計(jì)系統(tǒng)開(kāi)發(fā)是基于JAVA的面向?qū)ο蟮恼Z(yǔ)言進(jìn)行開(kāi)發(fā)。根據(jù)前面需求分析的模型,可建立以下類(lèi)與接口,以實(shí)現(xiàn)系統(tǒng)各模塊的功能。3.4.1 管理員模塊操作類(lèi)該模塊所涉及的類(lèi)提供了一系列的關(guān)于后天管理
29、員修改密碼、驗(yàn)證密碼、管理員退出的方法。其類(lèi)圖如圖3.5所示。圖3.5 后臺(tái)管理員類(lèi)圖3.4.2 文章模塊操作類(lèi)該模塊中的類(lèi)提供了一系列的關(guān)于管理員登陸后對(duì)文章的詳細(xì)查詢(xún),管理員登陸后對(duì)文章的列表查詢(xún),前臺(tái)文章的詳細(xì)查詢(xún),前臺(tái)文章回復(fù)內(nèi)容的詳細(xì)查詢(xún),文章的修改操作,文章的刪除操作,文章表單的校驗(yàn),文章的添加的方法。其類(lèi)圖如圖3.6所示。圖3.6 后臺(tái)管理員類(lèi)圖3.4.3 留言模塊操作類(lèi)該模塊中的類(lèi)提供了一系列的關(guān)于留言刪除、留言查詢(xún)、前臺(tái)添加留言、前臺(tái)查看留言的方法。其類(lèi)圖如圖3.7所示。圖3.7 留言模塊類(lèi)圖3.4.4 用戶(hù)信息操作類(lèi)該模塊中的類(lèi)提供了一系列的關(guān)于刪除朋友信息、后臺(tái)查詢(xún)用戶(hù)、
30、添加好友、刪除相冊(cè)類(lèi)別、修改相冊(cè)類(lèi)別名稱(chēng)、查詢(xún)并添加相片類(lèi)別信息、轉(zhuǎn)向添加文章的頁(yè)面、修改文章類(lèi)別名稱(chēng)、刪除文章類(lèi)別操作、查詢(xún)并添加類(lèi)別信息、修改用戶(hù)密碼的校驗(yàn)、修改用戶(hù)的密碼的操作、修改個(gè)人信息校驗(yàn)、修改個(gè)人信息操作、根據(jù)用戶(hù)id查詢(xún)用戶(hù)信息、根據(jù)對(duì)象進(jìn)入相應(yīng)博客、用戶(hù)登錄校驗(yàn)、用戶(hù)推薦不推薦操作、用戶(hù)凍結(jié)或解凍操作、用戶(hù)查詢(xún)功能、用戶(hù)注冊(cè)校驗(yàn)、用戶(hù)注冊(cè)、后臺(tái)用戶(hù)信息刪除操作的方法。其類(lèi)圖如圖3.8所示。圖3.8 用戶(hù)信息操作模塊類(lèi)圖3.4.5 前臺(tái)展示操作類(lèi)該模塊中的類(lèi)提供了一系列顯示推薦博客、熱門(mén)博客、推薦博客、熱門(mén)文章的方法。其類(lèi)圖如圖3.9所示。圖3.9 前臺(tái)展示操作類(lèi)圖邵陽(yáng)學(xué)院畢業(yè)
31、設(shè)計(jì)(論文)第4章 數(shù)據(jù)庫(kù)設(shè)計(jì)4.1 數(shù)據(jù)庫(kù)ER圖本系統(tǒng)的ER圖如圖4.1所示:發(fā)表管理內(nèi)容題目地址名稱(chēng)照片文章類(lèi)別訪問(wèn)量QQ性別職業(yè)電話主頁(yè)名稱(chēng)用戶(hù)Email真實(shí)姓名密碼用戶(hù)名1類(lèi)別管理員管理11NN1圖4.1 數(shù)據(jù)庫(kù)ER圖4.2 數(shù)據(jù)庫(kù)物理設(shè)計(jì)本系統(tǒng)的物理設(shè)計(jì)如圖4.2所示:圖4.2 數(shù)據(jù)庫(kù)物理設(shè)計(jì)關(guān)系圖4.3 數(shù)據(jù)庫(kù)圖表設(shè)計(jì)表4.1 管理員信息表(tb_admin)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空是否主鍵默認(rèn)值描述idint否NULL系統(tǒng)編號(hào)accountvarchar(50)否NULL管理員賬號(hào)passwordvarchar(50)否NULL管理員密碼表4.2 用戶(hù)信息表(tb_userInf
32、o)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空是否主鍵默認(rèn)值描述idint(4)否NULL系統(tǒng)編號(hào)accountvarchar(50)否是NULL用戶(hù)名passwordvarchar(40)否NULL密碼Realnamevarchar(10)否NULL真實(shí)姓名emailvarchar(50)否NULLEmail地址Sexvarchar(50)否NULL性別Telvarchar(50)否NULL聯(lián)系電話Professionvarchar(50)否NULL職業(yè)名稱(chēng)Addressvarchar(50)否NULL聯(lián)系地址Homepagevarchar(50)是空字符串主頁(yè)名稱(chēng)qqvarchar(50)否NULLQQ號(hào)碼
33、Headgifvarchar(50)是空字符串頭像地址Freezevarchar(10)是空字符串是否凍結(jié)Art_typevarchar(100)是空字符串文章類(lèi)別Pic_typevarchar(100)是空字符串相片類(lèi)別Friend_typevarchar(50)是空字符串好友名稱(chēng)Commendvarchar(50)是空字符串是否推薦Vistorint(4)是0訪問(wèn)次數(shù)Selfvarchar(50)是空字符串自我評(píng)價(jià)表4.3 文章回復(fù)信息表(tb_reArticle)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空是否主鍵默認(rèn)值描述idint(4)否是NULL系統(tǒng)編號(hào)Re_idint(4)否NULL回復(fù)人IDacc
34、ountvarchar(50)否NULL回復(fù)人文章Contentvarchar(3000)否NULL回復(fù)內(nèi)容Re_timevarchar(50)否NULL回復(fù)時(shí)間表4.4 留言信息表(tb_info)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空是否主鍵默認(rèn)值描述idint(4)否NULL系統(tǒng)編號(hào)Info_accountvarchar(50)否NULL發(fā)送信息人Info_fromaccountvarchar(50)否NULL接受信息人Info_contentvarchar(300)否NULL發(fā)送內(nèi)容Info_signint(4)否NULL留言標(biāo)識(shí)表4.5 相冊(cè)信息表(tb_photo)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空是否主
35、鍵默認(rèn)值描述idint(4)否是NULL系統(tǒng)編號(hào)photoTypevarchar(50)否NULL相片類(lèi)別photoNamevarchar(50)否NULL相片名稱(chēng)photoAddressvarchar(300)否NULL相片地址photoVisitint(4)否NULL訪問(wèn)量authorvarchar(50)否NULL發(fā)布者表4.6 文章表(tb_article)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空是否主鍵默認(rèn)值描述idint(4)否是NULL系統(tǒng)編號(hào)typeNamevarchar(50)否類(lèi)型名稱(chēng)Titlevarchar(50)否文章題目Contentvarchar(300)否文章內(nèi)容Authorva
36、rchar(50)否文章作者sendTimevarchar(50)否發(fā)表時(shí)間Visitint否訪問(wèn)量commendvarchar(10)否是否推薦第5章 詳細(xì)設(shè)計(jì)5.1 系統(tǒng)流程設(shè)計(jì)個(gè)人博客前臺(tái)管理系統(tǒng)流程圖如圖5.1所示。個(gè)人博客前臺(tái)校驗(yàn)用戶(hù)注冊(cè)是否成功校驗(yàn)用戶(hù)登陸是否成功NNYY用戶(hù)已經(jīng)登陸訪問(wèn)他人博客訪問(wèn)自己博客文章瀏覽熱門(mén)文章瀏覽留言查詢(xún)個(gè)人資料查詢(xún)添加好友相冊(cè)瀏覽類(lèi)別查詢(xún)文章好友查詢(xún)?cè)L問(wèn)好友博客發(fā)送紙條進(jìn)入后臺(tái)管理紙條管理好友管理相冊(cè)管理留言管理文章管理圖5.1 個(gè)人博客前臺(tái)管理系統(tǒng)流程圖個(gè)人博客管理員后臺(tái)管理系統(tǒng)流程圖如圖5.2所示。個(gè)人博客管理員后臺(tái)管理文章管理圖片管理修改管理員
37、密碼退出后臺(tái)用戶(hù)管理校驗(yàn)管理員是否登錄成功管理員登錄后臺(tái)頁(yè)面圖5.2 個(gè)人博客管理員后臺(tái)管理系統(tǒng)流程圖5.2 公共模塊設(shè)計(jì)5.2.1 編寫(xiě)Hibernate數(shù)據(jù)庫(kù)配置文件Hibernate配置文件主要用于配置數(shù)據(jù)庫(kù)連接和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)鍵代碼如下:!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ù)庫(kù)持久化類(lèi)的編寫(xiě)本系統(tǒng)中使用的數(shù)據(jù)庫(kù)持久化類(lèi)的名稱(chēng)為ObjectDao。本系統(tǒng)使用了Hibernate和struts2框架的整合技術(shù),在編寫(xiě)數(shù)據(jù)持
39、久化類(lèi)的代碼中,分別定義了SessionFactory類(lèi),Session類(lèi)和Transaction類(lèi)的屬性,然后通過(guò)靜態(tài)方法取得對(duì)數(shù)據(jù)庫(kù)的連接操作,最后根據(jù)連接對(duì)象分別實(shí)現(xiàn)對(duì)數(shù)據(jù)表的添加、修改、刪除和查詢(xún)操作。1、獲取數(shù)據(jù)庫(kù)的連接通過(guò)靜態(tài)方法創(chuàng)建數(shù)據(jù)庫(kù)連接的代碼如下: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();對(duì)上述方法代碼的說(shuō)明如下:SessionFactory接口:初始化Hibernate充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,創(chuàng)建Session類(lèi)的對(duì)象。一個(gè)SessionFactory類(lèi)的對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)存儲(chǔ)源,該數(shù)據(jù)源從SessionFactory對(duì)象獲取。SessionFactory接口需要一個(gè)很大的緩存,用來(lái)存放預(yù)定義的SQL語(yǔ)句以及映射元數(shù)據(jù)。用戶(hù)還
41、可以為SessionFactory接口配置一個(gè)緩存插件,這個(gè)緩存插件通常被稱(chēng)為Hibernate的第二級(jí)緩存,該緩存用來(lái)存放被操作單元讀過(guò)的數(shù)據(jù),將來(lái)其他操作單元可能會(huì)重用這些數(shù)據(jù),因此這個(gè)緩存中的數(shù)據(jù)能夠被所有單元共享。一個(gè)工作單元對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)事務(wù)。Session接口:Session接口是Hibernate應(yīng)用使用最廣泛的接口。Session通常也稱(chēng)為持久化管理器,它提供了和持久化相關(guān)的操作,如添加、修改、刪除、加載及查詢(xún)對(duì)象。Transaction接口:Transaction接口是Hibernate的數(shù)據(jù)庫(kù)事務(wù)接口,它對(duì)底層的事務(wù)接口做了封裝,底層事務(wù)接口包括JDBC API、JTA、C
42、ORBA API。Hibernate應(yīng)用可通過(guò)一致的Transaction接口來(lái)聲明事務(wù)邊界,這有助于應(yīng)用在不同的環(huán)境或容器中移植。Configuration接口:Configuration接口用于配置并且跟蹤啟動(dòng)Hibernate。Hibernate應(yīng)用通過(guò)Configuration實(shí)例來(lái)指定對(duì)象關(guān)系映射文件的位置或者動(dòng)態(tài)配置Hibernate的屬性,然后創(chuàng)建SessionFactory實(shí)例。2、刪除數(shù)據(jù)刪除數(shù)據(jù)操作的方法名稱(chēng)為deleteT。在該方法中,以T對(duì)象類(lèi)型為參數(shù),執(zhí)行Session類(lèi)中的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ù)操作的方法名稱(chēng)為saveT。在該方法中,以T對(duì)象類(lèi)型為參數(shù),執(zhí)行Session類(lèi)中的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語(yǔ)句。只有當(dāng)Session清理緩存時(shí)才會(huì)執(zhí)行SQL中insert語(yǔ)句。當(dāng)Session清理緩存時(shí),才會(huì)執(zhí)行SQL中insert語(yǔ)句。如果在save()之后,又修
45、改持久化對(duì)象的屬性,這會(huì)使得Session在清理緩存時(shí),額外執(zhí)行SQL中update語(yǔ)句。4、修改數(shù)據(jù)修改數(shù)據(jù)操作的方法名稱(chēng)為updateT。在該方法中,以T對(duì)象類(lèi)型為參數(shù),執(zhí)行Session類(lèi)中的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、查詢(xún)多條數(shù)據(jù)查詢(xún)多組數(shù)據(jù)的方法名稱(chēng)為queryList。該方法以參數(shù)String類(lèi)型對(duì)象hql為條件,調(diào)用Session類(lèi)中的createQuery()來(lái)實(shí)現(xiàn)查詢(xú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、查詢(xún)單條數(shù)據(jù)查詢(xún)單條數(shù)據(jù)的方法名稱(chēng)為queryFrom。該方法以參數(shù)String類(lèi)型對(duì)象hql為條件,調(diào)用Session類(lèi)中的createQuery()來(lái)實(shí)現(xiàn)查詢(xún)功能。并將查詢(xún)結(jié)果返回給Query類(lèi)的query對(duì)象,最后通過(guò)該對(duì)象調(diào)用uniqueResult方法,實(shí)現(xiàn)查詢(xú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、在查詢(xún)結(jié)果中返回指定數(shù)據(jù)在查詢(xún)結(jié)果中返回指定數(shù)據(jù)的方法名稱(chēng)為queryList。該方法存在三個(gè)參數(shù):hql參數(shù)對(duì)象表示查詢(xún)的HQL語(yǔ)句;showNumber參數(shù)變量表示查詢(xún)的條數(shù);begi
49、nNumber參數(shù)變量表示查詢(xún)的起始位置數(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è)計(jì)5.3.1 主界面模塊設(shè)計(jì)訪問(wèn)博客程序時(shí),首先進(jìn)入博客主界面。在該頁(yè)面包括的功能是導(dǎo)航區(qū)、推薦博客、推薦文章、熱門(mén)博客、熱門(mén)文章、主頁(yè)信息及其版權(quán)信息區(qū)。在本系統(tǒng)中,首頁(yè)操作的struts2實(shí)現(xiàn)類(lèi)名稱(chēng)為BlogMainAction。該類(lèi)繼承了ActionSupport類(lèi)并實(shí)現(xiàn)了類(lèi)ServletRequestAware接口,通過(guò)該接口的setServletRequest方法獲取Web應(yīng)用中的request對(duì)象。網(wǎng)站首頁(yè)面運(yùn)行結(jié)果如圖5.3所示。
51、圖5.3 首頁(yè)運(yùn)行圖BlogMainAction類(lèi)的具體實(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);/ 以下是熱門(mén)博客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);/ 以下是熱門(mén)文章List articleVistor = articleDao.queryListObject(hql_article_vistor);if (articleVistor.size() 5) articleVistor = articleVistor.subList(0, 5);request.setA
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高三一輪復(fù)習(xí)生物變異在育種中的應(yīng)用課件
- 高一物理生活中的圓周運(yùn)動(dòng)課件
- 食品細(xì)菌類(lèi)污染課件
- 采用平行結(jié)轉(zhuǎn)分步法核算產(chǎn)品成本概述
- 第8講--進(jìn)出口稅的納稅籌劃
- 第8章+單服務(wù)臺(tái)排隊(duì)系統(tǒng)仿真
- 53第5章第3節(jié)假設(shè)檢驗(yàn)課件
- 態(tài)度決定高度--希望就在行動(dòng)
- PEP小學(xué)四年級(jí)英語(yǔ)上冊(cè)_教材解析
- 江蘇造價(jià)員考試真題-基礎(chǔ)理論
- 遠(yuǎn)程教育把俺引上致富路ppt(精品)
- 早期離開(kāi)企業(yè)人員社保問(wèn)題 正在職演示文稿
- word中圖形對(duì)象的插入與排版
- 出行禮儀與安全PPTPPT課件
- MBA-專(zhuān)業(yè)管理課程