畢業(yè)設(shè)計(jì)(論文)基于J2EE的博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
畢業(yè)設(shè)計(jì)(論文)基于J2EE的博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
畢業(yè)設(shè)計(jì)(論文)基于J2EE的博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
畢業(yè)設(shè)計(jì)(論文)基于J2EE的博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
畢業(yè)設(shè)計(jì)(論文)基于J2EE的博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)目 錄前 言1第1章技術(shù)背景31.1方案分析31.2開發(fā)工具31.2.1jsp簡介31.2.2mysql簡介41.2.3tomcat簡介41.2.4myeclipse簡介41.2.5mvc簡介51.2.6struts 2簡介61.2.7hibernate簡介7第2章需求分析82.1功能分析82.1.1系統(tǒng)概述82.1.2基本功能要求82.1.3用戶分析82.1.4功能詳細(xì)說明92.2性能要求112.3運(yùn)行環(huán)境要求112.3.1硬件環(huán)境122.3.2軟件環(huán)境12第3章總體設(shè)計(jì)133.1功能模塊劃分133.2數(shù)據(jù)庫設(shè)計(jì)133.2.1person用戶表143.2.2sp

2、ace空間信息表153.2.3post日志表153.2.4category分類表163.2.5reply日志評論表163.2.6comment留言表163.2.7link超鏈接表173.3系統(tǒng)架構(gòu)173.4系統(tǒng)運(yùn)行機(jī)制18第4章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)204.1類的設(shè)計(jì)與實(shí)現(xiàn)204.1.1java bean類的設(shè)計(jì)204.1.2通用類的設(shè)計(jì)214.2數(shù)據(jù)庫與hibernate配置224.3struts 2配置224.4模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)234.4.1登錄與注冊模塊234.4.2日志管理模塊244.4.3日志評論模塊304.4.4分類模塊314.4.5留言模塊334.5系統(tǒng)配置34第5章結(jié) 論36參考

3、文獻(xiàn)38致 謝39ii摘 要多用戶博客系統(tǒng)是一個(gè)以文章形式來發(fā)布自己所見、所得、所聞、體會(huì)等的互聯(lián)網(wǎng)信息發(fā)布系統(tǒng),類似個(gè)人網(wǎng)站。多用戶博客系統(tǒng)是支持多用戶注冊和管理的信息發(fā)布系統(tǒng)。本文以博客日志發(fā)布管理為基礎(chǔ),并結(jié)合其實(shí)際需求,詳細(xì)敘述了多用戶博客系統(tǒng)設(shè)計(jì)、開發(fā)的全過程。本系統(tǒng)主要功能包括博客的日志發(fā)布、分類和評論等。開發(fā)過程中,采用了mvc分層思想,運(yùn)用了當(dāng)今比較流行的web前端開發(fā)技術(shù)javascript等。本系統(tǒng)基于b/s架構(gòu),采用java為開發(fā)語言、mysql為數(shù)據(jù)庫,tomcat為服務(wù)器并結(jié)合功能強(qiáng)大的開源框架struts 2和hibernate為開發(fā)框架,從而保證了整個(gè)系統(tǒng)穩(wěn)定、快

4、速、高效的運(yùn)行。關(guān)鍵詞:博客,mvc,b/s,穩(wěn)定性39abstractmulti-user blog system is one of the articles form to publish their own findings obtained, the smell, experience and other internet information release system, similar to the personal website. multi-user blog system is an information release system to support mult

5、i-user registration and management.in this paper, based on post publishing and management, combined with their actual requirement, detailed description of the multi-user blog system design and development at the entire process. the main features include post publish, category and comments, etc. in t

6、he development process, using the mvc layered thinking, the use of today's popular web front-end development technologies javascript, etc.the system is based on b / s structure, to use java language,mysql database and tomcat server. combined with a powerful open-source java framework for struts

7、2 and hibernate as a development framework, thus ensuring the entire system is stable, fast, and efficient.key words: blog, mvc, b/s, stable前 言隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展和日益的普及,互聯(lián)網(wǎng)用戶迅速增加,用戶對互聯(lián)網(wǎng)的寄托也發(fā)生了翻天覆地的變化,用戶不甘于只單單的被動(dòng)的接受互聯(lián)網(wǎng)提供的內(nèi)容,更希望能夠加入到內(nèi)容制造的大家庭中,這時(shí)傳統(tǒng)的web應(yīng)用已經(jīng)顯得力不從心,而web 2.0的出現(xiàn),極大的改變了這一局面。所謂web 2.0其核心就是用戶不只是內(nèi)容的被動(dòng)

