摘 要:本文介紹了博客網(wǎng)站設(shè)計(jì)的背景和意義,然后針對(duì)博客系統(tǒng)中的核心技術(shù)做了深入研究,并提出并設(shè)計(jì)了一個(gè)基于S2SH框架結(jié)構(gòu)的網(wǎng)絡(luò)博客系統(tǒng),該系統(tǒng)整合了數(shù)據(jù)庫(kù)技術(shù)、Java EE技術(shù)和網(wǎng)站開(kāi)發(fā)技術(shù)。經(jīng)測(cè)試,該系統(tǒng)比已有的博客系統(tǒng)有更好的安全性、模塊開(kāi)發(fā)性和跨平臺(tái)性。
關(guān)鍵詞:S2SH;博客系統(tǒng);功能設(shè)計(jì)
中圖分類(lèi)號(hào):TP311.52
博客(Blog,譯為網(wǎng)絡(luò)日志)已經(jīng)在人們的日常生活中扮演著非常重要的角色,它是以網(wǎng)絡(luò)作為載體,簡(jiǎn)易、迅速、便捷地發(fā)布自己的心得,及時(shí)、有效、輕松地與他人進(jìn)行交流,再集豐富多彩的個(gè)性化展示于一體的綜合性網(wǎng)站。一個(gè)典型的博客結(jié)合了文字、圖像、其他博客或網(wǎng)站的鏈接,能夠讓讀者以互動(dòng)的方式留下意見(jiàn)。
本文為廣大網(wǎng)絡(luò)用戶研發(fā)一套博客系統(tǒng),該系統(tǒng)可以作為一個(gè)服務(wù)模塊與其他服務(wù)模塊共同作為門(mén)戶網(wǎng)站的一部分,從而為廣大網(wǎng)民提供更優(yōu)質(zhì)的服務(wù)。系統(tǒng)采用基于S2SH框架技術(shù),大致分為用戶、文章、評(píng)論、留言四個(gè)功能模塊,在其中有加入方便用戶使用的具體功能,力求使系統(tǒng)的前臺(tái)更加友好,代碼的健壯性更高,用戶的使用更加舒適。
1 S2SH框架介紹
S2SH框架即Struts2+Spring+Hibernate框架技術(shù),struts是表示層部分、spring是事務(wù)層部分、hibernate是持久層(數(shù)據(jù)層)部分,通俗說(shuō)表示層主要負(fù)責(zé)頁(yè)面,事務(wù)層主要負(fù)責(zé)事務(wù)邏輯處理,持久層和數(shù)據(jù)庫(kù)打交道。
1.1 Structs2框架
Struts2框架是基于MVC體系結(jié)構(gòu)的成熟性框架。它提供了一個(gè)非常優(yōu)秀的架構(gòu)使得組織基于HTML格式與Java代碼的JSP與Servlet應(yīng)用開(kāi)發(fā)變得非常簡(jiǎn)單。Struts2是一個(gè)可擴(kuò)展的JAVA EE web框架??蚣茉O(shè)計(jì)的目標(biāo)貫穿整個(gè)開(kāi)發(fā)周期,從開(kāi)發(fā)到發(fā)布,包括維護(hù)的整個(gè)過(guò)程。
1.2 Spring框架
Spring框架是開(kāi)源的,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許開(kāi)發(fā)人員選擇使用哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開(kāi)發(fā)提供集成的框架。
Spring的顯要特征是:可以與某些J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象進(jìn)行綁定。無(wú)須質(zhì)疑,在不相同J2EE環(huán)境(Web或EJB)、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間能重用這些對(duì)象。
1.3 Hibernate框架
Hibernate是目前流行的開(kāi)源ORM框架,能很好地解決關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)和面向?qū)ο髴?yīng)用程序之間的阻抗不匹配問(wèn)題。它在JDBC之上提供了一層薄薄的封裝,可以使用在任何應(yīng)用JDBC的場(chǎng)合,同時(shí)提供完善的透明持久化;提供了訪問(wèn)數(shù)據(jù)的方法,減少了程序員的工作量;可以消除或包裝那些針對(duì)特定廠商的SQL代碼,把結(jié)構(gòu)集從表格的表現(xiàn)形式轉(zhuǎn)換到一系列的對(duì)象。
2 開(kāi)發(fā)工具與運(yùn)行環(huán)境
2.1 Eclipse開(kāi)發(fā)工具
Eclipse開(kāi)發(fā)工具是一個(gè)跨語(yǔ)言、跨平臺(tái)、開(kāi)放源程序代碼、基于Java語(yǔ)言實(shí)現(xiàn)的可擴(kuò)展性高的應(yīng)用開(kāi)發(fā)平臺(tái)。Eclipse本身只是一組應(yīng)用框架和提供的相關(guān)服務(wù),它的作用是通過(guò)各種插件來(lái)構(gòu)成組合化的開(kāi)發(fā)環(huán)境
2.2 Tomcat Web服務(wù)器
現(xiàn)在流行的支持JSP語(yǔ)言的應(yīng)用服務(wù)器是多種多樣的,Tomcat是目前流行性很高的Web服務(wù)器。Tomcat是免費(fèi)、開(kāi)源的Serlvet容器。Tomcat軟件不僅僅是Servlet的容器,它還能夠提供JMX API 和JNDI的實(shí)現(xiàn)機(jī)制。
2.3 SQL Server 2000
SQL Server 2000是微軟公司SQL Server系列中的一個(gè)成熟的大型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)版本,SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng)具有強(qiáng)大的關(guān)系數(shù)據(jù)庫(kù)的開(kāi)發(fā)、創(chuàng)建、管理、設(shè)計(jì)等相關(guān)實(shí)施功能,和使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點(diǎn)。
3 系統(tǒng)總體設(shè)計(jì)
3.1 系統(tǒng)體系結(jié)構(gòu)
基于B/S結(jié)構(gòu)的個(gè)人博客系統(tǒng),應(yīng)由終端(用戶主機(jī)/瀏覽器)、WEB服務(wù)器、數(shù)據(jù)服務(wù)器構(gòu)成。個(gè)人博客系統(tǒng)網(wǎng)站的核心是中間的接入服務(wù)器和應(yīng)用服務(wù)器部分。個(gè)人博客系統(tǒng)網(wǎng)站的總體結(jié)構(gòu)圖如圖1所示。
圖1 總體結(jié)構(gòu)圖
3.2 主要功能設(shè)計(jì)
為了滿足本系統(tǒng)互動(dòng)交流的功能,設(shè)計(jì)以下幾個(gè)模塊:用戶注冊(cè)登錄模塊、文章檢索查詢模塊、頁(yè)面顯示模塊、后臺(tái)管理模塊和相冊(cè)管理模塊。
表1 各模塊功能劃分
模塊功能備注
用戶登錄用戶登錄判斷合法用戶
前臺(tái)頁(yè)面進(jìn)入博客系統(tǒng)首頁(yè)導(dǎo)航進(jìn)入不同頁(yè)面
文章查詢查詢博客文章查詢以往博客
后臺(tái)頁(yè)面后臺(tái)管理博主對(duì)所有版塊管理
相冊(cè)管理存儲(chǔ)相冊(cè)、圖片對(duì)圖片增刪等
4 功能模塊設(shè)計(jì)
系統(tǒng)各模塊間的關(guān)系如圖2所示:
圖2 各模塊關(guān)系圖
4.1 用戶注冊(cè)登錄模塊
本模塊實(shí)現(xiàn)新用戶注冊(cè),登錄功能。其中,注冊(cè)新用戶時(shí)會(huì)對(duì)用戶輸入的注冊(cè)信息進(jìn)行有效的驗(yàn)證。注冊(cè)成功后,登錄時(shí)會(huì)對(duì)輸入的信息進(jìn)行正確性驗(yàn)證,當(dāng)用戶名、密碼錯(cuò)誤時(shí)提示錯(cuò)誤信息。
4.2 文章檢索查詢模塊
本模塊用于幫助用戶快速定位到自己關(guān)注的文章頁(yè)面。還提供了最新文章推薦、按關(guān)鍵字進(jìn)行快速檢索。
4.3 發(fā)表文章模塊
該模塊幫助博主能夠發(fā)表新的文章。在進(jìn)行了嚴(yán)格的身份驗(yàn)證后,博主就可以發(fā)表文章,發(fā)表文章時(shí),博主可以對(duì)文章進(jìn)行類(lèi)別的選擇。
4.4 發(fā)表與顯示留言管理
該模塊的功能是完成與文章相關(guān)的留言管理。只有注冊(cè)成為本站用戶才能對(duì)文章發(fā)表留言。
5 數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)系統(tǒng)功能設(shè)計(jì)要求和模塊劃分,本站的數(shù)據(jù)庫(kù)包含有:管理員信息表、用戶信息表、評(píng)論信息表、公告信息表、文章回復(fù)信息表、個(gè)人相片信息表、文章類(lèi)型信息表、投票信息表、朋友信息表。
根據(jù)用戶需求和系統(tǒng)分析,本系統(tǒng)采用SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)。在SQL Server 2000 數(shù)據(jù)庫(kù)管理系統(tǒng)中建立名稱為db_BlogMay的數(shù)據(jù)庫(kù),在庫(kù)中建立信息表。
表2 文章信息表(tb_article)
名稱字段名類(lèi)型是否主鍵是否非空
id
所屬類(lèi)型
標(biāo)題
內(nèi)容
時(shí)間
閱讀次數(shù)id
typeID
title
content
phTime
numberint
int
varchar (30)
varchar (2000)
varchar(30)
int是
否
否
否
否
否是
是
否
否
否
否
表3 公告信息表(tb_discuss)
名稱字段名類(lèi)型是否主鍵是否非空
id
標(biāo)題
內(nèi)容
時(shí)間id
discussTitle
discussContent
discussTimeint
varchar(30)
varchar(1000)
varchar(50)是
否
否
否是
否
否
否
6 系統(tǒng)實(shí)現(xiàn)
包括前臺(tái)界面和后臺(tái)代碼的實(shí)現(xiàn)。主要有登陸頁(yè)面、注冊(cè)頁(yè)面、博客首頁(yè)后臺(tái)管理頁(yè)面、文章列表頁(yè)面、公告列表頁(yè)面、相冊(cè)查詢頁(yè)面、投票結(jié)果頁(yè)面、用戶設(shè)置頁(yè)面、朋友添加頁(yè)面、朋友設(shè)置頁(yè)面、相冊(cè)設(shè)置頁(yè)面、相冊(cè)添加頁(yè)面、投票內(nèi)容設(shè)置頁(yè)面、投票內(nèi)容添加頁(yè)面、公告設(shè)置頁(yè)面、公告添加頁(yè)面、文章分類(lèi)頁(yè)面、文章設(shè)置頁(yè)面、發(fā)表文章頁(yè)面。
7 結(jié)束語(yǔ)
基于S2SH框架的博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)已經(jīng)順利完成,此系統(tǒng)可以按著設(shè)計(jì)思想和需求功能正常運(yùn)行。本文采用先進(jìn)的Struts2+Spring+Hibernate框架技術(shù)進(jìn)行系統(tǒng)開(kāi)發(fā),功能性設(shè)計(jì)方面依據(jù)現(xiàn)有的博客系統(tǒng)的已有功能進(jìn)行實(shí)現(xiàn),比已有的博客系統(tǒng)有更好的安全性、模塊開(kāi)發(fā)性和跨平臺(tái)性。
參考文獻(xiàn):
[1]孫衛(wèi)琴.Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解(第2版)[M].北京:電子工業(yè)出版社,2009(01):18-19.
[2]譚丙煜.怎樣撰寫(xiě)科學(xué)論文[M].沈陽(yáng):遼寧人民出版社,1982:5-6.
[3]聶明,徐繞山,王俊松.Java Web應(yīng)用開(kāi)發(fā)項(xiàng)目教程[M].北京:電子工業(yè)出版社,2009(01):289-293.
[4]孫衛(wèi)琴.Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解(第2版)[M].北京:電子工業(yè)出版社,2009(01):56-59.
[5]張孝祥.Java就業(yè)培訓(xùn)教程(第1版)[M].北京:清華大學(xué)出版社,2003(01):34-46.
[6]孫鑫.Structs2深入詳解(第2版)[M].北京:電子工業(yè)出版社,2007(02):14-16.
[7]王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2006:86-101.
[8]張龍祥.數(shù)據(jù)庫(kù)原理與設(shè)計(jì)[M].北京:人民郵電出版社,2002:30-40.
[9]王能斌.數(shù)據(jù)庫(kù)系統(tǒng)原理[M].北京:電子工業(yè)出版社,2000:12-17.
作者簡(jiǎn)介:隋志遠(yuǎn)(1970-),男,山東威海人,工學(xué)學(xué)士,計(jì)算機(jī)教研室主任,講師,研究方向:多媒體技術(shù)與計(jì)算機(jī)應(yīng)用。
作者單位:中國(guó)海洋大學(xué),青島山東 266100;煙臺(tái)工程職業(yè)技術(shù)學(xué)院,山東煙臺(tái) 264006