王 珍 陳 素 黃紀(jì)盛 駱曉艷 廣州中醫(yī)藥大學(xué)(510006)
MVC模式在項(xiàng)目申報(bào)系統(tǒng)中的應(yīng)用研究
王 珍 陳 素 黃紀(jì)盛 駱曉艷 廣州中醫(yī)藥大學(xué)(510006)
簡(jiǎn)述了MVC模式,分析了申報(bào)系統(tǒng)的業(yè)務(wù)特點(diǎn),介紹了申報(bào)系統(tǒng)的架構(gòu)設(shè)計(jì),并對(duì)如何利用MVC模式整合jQuery、Ajax、JSP、Servlet及JavaBean進(jìn)行系統(tǒng)設(shè)計(jì)進(jìn)行了詳細(xì)的研究。
MVC;申報(bào)系統(tǒng);Servlet;jQuery;Ajax
廣東省中醫(yī)藥類繼續(xù)教育項(xiàng)目申報(bào)系統(tǒng)是一個(gè)基于協(xié)同辦公自動(dòng)化理念的網(wǎng)上申報(bào)系統(tǒng),旨在為廣大科技工作者提供一個(gè)進(jìn)行項(xiàng)目申報(bào)的網(wǎng)絡(luò)平臺(tái),為系統(tǒng)管理員提供一種方便的項(xiàng)目申報(bào)管理手段,并采用科研信息化手段對(duì)傳統(tǒng)工作方法、工作流程進(jìn)行再次改造。本文根據(jù)客戶提出新的需求,在前期的研究基礎(chǔ)上[1],著重研究MVC模式在網(wǎng)上申報(bào)系統(tǒng)中的應(yīng)用。
MVC模式(Model模型-View視圖-Controller控制器)是軟件工程中的一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個(gè)基本部分:Model模型,View視圖和Controller控制器。MVC模式的目的是實(shí)現(xiàn)一種動(dòng)態(tài)的程序設(shè)計(jì),使后續(xù)對(duì)程序的修改和擴(kuò)展簡(jiǎn)化,并且使程序某一部分的重復(fù)利用成為可能。除此之外此模式通過(guò)對(duì)復(fù)雜度的簡(jiǎn)化使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過(guò)對(duì)自身基本部分分離的同時(shí)也賦予了各個(gè)基本部分應(yīng)有的功能[2]。
項(xiàng)目申報(bào)系統(tǒng)是一個(gè)集項(xiàng)目申報(bào)各個(gè)業(yè)務(wù)流程于一身的網(wǎng)上系統(tǒng),涉及項(xiàng)目招標(biāo)單位,項(xiàng)目申報(bào)人,項(xiàng)目評(píng)審專家和后臺(tái)管理員等多個(gè)角色的操作,每一個(gè)角色的操作既有自己的業(yè)務(wù)特點(diǎn),比如招標(biāo)單位能夠發(fā)布項(xiàng)目招標(biāo)信息,申報(bào)人能夠進(jìn)行項(xiàng)目申報(bào),評(píng)審專家能夠?qū)σ焉陥?bào)的項(xiàng)目進(jìn)行評(píng)審,管理員能夠進(jìn)行系統(tǒng)管理等;又與其他角色的操作有共同之處,比如各個(gè)角色在使用系統(tǒng)之前都需要通過(guò)登錄驗(yàn)證,都可以查看公開(kāi)的公告和申報(bào)項(xiàng)目,都涉及對(duì)申報(bào)項(xiàng)目狀態(tài)的修改等,其用例圖如圖1所示。
因此,在明確系統(tǒng)需求之后,在對(duì)系統(tǒng)進(jìn)行編碼之前,需要對(duì)系統(tǒng)的架構(gòu)進(jìn)行設(shè)計(jì),使其既能夠滿足多個(gè)角色的業(yè)務(wù)需求,又能提高應(yīng)用模塊的可重用性,并且便于功能的擴(kuò)展。采用MVC模式進(jìn)行申報(bào)系統(tǒng)的開(kāi)發(fā),既能符合申報(bào)系統(tǒng)的業(yè)務(wù)特點(diǎn),又能夠簡(jiǎn)化設(shè)計(jì)流程,提高開(kāi)發(fā)效率。
圖 1 申報(bào)系統(tǒng)用例圖
4.1 系統(tǒng)整體架構(gòu)設(shè)計(jì) 在申報(bào)系統(tǒng)中應(yīng)用MVC模式,主要是利用了JSP Model 2體系結(jié)構(gòu)。它是一種結(jié)合了Servlet,JSP,JavaBean的優(yōu)點(diǎn)推出的提供動(dòng)態(tài)內(nèi)容服務(wù)的方法。這個(gè)模式分為三部分Servlet,JSP,JavaBean。Servlet做的事情是控制到底最后顯示哪個(gè)JSP頁(yè)面給用戶、JSP做的就是響應(yīng)用戶請(qǐng)求,把結(jié)果數(shù)據(jù)展現(xiàn)給用戶、JavaBean不僅對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行存取了,也處理復(fù)雜的業(yè)務(wù)功能和邏輯判斷。
從它們的設(shè)計(jì)結(jié)構(gòu)就可以看出JSP Model2的優(yōu)點(diǎn),如圖2所示。由于它們?cè)谠O(shè)計(jì)上很好的分工,可以使程序員專注于開(kāi)發(fā)工作,美工人員也不必了解和看懂業(yè)務(wù)邏輯處理代碼,數(shù)據(jù)庫(kù)管理員也可以專心的做好數(shù)據(jù)庫(kù)設(shè)計(jì)和數(shù)據(jù)管理。
圖 2 JSP Model 2體系結(jié)構(gòu)
4.2 MVC模式在系統(tǒng)中的具體應(yīng)用 在申報(bào)系統(tǒng)中,從登錄驗(yàn)證,到項(xiàng)目招標(biāo),申報(bào),評(píng)審和立項(xiàng),以及后臺(tái)的初始化工作,都是采用MVC模式來(lái)實(shí)現(xiàn)的。下面以登錄驗(yàn)證和項(xiàng)目處理為例,詳細(xì)介紹MVC模式在系統(tǒng)中的具體應(yīng)用。
如圖3所示,不同角色進(jìn)行登錄,或者不同角色進(jìn)行項(xiàng)目的處理,都通過(guò)視圖(View)的標(biāo)記(tag)來(lái)進(jìn)行邏輯判斷,腳本語(yǔ)言Check.js會(huì)在客戶端進(jìn)行驗(yàn)證,以保證輸入是否合法有效,防止SQL注入式攻擊,然后根據(jù)tag的取值,調(diào)用控制器(Controller)中相應(yīng)的Servlet進(jìn)行業(yè)務(wù)處理。
在控制器中,所有的業(yè)務(wù)處理均封裝在QueryInfo類中,QueryInfo通過(guò)函數(shù)重載,可以根據(jù)Servlet傳遞的參數(shù)數(shù)目和類型判斷哪個(gè)函數(shù)被調(diào)用,從而提高了程序的可復(fù)用性。
圖 3 MVC模式在系統(tǒng)中的具體應(yīng)用
在模型層(Model)中,程序把JavaBean的定義跟數(shù)據(jù)庫(kù)的操作類SQLConn結(jié)合起來(lái),使JavaBean的每一個(gè)實(shí)例對(duì)應(yīng)查詢集中的每一條記錄,使程序?qū)τ涗浀牟僮鬓D(zhuǎn)化為對(duì)實(shí)例的操作,很好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計(jì)理念。數(shù)據(jù)庫(kù)操作類SQLConn是一個(gè)抽象類,可以根據(jù)后臺(tái)的數(shù)據(jù)庫(kù)類型派生出不同的數(shù)據(jù)庫(kù)操作子類,比如SQLServerConn和MySqlConn,以操作對(duì)應(yīng)的SQL Server和MySQL數(shù)據(jù)庫(kù),從而提高程序的可移植性。
從模型層進(jìn)行取數(shù),并在控制層進(jìn)行驗(yàn)證之后,程序會(huì)調(diào)用jQuery庫(kù)中的Ajax對(duì)象把消息通過(guò)異步傳輸返回到客戶端的瀏覽器,用戶不需要刷新就可以查看服務(wù)器返回的信息,就可以知道自己的操作是否成功,極大的提高了用戶的體驗(yàn)。
網(wǎng)上申報(bào)系統(tǒng)的研究與實(shí)現(xiàn)對(duì)減少?gòu)V東省各醫(yī)藥類工作單位工作量,提高工作效能,規(guī)范化申報(bào),促進(jìn)繼續(xù)教育系統(tǒng)信息化建設(shè)具有現(xiàn)實(shí)意義;同時(shí),該系統(tǒng)的實(shí)現(xiàn)充分體現(xiàn)了MVC模式的設(shè)計(jì)理念,既提高了開(kāi)發(fā)效率,還有效的保證了系統(tǒng)的可移植性和擴(kuò)展性,是科研信息化的重要體現(xiàn)。
[1] 陳素,黃紀(jì)盛,王珍,等.基于jQuery的中醫(yī)藥類項(xiàng)目網(wǎng)上申報(bào)系統(tǒng)的研究與設(shè)計(jì)[J].中國(guó)中醫(yī)藥現(xiàn)代遠(yuǎn)程教育,2010,(3):16-17.
[2] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計(jì)與開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2008:11.
Application Research on MVC Pattern in Declaration System
Wang Zhen Chen Su Huang Jisheng Luo Xiaoyan (Guangzhou University of Chinese Medicine,Guangzhou 510006,China)
This paper gives the description of the MVC pattern and analysis of the operational characteristics in declarer system;then introduces the architecture design of this system;and makes studies in detail to show how to integrate jQuery, Ajax, JSP, Servlet, JavaBean to design this system by using the MVC model.
MVC Declaration System Servlet jQuery Ajax
10.3969/j.issn.1672-2779.2010.24.068
1672-2779(2010)-24-0087-02
2010-09-09)