8、瀏覽者,同時(shí)也是內(nèi)容的制造者。正是因?yàn)檎麄€(gè)互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)理念的重大變化,具有代表性的web 2.0時(shí)代的互聯(lián)網(wǎng)產(chǎn)品也就相繼出現(xiàn),如:論壇,博客、威客,社區(qū)、rss和sns等。博客也稱為網(wǎng)絡(luò)日志,是blog的諧音,由很多經(jīng)常更新的帖子(也叫日志或者個(gè)人文章)順序倒序排列,最新的帖子在最上面,這些帖子的內(nèi)容不一定要長篇大論,具體內(nèi)容格式也沒有任何要求,它以個(gè)人純粹的個(gè)人想法和心得,包括你對時(shí)事新聞、國家大事的個(gè)人看法,或者一日三餐、服飾打扮的精心料理等,也可以是在基于某一主題的情況下或者是在某一共同領(lǐng)域內(nèi)由一群人集體創(chuàng)作的內(nèi)容。類似于傳統(tǒng)的“網(wǎng)絡(luò)日志”,但又不同于傳統(tǒng)的“網(wǎng)絡(luò)日志“,傳統(tǒng)的”網(wǎng)絡(luò)日

9、志“是帶有顯示的私人性質(zhì)的,而博客則是私人性和公共性的有效結(jié)合,絕不僅僅是純粹個(gè)人思想的表達(dá)和日?,嵤碌挠涗洠峁┑膬?nèi)容可以用來進(jìn)行交流和為他人提供幫助,是可以包容事個(gè)互聯(lián)網(wǎng)的,具有極高的共享精神和價(jià)值。博客還有個(gè)最大的特點(diǎn)是可以圖文并茂的描述一件事,在文字、圖片和視頻等的共同描述下,使得內(nèi)容更加生動(dòng)形象。博客由2000年悄然進(jìn)入中國,隨后得到迅速發(fā)展,但業(yè)績平平,直到2004年由于某一事件,才讓民眾了解博客,并運(yùn)用博客。2005年,財(cái)大氣粗的原本不看好博客的幾大門戶,也加入到博客的春秋戰(zhàn)國時(shí)代,開始了你死我活的拼殺。web 2.0和傳統(tǒng)web 1.0應(yīng)用相比,有一個(gè)非常顯著的特點(diǎn),即:實(shí)

10、時(shí)性和較高的交互性,正是因?yàn)檫@一實(shí)時(shí)性和較高的交互性,傳統(tǒng)的互聯(lián)網(wǎng)開發(fā)技術(shù)也面臨的嚴(yán)峻的挑戰(zhàn)。在傳統(tǒng)的應(yīng)用中,內(nèi)容一旦發(fā)布,基本不會(huì)更新,為了減少服務(wù)器的的負(fù)載,一般會(huì)將內(nèi)容歸檔成靜態(tài)文件(后綴為.html的文件)存在磁盤中,并根據(jù)內(nèi)容在數(shù)據(jù)庫中的唯一標(biāo)識號生成一個(gè)唯一的url地址。當(dāng)用戶需要查看這些內(nèi)容時(shí),直接通過所生成的唯一的url地址,經(jīng)過服務(wù)器就直接能訪問到這些內(nèi)容,服務(wù)器基本不需要花費(fèi)時(shí)間來生成這些內(nèi)容,這對于服務(wù)器軟硬件資源是一個(gè)很大的節(jié)省。而新形勢下(web2.0)的應(yīng)用,由于它的實(shí)時(shí)性和較高的交互性,就注定了不能完全采用生成靜態(tài)文件方式來解決這一問題,頁面可能會(huì)實(shí)時(shí)更新,從而需

11、要實(shí)時(shí)的請求數(shù)據(jù)庫,將所請求的內(nèi)容展現(xiàn)在用戶面前。由于數(shù)據(jù)的動(dòng)態(tài)生成。無疑會(huì)添加服務(wù)器的處理能力,在服務(wù)器端并發(fā)性一定的情況下,由于請求的用戶過多,而服務(wù)器又一時(shí)處理不過來,所請求的用戶必然會(huì)經(jīng)歷一個(gè)排隊(duì)的過程,從而使得系統(tǒng)的整體響應(yīng)時(shí)候大幅度添加,這樣的用戶體驗(yàn)也就不言而喻了。以上這些都是做一個(gè)web2.0應(yīng)用所必考慮的問題。第1章 技術(shù)背景本章將從系統(tǒng)的技術(shù)方案及與此相關(guān)的開發(fā)工具進(jìn)行說明1.1 方案分析由于博客提供了信息的實(shí)時(shí)發(fā)布,動(dòng)態(tài)展示,信息狀態(tài)的跟蹤,以及博客和瀏覽者、博客和博客之間互動(dòng)等這些高交互行為,就注定了對技術(shù)的要求會(huì)比較苛刻,必需選擇一種技術(shù)架構(gòu)成熟,穩(wěn)定性好,執(zhí)行效率高

12、、經(jīng)濟(jì)實(shí)惠的解決方案??v觀各種解決方案,最終選擇java作為博客系統(tǒng)的技術(shù)路線。本系統(tǒng)以java為技術(shù)路線,結(jié)合以javaee為基礎(chǔ)的綜合開發(fā)平臺myeclipse,開源數(shù)據(jù)庫mysql和開源服務(wù)器tomcat,技術(shù)框架主要采用當(dāng)今流行的struts2和hibernate。它們都是各自獨(dú)立的程序,但是因?yàn)殚L期的放在一起使用,擁有越來越高的兼容性,共同組建了一個(gè)強(qiáng)大的web應(yīng)用開發(fā)平臺。其中mysql,tomcat,struts2和hibernate均為開源免費(fèi)的軟件,由于他們的開源,標(biāo)志著任何人都可以無償?shù)拿赓M(fèi)使用它們,也意味著越來越多的開發(fā)者加入到其中,無償?shù)姆瞰I(xiàn)他們的智慧,使得軟件的效率和

