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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于b/s架構的多用戶博客系統(tǒng)設計目 錄前 言1第1章技術背景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功能詳細說明92.2性能要求112.3運行環(huán)境要求112.3.1硬件環(huán)境122.3.2軟件環(huán)境12第3章總體設計133.1功能模塊劃分133.2數據庫設計133.2.1person用戶表143.2.2

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

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

4、、快速、高效的運行。關鍵詞:博客,mvc,b/s,穩(wěn)定性38abstractmulti-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 mu

5、lti-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

6、 the 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 strut

7、s 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)網技術的高速發(fā)展和日益的普及,互聯(lián)網用戶迅速增加,用戶對互聯(lián)網的寄托也發(fā)生了翻天覆地的變化,用戶不甘于只單單的被動的接受互聯(lián)網提供的內容,更希望能夠加入到內容制造的大家庭中,這時傳統(tǒng)的web應用已經顯得力不從心,而web 2.0的出現(xiàn),極大的改變了這一局面。所謂web 2.0其核心就是用戶不只是內容的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

44、property name="file">com.mysql.jdbc.driver</property><property name="connection.password">123</property> <!-數據庫密碼-><property name="connection.driver_class">com.mysql.jdbc.driver <!-數據庫驅動-></property>&l

45、t;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)采用經典的mvc設計模式,由現(xiàn)今流行

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

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

48、t; 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 模塊詳細設計與實現(xiàn)本節(jié)將詳細介紹博客系統(tǒng)各模塊的設

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論