【正文】
現(xiàn)代碼方面描述。在 JSP 解析博客系統(tǒng)的過程中,如果需 要從數(shù)據(jù)庫(kù)里取數(shù)據(jù),則通過 TCP/TP 建立起 MySQL 數(shù)據(jù)庫(kù)服務(wù)器的連接。 系統(tǒng)運(yùn)行機(jī)制 本節(jié)主要對(duì)整個(gè)系統(tǒng)運(yùn)行平臺(tái) 的運(yùn)行機(jī)制加以說明 , 運(yùn)行平臺(tái)基于 windows 平臺(tái) ,而開發(fā)平臺(tái)主要是基于面向?qū)ο蟮?JAVA 語(yǔ)言,另外整合了 JAVA WEB 流行框架Struts2 和 Hibernate。而數(shù)據(jù)庫(kù)也是和系統(tǒng)交互, 將結(jié)果統(tǒng)一給 WEB 服務(wù)器返回給用戶瀏覽器。 18 系統(tǒng)總體架構(gòu)如圖 33 所示 : 圖 33 系統(tǒng)總體架構(gòu)圖 Browser 為用戶瀏覽器 ,即安裝在用戶電腦上的 WEB 瀏覽器。 數(shù)據(jù)庫(kù)設(shè)計(jì) 多 用 戶 博 客 系 統(tǒng)用 戶 博 客 首 頁(yè) 用 戶 博 客 后 臺(tái) 系 統(tǒng) 博 客 首 頁(yè) 系 統(tǒng) 博 客 后 臺(tái)14 本系統(tǒng)主要由 7 個(gè)基本表組成 ,分別為 person(用戶表 ),space(空間信息表 ),post(日志表 ),category(分類表 ),reply(日志評(píng)論表 ),ment(留言表 ),link(超鏈接表 ),各表關(guān)系如下圖所示 : 圖 32 數(shù)據(jù)庫(kù)各表關(guān)系圖 person 用戶表 用戶表記錄用戶基本信息 ,結(jié)構(gòu)如表 31 所示 : 表 31 person 用戶表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 用戶 ID account varchar 50 否 用戶帳號(hào) password varchar 50 否 用戶密碼 p e r s o nP K i d a c c o u n t p a s s w o r d e m a i l n a m e s e x d a t e C r e a t e d i p C r e a t e d i s A d m i ns p a c eP K , F K 1 i d n a m e d e sp o s tP K i d t i t l e c o n t e n t d a t e C r e a t e d h i tF K 1 s p a _ i dF K 2 c a t _ i dc a t e g o r yP K i d n a m eF K 1 s p a _ i dr e p l yP K i d c o n t e n t n a m e f l o o r d a t e C r e a t e d i p C r e a t e dF K 1 p o s t _ i dc o m m e n tP K i d n a m e c o n t e n t f l o o r d a t e C r e a t e d i p C r e a t e dF K 1 s p a _ i dl i n kP K i d t i t l e u r lF K 1 s p a _ i d15 name varchar 50 否 用戶昵稱 varchar 50 是 用戶電子郵箱 sex varchar 10 是 用戶性別 dateCreated varchar 50 否 注冊(cè)時(shí)間 ipCreated varchar 50 否 注冊(cè) IP isAdmin int 10 否 是否為管理員 space 空間信息表 空間信息表記錄了用戶空間的信息 ,結(jié)構(gòu)如表 32 所示 : 表 32 space 空間信息表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 空間 ID name varchar 50 否 空間名稱 des varchar 400 是 空間描述 post 日志表 日志表記錄了日志的詳細(xì)信息 ,結(jié)構(gòu)如表 33 所示 : 表 33 post 日志表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 日志 ID title varchar 50 否 日志標(biāo)題 content varchar 10000 是 日志內(nèi)容 hit int 11 否 日志點(diǎn)擊數(shù) dateCreated varchar 50 否 日志創(chuàng)建時(shí) 間 Spa_id int 11 否 日志所屬空間 Cat_id int 11 否 日志所屬分類 16 category 分類表 分類表記錄了日志的分類信息 ,結(jié)構(gòu)如表 34 所示 : 表 34 category 分類表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 分類 ID name varchar 50 否 分類名稱 Spa_id int 11 否 分類所屬空間 reply 日志評(píng)論表 日志評(píng)論表記錄了日志的相關(guān)評(píng)論信息 ,結(jié)構(gòu)如表 35 所示 : 表 35 reply 日志評(píng)論表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 評(píng)論 ID name varchar 50 否 評(píng)論者名字 content varchar 1000 是 評(píng)論內(nèi)容 floor int 11 否 評(píng)論數(shù) dateCreated varchar 50 否 評(píng)論時(shí)間 ipCreated varchar 50 否 評(píng)論 IP Post_id int 11 否 評(píng)論所屬日志 ment 留言表 留言表記錄了他人對(duì)博主空間的留言 ,結(jié)構(gòu)如表 36 所示 : 17 表 36 ment 留言表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 留言 ID name varchar 50 否 留言者名字 content varchar 1000 是 留言內(nèi)容 floor int 11 否 留言數(shù) dateCreated varchar 50 否 留言時(shí)間 ipCreated varchar 50 否 留言 IP Spa_id int 11 否 留言所屬空間 link 超鏈接表 超鏈接表記錄了用戶設(shè)置的超鏈接信息 ,結(jié)構(gòu)如表 37 所示 : 表 37 link 超 鏈接表 字段名稱 字段類型 長(zhǎng)度 是否可為空 備注 id int 11 否 超鏈接 ID title varchar 50 否 超鏈接標(biāo)題 url varchar 100 否 超鏈接內(nèi)容 Spa_id int 11 否 超鏈接所屬空間 系統(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)最大的不同在于,傳統(tǒng)架構(gòu)不但要提供服務(wù)器端(Server)的程序,還需要提供一個(gè)客戶端 (Client)程序,當(dāng)軟件 有更新時(shí),需要所有客戶端同時(shí)升級(jí)才能享受到你的功能,所以軟件升級(jí)成本比較高。 用戶博客首頁(yè):用戶博客首頁(yè)主要是對(duì)用戶個(gè)人的博客內(nèi)容進(jìn)行展現(xiàn)。 圖 31 系統(tǒng)總體功能模塊圖 系統(tǒng)博客首頁(yè):系統(tǒng)博客首頁(yè)主要是對(duì)所有用戶的博客信息進(jìn)行按照一些的排序方式進(jìn)行統(tǒng)一展現(xiàn)。 硬件環(huán)境 ASUS 筆記本電腦一臺(tái) 軟件環(huán)境 操作系統(tǒng) : Microsoft Windows 7(32 位 ) Web 服務(wù)器 : Apache Tomcat Java 環(huán)境 : 數(shù)據(jù)庫(kù) : MySQL Server 開發(fā)環(huán)境 : MyEclipse 技術(shù)框架 : 。 運(yùn)行環(huán)境要求 12 本系統(tǒng)為開發(fā)階段的版本,因此系統(tǒng)架構(gòu)都在同一臺(tái)電腦上,硬件與軟件規(guī)模均處于測(cè)試階段,未能達(dá)到商業(yè)用途的要求。 留言管理 :對(duì)系統(tǒng)中所有的留言進(jìn)行 管理,管理員可以通過用戶名搜索其對(duì)應(yīng)空間的留言,對(duì)其中不合法的留言進(jìn)行刪除。 日志管理 :對(duì)系統(tǒng)中的所有日志進(jìn)行管理,管理員可通過日志標(biāo)題進(jìn)行搜索,管理員本身也可以發(fā)表日志,還可以對(duì)違法違規(guī)日志進(jìn)行刪除。 11 超鏈接管理:對(duì)博客空間的超鏈接進(jìn)行管理,具體操作 包括:添加鏈接,修改 鏈接,刪除鏈接。 評(píng)論管理:對(duì)日志的評(píng)論進(jìn)行管理,具體操作包括:添加評(píng)論、刪除評(píng)論。 個(gè)人資料管理:可以對(duì)自己的個(gè)人資料進(jìn)行更新。 發(fā)表留言 :對(duì)瀏覽過的博客空間進(jìn)行留言,由于注冊(cè)用戶具有身份標(biāo)識(shí),所以在留言時(shí)可以自己身份或匿名身份進(jìn)行留言。 發(fā)表評(píng)論 :對(duì)瀏覽過的日志進(jìn)行評(píng)論,由于游客沒有身份標(biāo)識(shí),所以只能匿名評(píng)論。 游 客瀏 覽 日 志發(fā) 表 留 言發(fā) 表 評(píng) 論 圖 21 游客用例圖 圖 21 用例說明如下 : 瀏 覽日志 :閱讀系統(tǒng)內(nèi)所用博客的日志。 4. 系統(tǒng)管理員 該類用戶為博客系統(tǒng)的網(wǎng)站管理員,本應(yīng)具有上述用戶的所有管理權(quán)限,為了減少系統(tǒng)的復(fù)雜度,這里只具有系統(tǒng)后臺(tái)的管理功能。 3. 博主 此類用戶即為擁有博客的用戶,是注冊(cè)用戶的一種特例,有管理博客的權(quán)限。 9 2. 注冊(cè)用戶 此類用戶和游客的唯一區(qū)別為該類用戶屬于系統(tǒng)登錄用戶,在系統(tǒng)中有用戶 ID 作 為他們的唯一標(biāo)識(shí),并擁有自己的博客。 用戶分析 本系統(tǒng)主要包括以下幾類用戶 : 1. 游客 此類用戶不是本系統(tǒng)的用戶或者沒有登錄、對(duì)于當(dāng)前系統(tǒng)來講,只是一名匿名的 瀏覽者。 4. 留言管理,包括留言的添加、刪除、修改三大功能。 基本功能要求 系統(tǒng)提供的主要功能包 括以下幾個(gè)方面 : 1. 博主的注冊(cè)和登錄 2. 日志的發(fā)布和管理 ,包括日志管理和分類選擇功能,其中日志管理功能包括日志的 添加、刪除和修改 ,分類選擇功能包括分類的添加、刪除和修改。一旦用戶申請(qǐng)了自己的博客,就可以將心得體會(huì)等發(fā)表到自己的博客上,當(dāng)發(fā)表了自己的心得體現(xiàn)后,瀏覽者就可以對(duì)用戶所發(fā)表的日志的內(nèi)容進(jìn)行評(píng)論 ,注冊(cè)用戶還可以在自己的博客上添加博客描述及超鏈接。 功能分析 本節(jié)主要對(duì)本系統(tǒng)的具體需求進(jìn)行描述,包括需要 提供的功能以及各功能的具體定義。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制 。 Hibernate 的核心接口一共有 5 個(gè),分別為 :Session、 SessionFactory、 Transaction、 Query 和 Configuration[5]。 D i s p a t c h e rR o u t e sW e b S e r v e rM o d e l V i e wC o n t r o l l e rB r o w s e r7 圖 12 Struts2 模型 Hibernate 簡(jiǎn)介 Hibernate 是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得 Java 程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù)。 Apache Struts 2 即是之前大家所熟知的 WebWork 2。 Apache Struts 2 是一個(gè)優(yōu)雅的,可擴(kuò)展的 JAVA EE web 框架。或者說, WebWork 衍生出了 Struts 2,而不是 Struts 1 衍生了 Struts2。 Struts 2 與Struts 1 相比,確實(shí)有很多革命性的改進(jìn),但它并不是新發(fā)布的新框架,而是在另一個(gè)赫赫有名的框架: WebWork[5]基礎(chǔ)上發(fā)展起來的。 程化管理 由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化管理程序代碼。 使用 MVC 模式 [3]使開發(fā)時(shí)間得到相當(dāng)大的縮減,它使程序員集中精力于業(yè)務(wù)邏輯,界面程序員( HTML 開發(fā)人員)集中精力于表現(xiàn)形式上。例如,很多數(shù)據(jù)可能用 HTML 來表示,但是也有可能用 WAP 來表示,而這些表示所需要的僅令是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無需做任何改變。它包括任何 WEB( HTTP)瀏覽器或者無線瀏覽器( wap),比如,用戶可以通過電腦也可通過手機(jī)來訂購(gòu)某樣產(chǎn)品,雖然訂購(gòu)的方式不一樣,但處理訂購(gòu)產(chǎn)品的方式是一樣的。 2. 高重用性和可適用性 隨著技術(shù)的不斷進(jìn)步,現(xiàn)在需要用越來越多的方式來訪問應(yīng)用程序。 優(yōu)點(diǎn)如下: 1. 低耦合性 視圖層和業(yè)務(wù)層分離:這樣就允許更改視 圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只