13、性能得到很大程度的提高。因此,javaee是當(dāng)今比較強(qiáng)大的互聯(lián)網(wǎng)解決方案。1.2 開發(fā)工具本系統(tǒng)以javaee為解決方案,javaee不只是穩(wěn)定性好,效率高和開源免費(fèi),它還有一個(gè)更重要的特點(diǎn),那就是運(yùn)行平臺無關(guān)性。它除了能運(yùn)行在windows操作系統(tǒng)上外,還能運(yùn)行在linux,蘋果等操作系統(tǒng)上,真正做到一處開發(fā),多處運(yùn)行。綜合各方面因素,最終決定在windows操作系統(tǒng)上進(jìn)行開發(fā)。本系統(tǒng)采用現(xiàn)今流行的mvc設(shè)計(jì)模式,從而使整個(gè)系統(tǒng)的架構(gòu)更加清晰。為了提高客戶端的用戶體驗(yàn),系統(tǒng)中還會(huì)借助客戶端技術(shù)javascript腳本語言等相關(guān)技術(shù)。以下為各自的介紹。1.2.1 jsp簡介jsp(java s

14、erver pages) 1是由sun microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。 jsp技術(shù)有點(diǎn)類似asp技術(shù),它是在傳統(tǒng)的網(wǎng)頁html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp標(biāo)記(tag),從而形成jsp文件(*.jsp)。用jsp開發(fā)的web應(yīng)用是跨平臺的,既能在linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 總的來說,它具有以下幾個(gè)方面的優(yōu)點(diǎn):1.一次編寫,到處運(yùn)行。在這一點(diǎn)上java比php更出色,除了系統(tǒng)之外,代碼不用做任何更改4。2.系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)

15、行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比asp/php的局限性是顯而易見的4。 3.強(qiáng)大的可伸縮性。從只有一個(gè)小的jar文件就可以運(yùn)行servlet/jsp,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺application進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,java顯示了一個(gè)巨大的生命力4。 4.多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與asp很像,java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺之下4。1.2.2 mysql簡介mysql是基于sql的,完全網(wǎng)絡(luò)化的跨平臺關(guān)系型數(shù)據(jù)庫系統(tǒng),同時(shí)是具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫

16、管理系統(tǒng)2。它具有體積小,功能強(qiáng),使用簡便,管理方便,運(yùn)行速度快,安全可靠性高,尤其是開源這一特點(diǎn),所以很多企業(yè)為了降低網(wǎng)站總體擁有成本而選擇了mysql作為網(wǎng)絡(luò)數(shù)據(jù)庫。更重要的是提供了用于c、c+、eiffel、java、perl、php、python、ruby和tcl的api,從而可以很容易的將其加入到各種應(yīng)用中6。1.2.3 tomcat簡介tomcat是apache 軟件基金會(huì)(apache software foundation)3的jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由apache、sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了sun 的參與和支持,最新的servlet 和j

17、sp 規(guī)范總是能在tomcat 中得到體現(xiàn),tomcat 5 支持最新的servlet 2.4 和jsp 2.0 規(guī)范。因?yàn)閠omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的web 應(yīng)用服務(wù)器。1.2.4 myeclipse簡介myeclipse企業(yè)級工作平臺(myeclipse enterprise workbench ,簡稱myeclipse)是對eclipse ide的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和j2ee的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的j2ee集成開發(fā)環(huán)境,包括了完備的編

18、碼、調(diào)試、測試和發(fā)布功能,完整支持html, struts, jsf, css, javascript, sql, hibernate。1.2.5 mvc簡介mvc是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用mvc應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。優(yōu)點(diǎn)如下:1. 低耦合性視圖層和業(yè)務(wù)層分離:這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)mvc的模型層即可。因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。2. 高重用性和可適用性隨著技術(shù)的不斷進(jìn)步,現(xiàn)在需

19、要用越來越多的方式來訪問應(yīng)用程序。mvc模式允許你使用各種不同樣式的視圖來訪問同一個(gè)服務(wù)器端的代碼。它包括任何web(http)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機(jī)來訂購某樣產(chǎn)品,雖然訂購的方式不一樣,但處理訂購產(chǎn)品的方式是一樣的。由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用html來表示,但是也有可能用wap來表示,而這些表示所需要的僅令是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無需做任何改變。 3.較低的生命周期mvc使降低開發(fā)和維護(hù)用戶接口的技術(shù)含量成為可能。 4.快速的部署使用mvc模式3使開發(fā)時(shí)間得到相當(dāng)大的縮減

