楊帆 林勇 胡秀兵
摘 要: Blog作為一種新的生活方式、新的工作方式和新的學(xué)習(xí)方式已經(jīng)被越來(lái)越多的人所接受,并且它正在改變傳統(tǒng)的網(wǎng)絡(luò)和社會(huì)結(jié)構(gòu)。采用MVC模式設(shè)計(jì)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的博客系統(tǒng),讓MVC模式充分發(fā)揮了JSP、Servlet等J2EE組件的特點(diǎn),從而可使更多的人們通過(guò)文字、圖片、聲音、視頻、無(wú)線等,盡情展示自我、分享感受、參與交流,美化生活。
關(guān)鍵詞: 博客; JSP; Servlet; J2EE; MVC
中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)01-23-04
0 引言
“博客”(Blog或Weblog),是一種十分簡(jiǎn)易的傻瓜化個(gè)人信息發(fā)布方式。任何人都可以像使用免費(fèi)電子郵件一樣,完成個(gè)人網(wǎng)頁(yè)的創(chuàng)建、發(fā)布和更新。博客就是開(kāi)放的私人空間,可以充分利用超文本鏈接、網(wǎng)絡(luò)互動(dòng)、動(dòng)態(tài)更新等特點(diǎn),在網(wǎng)絡(luò)中,精選并鏈接全球互聯(lián)網(wǎng)中最有價(jià)值的信息、知識(shí)與資源[1]。本文基于MVC模式,發(fā)揮JSP、Servlet等J2EE組件的特點(diǎn),對(duì)個(gè)人博客系統(tǒng)進(jìn)行了設(shè)計(jì),并實(shí)現(xiàn)了相應(yīng)的功能,讓用戶能夠更方便地進(jìn)行網(wǎng)絡(luò)表達(dá)和交流。
1 關(guān)鍵技術(shù)
1.1 JSP技術(shù)
JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。
Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。
JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java的,而且所有的JSP頁(yè)面都被編譯成為Java Servlets,所以JSP頁(yè)面具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫(xiě),各處運(yùn)行”的特點(diǎn)。
1.2 B/S體系
1.2.1 三層體系結(jié)構(gòu)
三層體系結(jié)構(gòu)圖如圖1所示。
CGI,ASP,PHP等技術(shù)的出現(xiàn),使得開(kāi)發(fā)動(dòng)態(tài)交互式的Web應(yīng)用得以實(shí)現(xiàn)。用戶通過(guò)瀏覽器向服務(wù)器發(fā)送請(qǐng)求,Web服務(wù)器接收客戶端發(fā)送來(lái)的請(qǐng)求,對(duì)請(qǐng)求進(jìn)行分析,如果請(qǐng)求是靜態(tài)頁(yè)面,那么就將所請(qǐng)求的頁(yè)面發(fā)送到客戶端;如果請(qǐng)求的是動(dòng)態(tài)頁(yè)面,那么就執(zhí)行此動(dòng)態(tài)頁(yè)面,并將執(zhí)行結(jié)果發(fā)送給客戶端。動(dòng)態(tài)頁(yè)面中的腳本程序可以和數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行交互。
1.2.2 JSP網(wǎng)站開(kāi)發(fā)模式
JSP網(wǎng)站開(kāi)發(fā)技術(shù)標(biāo)準(zhǔn)提供了一種常用的開(kāi)發(fā)模式:JSP+Servlet+JavaBean開(kāi)發(fā)模式[5]。
JSP+Servlet+JavaBean模型圖如圖2所示。
Servlet技術(shù)是一種采用Java技術(shù)來(lái)實(shí)現(xiàn)CGI功能的一種技術(shù)。Servlet是運(yùn)行在Web服務(wù)器上,用來(lái)生成Web頁(yè)面。Servlet技術(shù)非常適于服務(wù)器端的處理和編程。
在此種開(kāi)發(fā)模式中,JSP技術(shù)用來(lái)顯示頁(yè)面,該頁(yè)面中沒(méi)有任何的商業(yè)處理邏輯,通過(guò)Servlet技術(shù)來(lái)完成大量的事物處理工作。Servlet用來(lái)處理事務(wù)的請(qǐng)求,充當(dāng)著一個(gè)控制者的角色,并負(fù)責(zé)向客戶發(fā)送請(qǐng)求,創(chuàng)建JSP需要的Bean和對(duì)象,根據(jù)用戶的請(qǐng)求行為,決定將哪個(gè)JSP頁(yè)面發(fā)送給用戶。
從上面分析來(lái)看,該開(kāi)發(fā)模式適合于團(tuán)隊(duì)開(kāi)發(fā),速度相對(duì)較慢,但是可維護(hù)性高[3]。
1.3 MVC設(shè)計(jì)模式
MVC模式的基本形式圖如圖3所示。
MVC(Model-View-Controller)模式并不是J2EE行業(yè)人士標(biāo)新立異的。MVC的核心就是要做到三級(jí)甚至多級(jí)的松散耦合,MVC模式將系統(tǒng)分為三個(gè)部分,分別是:數(shù)據(jù)模型、視圖和控制器,并定義了這三個(gè)部分之間實(shí)現(xiàn)通信的一種模式,使每個(gè)部分不必卷入到其他部分的狀態(tài)表示和方法實(shí)現(xiàn)的細(xì)節(jié)中去。每個(gè)部分有自己的數(shù)據(jù)管理規(guī)則,各個(gè)對(duì)象之間的通信只能使用自己定義的一個(gè)受限連接集合進(jìn)行。保持這種分離性通常是面向?qū)ο缶幊毯驮O(shè)計(jì)要追求的目標(biāo),讓各個(gè)對(duì)象只需專注于自己的事務(wù)。
2 設(shè)計(jì)
2.1 功能模塊設(shè)計(jì)
博客信息系統(tǒng)包括:前臺(tái)信息顯示系統(tǒng)、后臺(tái)信息管理系統(tǒng)。前者是面向公眾的一個(gè)窗口,通過(guò)前臺(tái)信息顯示系統(tǒng),方便訪問(wèn)者瀏覽日志、評(píng)論和留言;發(fā)表評(píng)論和留言。后者是后臺(tái)信息管理系統(tǒng),方便博客管理員發(fā)表日志;回復(fù)評(píng)論和留言;管理日志、評(píng)論、留言及個(gè)人信息 [2]。
博客信息管理系統(tǒng)用例圖如圖4所示。
根據(jù)博客信息管理系統(tǒng)的特點(diǎn),將其分為兩大模塊:前臺(tái)用戶瀏覽模塊和后臺(tái)用戶管理模塊。前臺(tái)用戶瀏覽模塊主要用于用戶瀏覽日志信息;后臺(tái)用戶管理模塊主要用于博客管理員對(duì)個(gè)人博客網(wǎng)站的管理,如日志管理、留言管理及評(píng)論管理等。
博客系統(tǒng)平臺(tái)的前臺(tái)用戶瀏覽模塊流程圖如圖5所示。
前臺(tái)用戶瀏覽模塊主要用于用戶瀏覽日志信息,用戶瀏覽日志有三種瀏覽方式可以選擇:一是直接點(diǎn)擊日志標(biāo)題鏈接,進(jìn)入日志顯示頁(yè)面瀏覽日志;二是點(diǎn)擊博客主題鏈接,進(jìn)入該個(gè)人博客的首頁(yè),然后在該首頁(yè)中選擇所需的日志標(biāo)題鏈接進(jìn)入日志顯示頁(yè)面瀏覽日志;三是通過(guò)首頁(yè)提供的搜索功能,搜索所需要的日志,然后在結(jié)果列表中選擇所需的日志標(biāo)題鏈接進(jìn)入日志顯示頁(yè)面瀏覽日志。瀏覽日志的同時(shí)用戶可以查看別人對(duì)該日志的評(píng)論,然后用戶也可以對(duì)該日志發(fā)表自已的評(píng)論。
用戶進(jìn)入后臺(tái)管理平臺(tái),首先必需進(jìn)行權(quán)限驗(yàn)證,防止未授權(quán)的用戶非法登錄。若未通過(guò)驗(yàn)證,則系統(tǒng)顯示出錯(cuò)提示,并跳轉(zhuǎn)到登錄界面,若通過(guò)驗(yàn)證,則進(jìn)入個(gè)人博客后臺(tái)管理平臺(tái)。用戶可以瀏覽已發(fā)表的日志,并對(duì)其進(jìn)行相應(yīng)的操作如修改日志和刪除日志;可以查看日志的評(píng)論信息并對(duì)其進(jìn)行回復(fù)或者刪除操作;可以發(fā)表新的日志;可以新建日志分類;可以瀏覽個(gè)人博客的留言信息并對(duì)其進(jìn)行相應(yīng)的操作如回復(fù)留言和刪除留言;還可以對(duì)個(gè)人信息進(jìn)行修改。博客系統(tǒng)平臺(tái)的后臺(tái)用戶管理模塊流程圖如圖6所示。
2.2 數(shù)據(jù)庫(kù)表的設(shè)計(jì)
博客信息管理系統(tǒng)所涉及的實(shí)體包括以下五個(gè)方面。
⑴ 用戶:用戶ID、用戶名稱、用戶密碼、博客主題、說(shuō)明、E-mail、注冊(cè)日期、發(fā)表日志數(shù)。
⑵ 類別:類別編號(hào)、類別名、類別描述、用戶ID。
⑶ 日志:日志編號(hào)、日志標(biāo)題、日志內(nèi)容、類別編號(hào)、發(fā)表日期、最后修改日期、用戶ID、瀏覽次數(shù)、評(píng)論數(shù)。
⑷ 評(píng)論:評(píng)論編號(hào)、評(píng)論標(biāo)題、評(píng)論內(nèi)容、發(fā)表日期、最后回復(fù)日期、評(píng)論人、日志編號(hào)。
⑸ 留言:留言編號(hào)、留言標(biāo)題、留言內(nèi)容、發(fā)表日期、最后回復(fù)日期、留言人、用戶ID。
綜合本系統(tǒng)各子模塊要實(shí)現(xiàn)的功能,通過(guò)前文對(duì)博客信息系統(tǒng)數(shù)據(jù)的分析可以得到用戶表、類別表、日志表、日志評(píng)論表、留言表的數(shù)據(jù)庫(kù)概念模型(E-R圖)。
3 實(shí)現(xiàn)
3.1 系統(tǒng)的主窗口
所有的網(wǎng)絡(luò)用戶都可以進(jìn)入該首頁(yè)進(jìn)行登錄、注冊(cè)、瀏覽等相關(guān)的操作。在頁(yè)面的上方是博客系統(tǒng)的導(dǎo)航列表,圖中顯示的導(dǎo)航條包括登錄、注冊(cè)、博客隨筆以及站務(wù)公告。在頁(yè)面的左側(cè)用戶可以根據(jù)隨筆標(biāo)題進(jìn)行搜索;搜索的下方是系統(tǒng)對(duì)博客、隨筆、文章及評(píng)論的統(tǒng)計(jì)信息。最新文章則顯示在博客首頁(yè)的主要中心位置。
博客系統(tǒng)首頁(yè)如圖7所示。
所有的網(wǎng)絡(luò)用戶都可以進(jìn)入某個(gè)人的博客主頁(yè)進(jìn)行瀏覽、留言等相關(guān)的操作。在后臺(tái)管理頁(yè)面的上方分別顯示博客首頁(yè)、隨筆、日志、鏈接、相冊(cè)、帳戶修改、密碼修改等表單。博客用戶經(jīng)過(guò)身份認(rèn)證進(jìn)入個(gè)人博客主頁(yè),可以對(duì)自己的日志或者隨筆進(jìn)行刪除、添加、分類等管理,同時(shí)可以修改自己的用戶名和密碼。
博客后臺(tái)管理界面如圖8所示。
3.2 系統(tǒng)的主要模塊
3.2.1 登錄模塊
當(dāng)用戶需發(fā)表新日志或者是對(duì)博客進(jìn)行管理時(shí),就必須先進(jìn)行登錄驗(yàn)證操作,然后進(jìn)入博客系統(tǒng)后臺(tái)。用戶登錄界面如圖9所示。
3.2.2 日志管理模塊
日志管理顯示模塊列出了日志編號(hào)、日志標(biāo)題以及相應(yīng)的操作:編輯日志和刪除日志。根據(jù)選擇的分類顯示當(dāng)前分類下的日志列表。當(dāng)然,對(duì)日志進(jìn)行操作的前提條件是當(dāng)前登錄用戶具備相應(yīng)的管理權(quán)限。
日志顯示界面如圖10所示。
當(dāng)用戶需要添加新的日志時(shí),可單擊日志管理顯示界面中的添加日志鏈接,進(jìn)入添加新日志的界面。在日志標(biāo)題、內(nèi)容輸入域內(nèi)輸入相應(yīng)的文字,以及選擇分類后,單擊“確定”按鈕進(jìn)行表單提交,完成添加新日志的操作[4]。
3.2.3 撰寫(xiě)日志模塊
撰寫(xiě)日志界面如圖11所示。
3.2.4 刪除日志模塊
如果需要?jiǎng)h除已發(fā)表的日志,可單擊日志管理顯示界面中的刪除日志鏈接。
3.2.5 修改帳戶模塊
修改帳戶界面如圖12所示。
博客用戶可以依照自己的需求在帳戶修改信息這個(gè)模塊對(duì)自己的帳號(hào)、博客名稱等進(jìn)行修改。
3.2.6 修改密碼模塊
修改密碼界面如圖13所示。
在此模塊博客用戶可以根據(jù)自己的需要對(duì)舊的密碼進(jìn)行修改,設(shè)置新的密碼。
4 結(jié)束語(yǔ)
本文對(duì)個(gè)人博客系統(tǒng)以及涉及的相關(guān)技術(shù)進(jìn)行了闡述,利用MVC模式極大地提高了系統(tǒng)的靈活性和復(fù)用性,并發(fā)揮了J2EE各組件的優(yōu)勢(shì)。實(shí)現(xiàn)了閱讀博客,后臺(tái)管理,系統(tǒng)管理等功能模塊,其中,后臺(tái)包括隨筆管理,文章管理,評(píng)論管理,鏈接管理,圖片管理,密碼管理;系統(tǒng)管理包括帳戶管理和密碼管理。完成了普通用戶和系統(tǒng)管理員兩者的功能分離,而且各自的功能操作都能得到正確數(shù)據(jù)并存入數(shù)據(jù)庫(kù)中。下一步將實(shí)現(xiàn)并完善其他更為細(xì)致和豐富的功能。
參考文獻(xiàn):
[1] 張玥,朱慶華.Web 2.0環(huán)境下學(xué)術(shù)交流的社會(huì)網(wǎng)絡(luò)分析——以博客
為例[J].情報(bào)理論與實(shí)踐,2009.
[2] 李仲良.圖書(shū)館學(xué)術(shù)性博客論壇現(xiàn)狀述評(píng)[J].楚雄師范學(xué)院學(xué)報(bào),
2006.12.
[3] 李量,李勃,張智斌.應(yīng)用MVC設(shè)計(jì)模式構(gòu)建基于J2EE平臺(tái)的Web
應(yīng)用系統(tǒng)[C].2003國(guó)際有線電視技術(shù)研討會(huì)論文集,2003.
[4] 張媛,李勃.基于J2EE的電子商務(wù)系統(tǒng)中的Session Facade設(shè)計(jì)模
式[A].2003國(guó)際有線電視技術(shù)研討會(huì)論文集[C],2003.
[5] 楊易.編著.JSP網(wǎng)絡(luò)編程技術(shù)與實(shí)例[M].人民郵電出版社,2005.