20、,它使程序員集中精力于業(yè)務(wù)邏輯,界面程序員(html開發(fā)人員)集中精力于表現(xiàn)形式上。5.可維護(hù)性分熟視圖層和業(yè)務(wù)邏輯層也使得web應(yīng)用更易于維護(hù)和修改。6.有利于軟件工程化管理由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化管理程序代碼。 圖1-1 mvc模型 1.2.6 struts 2簡介雖然struts 2號稱是一個(gè)全新的框架,但這僅僅是相對struts 1而言。struts 2 與struts 1相比,確實(shí)有很多革命性的改進(jìn),但它并不是新發(fā)布的新框架,而是在另一個(gè)赫赫有名的框架:webwork5基礎(chǔ)上發(fā)展起來的。從某種程度上來講,struts 2沒有繼

21、承struts 1的血統(tǒng),而是繼承webwork的血統(tǒng)?;蛘哒f,webwork衍生出了struts 2,而不是struts 1衍生了struts2。因?yàn)閟truts2是webwork的升級,而不是一個(gè)全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了struts 1和webwork兩者的優(yōu)勢,因此,是一個(gè)非常值得期待的框架。apache struts 2是一個(gè)優(yōu)雅的,可擴(kuò)展的java ee web框架??蚣茉O(shè)計(jì)的目標(biāo)貫穿整個(gè)開發(fā)周期,從開發(fā)到發(fā)布,包括維護(hù)的整個(gè)過程。apache struts 2即是之前大家所熟知的webwork 2。在經(jīng)歷了幾年的各自發(fā)展后,webwork和st

22、ruts社區(qū)決定合二為一,也即是struts 2。 圖1-2 struts2模型1.2.7 hibernate簡介 hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對jdbc進(jìn)行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 hibernate可以應(yīng)用在任何使用jdbc的場合,既可以在java的客戶端程序使用,也可以在servlet/jsp的web應(yīng)用中使用,最具革命意義的是,hibernate可以在應(yīng)用ejb的j2ee架構(gòu)中取代cmp,完成數(shù)據(jù)持久化的重任。hibernate的核心接口一共有5個(gè),分別為:session、sessionfacto

23、ry、transaction、query和configuration5。這5個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。第2章 需求分析本章主要從多用戶博客系統(tǒng)的各功能需求、性能、運(yùn)行環(huán)境幾個(gè)方面進(jìn)行描述。2.1 功能分析本節(jié)主要對本系統(tǒng)的具體需求進(jìn)行描述,包括需要提供的功能以及各功能的具體定義。2.1.1 系統(tǒng)概述本系統(tǒng)的最主要功能是體現(xiàn)多用戶的使用,用戶可以在本系統(tǒng)注冊申請自己的博客。一旦用戶申請了自己的博客,就可以將心得體會(huì)等發(fā)表到自己的博客上,當(dāng)發(fā)表了自己的心得體現(xiàn)后,瀏覽者就可以對用戶所發(fā)表的日志的內(nèi)容進(jìn)行評論,注冊用戶還可以在自己

24、的博客上添加博客描述及超鏈接。此外,瀏覽者還可以在博主空間留言,與博主進(jìn)行交互。2.1.2 基本功能要求系統(tǒng)提供的主要功能包括以下幾個(gè)方面:1. 博主的注冊和登錄2. 日志的發(fā)布和管理,包括日志管理和分類選擇功能,其中日志管理功能包括日志的 添加、刪除和修改,分類選擇功能包括分類的添加、刪除和修改。3. 文章評論,包括評論的添加、刪除、修改三大功能。4. 留言管理,包括留言的添加、刪除、修改三大功能。5. 系統(tǒng)管理后臺,主要包括用戶管理、日志管理、留言管理和評論管理四大功能。2.1.3 用戶分析本系統(tǒng)主要包括以下幾類用戶:1.游客此類用戶不是本系統(tǒng)的用戶或者沒有登錄、對于當(dāng)前系統(tǒng)來講,只是一名

25、匿名的瀏覽者。在系統(tǒng)中,所有游客都沒有身份標(biāo)識,他們可以瀏覽博客中的日志和發(fā)表匿名的評論。2.注冊用戶此類用戶和游客的唯一區(qū)別為該類用戶屬于系統(tǒng)登錄用戶,在系統(tǒng)中有用戶id作為他們的唯一標(biāo)識,并擁有自己的博客。用戶瀏覽其它用戶的博客時(shí),僅僅是一個(gè)有身份標(biāo)識的瀏覽者而已,但一旦用戶進(jìn)入了自己的博客主頁,那么這時(shí)身份除了是一名瀏覽者外,還是一名博主,這時(shí)將擁有博主的所有權(quán)限。3.博主此類用戶即為擁有博客的用戶,是注冊用戶的一種特例,有管理博客的權(quán)限。該用戶擁有上述所有用戶的權(quán)限,當(dāng)該用戶瀏覽其它用戶的博客時(shí),當(dāng)前身份就變成了登錄瀏覽者身份,不再具有博主的身份,只有當(dāng)該用戶進(jìn)入自己的博客主頁時(shí),才會(huì)

26、所有博主的身份。4.系統(tǒng)管理員該類用戶為博客系統(tǒng)的網(wǎng)站管理員,本應(yīng)具有上述用戶的所有管理權(quán)限,為了減少系統(tǒng)的復(fù)雜度,這里只具有系統(tǒng)后臺的管理功能。2.1.4 功能詳細(xì)說明本節(jié)將從用戶用例的角度來描述系統(tǒng)的具體功能,本博客系統(tǒng)主要用例包括:游客用例、注冊用戶用例、博主用例和系統(tǒng)管理員用途,以下是詳細(xì)描述。圖2-1 游客用例圖圖2-1用例說明如下:瀏覽日志:閱讀系統(tǒng)內(nèi)所用博客的日志。發(fā)表留言:對瀏覽過的博客空間進(jìn)行留言,由于游客沒有身份標(biāo)識,所以只能匿名留言。發(fā)表評論:對瀏覽過的日志進(jìn)行評論,由于游客沒有身份標(biāo)識,所以只能匿名評論。2. 注冊用戶用例圖圖2-2 注冊用戶用例圖圖2-2用例說明如下:

27、瀏覽日志: 閱讀系統(tǒng)內(nèi)所用博客的日志。發(fā)表留言:對瀏覽過的博客空間進(jìn)行留言,由于注冊用戶具有身份標(biāo)識,所以在留言時(shí)可以自己身份或匿名身份進(jìn)行留言。發(fā)表評論:對瀏覽過的日志進(jìn)行評論,由于注冊用戶具有身份標(biāo)識,所以在對日志評論時(shí)可以自己身份或匿名身份進(jìn)行評論。個(gè)人資料管理:可以對自己的個(gè)人資料進(jìn)行更新。圖2-3 博主用例圖圖2-3用例說明如下:日志管理:對博客日志進(jìn)行管理,具體操作包括:發(fā)布日志、修改日志、刪除日志。評論管理:對日志的評論進(jìn)行管理,具體操作包括:添加評論、刪除評論。留言管理:對博客空間的留言進(jìn)行管理,具體操作包括:添加留言,刪除留言。超鏈接管理:對博客空間的超鏈接進(jìn)行管理,具體操作

28、包括:添加鏈接,修改鏈接,刪除鏈接。圖2-4 系統(tǒng)管理員用例圖圖2-4用例說明如下:用戶管理:對系統(tǒng)中的所有用戶進(jìn)行管理,管理員可以根據(jù)用戶名搜索用戶,對一些違法的用戶,管理員可以對其進(jìn)行刪除。日志管理:對系統(tǒng)中的所有日志進(jìn)行管理,管理員可通過日志標(biāo)題進(jìn)行搜索,管理員本身也可以發(fā)表日志,還可以對違法違規(guī)日志進(jìn)行刪除。評論管理:對系統(tǒng)中所有的日志評論進(jìn)行管理,管理員可通過日志標(biāo)題搜索其對應(yīng)的評論,對其中不合法的評論進(jìn)行刪除。留言管理:對系統(tǒng)中所有的留言進(jìn)行管理,管理員可以通過用戶名搜索其對應(yīng)空間的留言,對其中不合法的留言進(jìn)行刪除。2.2 性能要求本系統(tǒng)為實(shí)時(shí)性內(nèi)容發(fā)布平臺,因此服務(wù)器需要7

29、15;24小時(shí)運(yùn)行,確保系統(tǒng)能正常運(yùn)行,系統(tǒng)響應(yīng)時(shí)間必須在1秒內(nèi),頁面響應(yīng)時(shí)間不能超過3秒,并且頁面不能出現(xiàn)假死現(xiàn)象。2.3 運(yùn)行環(huán)境要求本系統(tǒng)為開發(fā)階段的版本,因此系統(tǒng)架構(gòu)都在同一臺電腦上,硬件與軟件規(guī)模均處于測試階段,未能達(dá)到商業(yè)用途的要求。本節(jié)將從硬件環(huán)境與軟件環(huán)境兩方面來進(jìn)行描述。2.3.1 硬件環(huán)境asus筆記本電腦一臺2.3.2 軟件環(huán)境操作系統(tǒng):microsoft windows 7(32位)web服務(wù)器:apache tomcat 6.0java環(huán)境:jdk1.6.0_16數(shù)據(jù)庫:mysql server 5.1開發(fā)環(huán)境:myeclipse 7.0技術(shù)框架:struts-2.1

30、.8.1 ; hibernate 3.2第3章 總體設(shè)計(jì)本章將從整個(gè)系統(tǒng)的功能模塊劃分、數(shù)據(jù)庫設(shè)計(jì)、系統(tǒng)架構(gòu)、運(yùn)行機(jī)制等幾個(gè)方面進(jìn)行描述.3.1 功能模塊劃分多用戶博客系統(tǒng)從整個(gè)架構(gòu)特點(diǎn)來看,主要由用戶博客首頁、用戶博客后臺、系統(tǒng)博客首頁和系統(tǒng)博客后臺4個(gè)大的功能模塊組合而成,系統(tǒng)總體功能模塊如圖3-1所示。圖3-1 系統(tǒng)總體功能模塊圖系統(tǒng)博客首頁:系統(tǒng)博客首頁主要是對所有用戶的博客信息進(jìn)行按照一些的排序方式進(jìn)行統(tǒng)一展現(xiàn)。系統(tǒng)博客后臺:系統(tǒng)博客后臺主要是對系統(tǒng)內(nèi)的所有信息進(jìn)行統(tǒng)一管理,如:對非法信息進(jìn)行清除等操作。用戶博客首頁:用戶博客首頁主要是對用戶個(gè)人的博客內(nèi)容進(jìn)行展現(xiàn)。用戶博客后臺:用戶

31、博客后臺主要是用戶的博客內(nèi)容進(jìn)行管理,如:日志的發(fā)布,刪除等操作。3.2 數(shù)據(jù)庫設(shè)計(jì)本系統(tǒng)主要由7個(gè)基本表組成,分別為person(用戶表),space(空間信息表),post(日志表),category(分類表),reply(日志評論表),comment(留言表),link(超鏈接表),各表關(guān)系如下圖所示:圖3-2 數(shù)據(jù)庫各表關(guān)系圖3.2.1 person用戶表用戶表記錄用戶基本信息,結(jié)構(gòu)如表3-1所示:表3-1 person用戶表字段名稱字段類型長度是否可為空備注idint11否用戶idaccountvarchar50否用戶帳號passwordvarchar50否用戶密碼namevarch

32、ar50否用戶昵稱emailvarchar50是用戶電子郵箱sexvarchar10是用戶性別datecreatedvarchar50否注冊時(shí)間ipcreatedvarchar50否注冊ipisadminint10否是否為管理員3.2.2 space空間信息表空間信息表記錄了用戶空間的信息,結(jié)構(gòu)如表3-2所示:表3-2 space空間信息表字段名稱字段類型長度是否可為空備注idint11否空間idnamevarchar50否空間名稱desvarchar400是空間描述3.2.3 post日志表日志表記錄了日志的詳細(xì)信息,結(jié)構(gòu)如表3-3所示:表3-3 post日志表字段名稱字段類型長度是否可為空

33、備注idint11否日志idtitlevarchar50否日志標(biāo)題contentvarchar10000是日志內(nèi)容hitint11否日志點(diǎn)擊數(shù)datecreatedvarchar50否日志創(chuàng)建時(shí)間spa_idint11否日志所屬空間cat_idint11否日志所屬分類3.2.4 category分類表分類表記錄了日志的分類信息,結(jié)構(gòu)如表3-4所示:表3-4 category分類表字段名稱字段類型長度是否可為空備注idint11否分類idnamevarchar50否分類名稱spa_idint11否分類所屬空間3.2.5 reply日志評論表日志評論表記錄了日志的相關(guān)評論信息,結(jié)構(gòu)如表3-5所示:

34、表3-5 reply日志評論表字段名稱字段類型長度是否可為空備注idint11否評論idnamevarchar50否評論者名字contentvarchar1000是評論內(nèi)容floorint11否評論數(shù)datecreatedvarchar50否評論時(shí)間ipcreatedvarchar50否評論ippost_idint11否評論所屬日志3.2.6 comment留言表留言表記錄了他人對博主空間的留言,結(jié)構(gòu)如表3-6所示:表3-6 comment留言表字段名稱字段類型長度是否可為空備注idint11否留言idnamevarchar50否留言者名字contentvarchar1000是留言內(nèi)容floo

35、rint11否留言數(shù)datecreatedvarchar50否留言時(shí)間ipcreatedvarchar50否留言ipspa_idint11否留言所屬空間3.2.7 link超鏈接表超鏈接表記錄了用戶設(shè)置的超鏈接信息,結(jié)構(gòu)如表3-7所示:表3-7 link超鏈接表字段名稱字段類型長度是否可為空備注idint11否超鏈接idtitlevarchar50否超鏈接標(biāo)題urlvarchar100否超鏈接內(nèi)容spa_idint11否超鏈接所屬空間3.3 系統(tǒng)架構(gòu)系統(tǒng)將采用提供web服務(wù)器的經(jīng)典架構(gòu),即:b/s(browse/server)架構(gòu),該架構(gòu)和傳統(tǒng)的架構(gòu)c/s(client/server)最大的不

36、同在于,傳統(tǒng)架構(gòu)不但要提供服務(wù)器端(server)的程序,還需要提供一個(gè)客戶端(client)程序,當(dāng)軟件有更新時(shí),需要所有客戶端同時(shí)升級才能享受到你的功能,所以軟件升級成本比較高。而b/s架構(gòu)則很好的解決了這一問題,該架構(gòu)的最終系統(tǒng)代碼只需要放在web服務(wù)器上,而用戶僅僅通過瀏覽器就能輕松訪問系統(tǒng),而對于系統(tǒng)的升級,只需要將系統(tǒng)代碼更新到web服務(wù)器上,用戶就能享受到新系統(tǒng)所帶來的功能體驗(yàn)。系統(tǒng)總體架構(gòu)如圖3-3所示:圖3-3 系統(tǒng)總體架構(gòu)圖browser為用戶瀏覽器,即安裝在用戶電腦上的web瀏覽器。對于用戶瀏覽器來說只需要和web服務(wù)器進(jìn)行交互,而web服務(wù)器再與系統(tǒng)交互,把結(jié)果返回給用

37、戶瀏覽器。而數(shù)據(jù)庫也是和系統(tǒng)交互,將結(jié)果統(tǒng)一給web服務(wù)器返回給用戶瀏覽器。用戶瀏覽器與web服務(wù)器采用http協(xié)議進(jìn)行通信,而系統(tǒng)和數(shù)據(jù)之間的通信則采用底層的tcp/tp協(xié)議進(jìn)行。3.4 系統(tǒng)運(yùn)行機(jī)制本節(jié)主要對整個(gè)系統(tǒng)運(yùn)行平臺的運(yùn)行機(jī)制加以說明,運(yùn)行平臺基于windows平臺,而開發(fā)平臺主要是基于面向?qū)ο蟮膉ava語言,另外整合了java web流行框架struts2和hibernate。windows平臺運(yùn)行機(jī)制如圖3-4所示:圖3-4 windows運(yùn)行平臺機(jī)制圖如圖3-4所示,運(yùn)行機(jī)制為:用戶在瀏覽器里輸入博客系統(tǒng)地址,然后瀏覽器通過http請求訪問提供服務(wù)的服務(wù)器的8080端口,由于

38、在服務(wù)器上8080端口由tomcat服務(wù)器提供,所以操作系統(tǒng)把整個(gè)請求交給tomcat來處理,tomcat通過用戶的請求地址,識別出系統(tǒng)采用jsp語言編寫,這里tomcat服務(wù)器需要調(diào)用jsp解析引擎來對指定的博客系統(tǒng)源碼進(jìn)行解析,然后將jsp返回的結(jié)果返回給用戶瀏覽器,最終用戶就能夠通過瀏覽器看到博客系統(tǒng)的界面了。在jsp解析博客系統(tǒng)的過程中,如果需要從數(shù)據(jù)庫里取數(shù)據(jù),則通過tcp/tp建立起mysql數(shù)據(jù)庫服務(wù)器的連接。最終通過jsp將需要返回,這一步是在jsp內(nèi)部完成。第4章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)本章將描述整個(gè)博客系統(tǒng)最核心的部分,主要從各功能的具體設(shè)計(jì)方法和主要實(shí)現(xiàn)代碼方面描述。4.1

39、類的設(shè)計(jì)與實(shí)現(xiàn)在博客系統(tǒng)中,類的設(shè)計(jì)主要分為兩類:一類是java bean,還有一類是通用工具類。其他類為次要,在此不另外說明。4.1.1 java bean類的設(shè)計(jì)java bean一般用來封裝業(yè)務(wù)邏輯、數(shù)據(jù)庫操作以及在系統(tǒng)存儲(chǔ)和傳遞數(shù)據(jù)的實(shí)體,是整個(gè)軟件的核心部分。java bean類圖如下4-1所示(圖中省略了getter()和setter()方法):圖4-1 java bean類圖如圖4-1所示:l person bean用來保存用戶的基本信息,包括:用戶id,帳號,密碼,昵稱,電子郵箱,性別,注冊時(shí)間,注冊ip,是否為管理員。l space bean用來保存用戶空間的信息,包括:空間

40、id,空間名,空間描述。l post bean用來保存用戶日志的信息,包括:日志id,標(biāo)題,內(nèi)容,被點(diǎn)擊數(shù),創(chuàng)建時(shí)間,所屬空間以及所屬分類。l category bean用來保存分類的信息,包括:分類id,分類名和所屬空間。l reply bean用來保存日志評論的信息,包括:評論id,評論者名字,評論內(nèi)容,評論數(shù),評論時(shí)間,評論ip和評論所屬日志。l comment bean用來保存留言的信息,包括:留言id,留言者名字,留言內(nèi)容,留言數(shù),留言時(shí)間,留言ip和留言所屬空間。l link bean用來保存超鏈接的信息,包括:超鏈接id,超鏈接標(biāo)題,超鏈接內(nèi)容和超鏈接所屬空間。4.1.2 通用類

41、的設(shè)計(jì)在博客系統(tǒng)中還設(shè)計(jì)了通用類,這個(gè)通用類主要是針對hibernate設(shè)計(jì)的,這個(gè)類在對數(shù)據(jù)的插入,修改,刪除,更新時(shí)經(jīng)常用到,因此在這里把它封裝成一個(gè)通用,方便以后的調(diào)用。hibernatesessionfactoryutil代碼如下所示:public class hibernatesessionfactoryutil private static sessionfactory sessionfactory; /單態(tài)模式的sessionfactoryprivate hibernatesessionfactoryutil() static /static代碼塊,類加載時(shí)初始化hibernat

42、e sessionfactory = new configuration().configure().buildsessionfactory();public static sessionfactory getsessionfactory() return sessionfactory;4.2 數(shù)據(jù)庫與hibernate配置本系統(tǒng)使用現(xiàn)今流行的java web框架hibernate來統(tǒng)一管理數(shù)據(jù)庫,在mysql數(shù)據(jù)庫中先建立好基本表,然后通過hibernate與java bean對應(yīng)映射關(guān)系,hibernate配置文件如下所示:<session-factory><proper

43、ty name="connection.username">root</property> <!-數(shù)據(jù)庫管理名-><property name="connection.url">jdbc:mysql:/localhost:3306/blog?characterencoding=utf-8</property><property name="dialect">org.hibernate.dialect.mysqldialect</property><pr

44、operty name="file">com.mysql.jdbc.driver</property><property name="connection.password">123</property> <!-數(shù)據(jù)庫密碼-><property name="connection.driver_class">com.mysql.jdbc.driver <!-數(shù)據(jù)庫驅(qū)動(dòng)-></property><

45、property name="current_session_context_class">thread</property><property name="show_sql">true</property> <!-在終端顯示sql語句-><mapping resource="com/lu/blog/bean/person.hbm.xml" /> .</session-factory>4.3 struts 2配置本系統(tǒng)采用經(jīng)典的mvc設(shè)計(jì)模式,由現(xiàn)今流行的j

46、ava web框架struts 2進(jìn)行統(tǒng)一管理,struts 2是一個(gè)十分實(shí)用的mvc框架,struts 2的配置文件如下所示:<struts><constant name="struts.i18n.encoding" value="utf-8"></constant><package name="main" extends="struts-default"><action name="register" class="com.lu

47、.blog.action.registeraction"method="add"> <!-執(zhí)行action-><result name="success">/person/registersuccess.jsp</result> <!-跳轉(zhuǎn)至成功頁面-><result name="error">/person/register.jsp</result> </action><action name="login"

48、 class="com.lu.blog.action.loginaction"method="login"><result name="loginsuccess">/person/padmin.jsp</result><result name="input">/person/login.jsp</result></action></package></struts>4.4 模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)本節(jié)將詳細(xì)介紹博客系統(tǒng)各模塊的設(shè)計(jì),

49、主要模塊包括:登錄與注冊模塊,日志管理模塊,日志評論模塊,分類模塊,留言模塊。4.4.1 登錄與注冊模塊1.注冊用戶通過填寫注冊頁面的的要求完成注冊,注冊時(shí)需要符合系統(tǒng)對用戶注冊的要求,如用戶名不能重復(fù),輸入正確的驗(yàn)證碼等。注冊成功的同時(shí),并開通個(gè)人博客,操作流程為將用戶所填寫的注冊信息插入到用戶表,并根據(jù)用戶id和博客系統(tǒng)的缺省參數(shù)生成一條記錄,插入到空間信息表中。注冊頁面如圖4-2所示:圖4-2 注冊頁面2.登錄登錄功能的操作流程為根據(jù)用戶所填寫的登錄信息去用戶表里查詢,如果有該記錄,則說明登錄成功,然后根據(jù)用戶id從空間信息表里取出信息,最后初始化用戶信息和用戶空間信息,登錄成功就跳轉(zhuǎn)到

50、用戶博客首頁。登錄代碼如下所示:public class loginaction extends actionsupport private string account; /從登錄頁面接收到帳號private string password; /從登錄頁面接收到密碼public string login() string message = null;persondao dao = new persondaohibernate(); /驗(yàn)證密碼是否與數(shù)據(jù)庫中數(shù)據(jù)匹配,若不匹配則if (dao.validatelogin(account, password) = null) /返回消息錯(cuò)誤me

51、ssage = "用戶名和密碼錯(cuò)誤!"servletactioncontext.getrequest().setattribute("message", message); return "input" /登錄錯(cuò)誤,仍返回登錄頁面 else servletactioncontext.getrequest().getsession(true).setattribute("account", account); /數(shù)據(jù)若遇數(shù)據(jù)庫中數(shù)據(jù)匹配則將account保存到sessionreturn "loginsucc

52、ess" /登錄成功,返回登錄成功頁面4.4.2 日志管理模塊日志管理模塊主要包括的功能有對日志的添加,修改,刪除,查詢,詳細(xì)情況如下:1.添加日志在添加日志時(shí)首先選擇日志所屬的分類,選擇分類后再向日志表中插入日志內(nèi)容,日志內(nèi)容包括日志標(biāo)題,內(nèi)容,添加內(nèi)容部分采用現(xiàn)今流行的html編輯器ckeditor。如果失敗則退出,然后更新日志發(fā)表時(shí)間,ip以及設(shè)置點(diǎn)擊數(shù)(hit)為0,具體流程如圖4-3所示:圖4-3 添加日志流程圖添加日志代碼如下(省略getter(),setter()方法)所示:public class addpostaction extends actionsupport private static final long serialversionuid = -6214943526110239290l;private string title; /從添加日志頁面接收標(biāo)題private string content; private string cname; public string exe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論