專利名稱:一種實(shí)現(xiàn)mvc的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web平臺(tái)的應(yīng)用開發(fā)環(huán)境,特別是涉及一種實(shí)現(xiàn)MVC 的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,當(dāng)前信息化系統(tǒng)的建立趨勢(shì),是采用 B/S結(jié)構(gòu),用戶界面通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事物邏輯在前 端實(shí)現(xiàn),但主要事物邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂的三層結(jié)構(gòu)MVC。
當(dāng)前J2EE開發(fā)主要是采用MVC模式(Model-View-Controller, 模型一視圖一控制器模式)。它把軟件系統(tǒng)分為三個(gè)基本部分模型 (Model),視圖(View)和控制器(Control ler )。 MVC才莫式的目的 就是實(shí)現(xiàn)Web系統(tǒng)的職能分工
視圖-用于與用戶的交互,通常用JSP來(lái)實(shí)現(xiàn)。 模型-實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常可以用JavaBean或EJB來(lái)實(shí)現(xiàn)。
控制器-是模型與視圖之間溝通的橋梁,它可以分派用戶的請(qǐng)求 并選擇恰當(dāng)?shù)囊晥D以用于顯示??刂破魇峭ㄟ^(guò)servlet來(lái)實(shí)現(xiàn)的。
這種模式存在的問(wèn)題是
用戶視圖之間的切換是頁(yè)面全刷新,用戶可用性不好。 由于控制器是采用servlet實(shí)現(xiàn)的,因此,修改的時(shí)候往往要重 新啟動(dòng)服務(wù)器。
基于企業(yè)的應(yīng)用現(xiàn)有的框架并不能完全適合,因此公司內(nèi)部必須統(tǒng)一開發(fā)平臺(tái),提高公司的市場(chǎng)竟?fàn)幜Α?br>
發(fā)明內(nèi)容
本發(fā)明為解決上述問(wèn)題不足之處,提供一種實(shí)現(xiàn)MVC的方法, 基于javascript作為控制器來(lái)實(shí)現(xiàn)MVC才莫型,
視圖-用于與用戶的交互,用HTML來(lái)實(shí)現(xiàn);
模型-實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,并且生成HTML代碼片段,由JSP
來(lái)實(shí)現(xiàn);
控制器-是模型與視圖之間溝通的橋梁,它決定那些模型到頁(yè)面 上來(lái)展示。
所述模型一主要為視圖提供部分代碼片段,但是不負(fù)責(zé)整個(gè)頁(yè)面 顯示的布局和頁(yè)面之間切換的控制。
所述控制器是通過(guò)javascript來(lái)實(shí)現(xiàn)的。
第一步,用戶在頁(yè)面上進(jìn)行具體操作,WEB服務(wù)器調(diào)用一個(gè) javascript,
第二步,通過(guò)AJAX,直接調(diào)用后臺(tái)JAVA實(shí)現(xiàn)得到html的代碼片
段;
第三步,后臺(tái)JAVA完成后,通過(guò)AJAX回調(diào)函數(shù),執(zhí)行一個(gè) javascript實(shí)現(xiàn)產(chǎn)生的html代碼片賴:設(shè)置到對(duì)應(yīng)的DOM上。 所述第一步,具體包括
Al.先創(chuàng)建一個(gè)控制器對(duì)象controller;
A2.組裝數(shù)據(jù)對(duì)象;
A3^殳置controller的回調(diào)函凄丈
A4. i殳置controller,才莫型url, domID。 所述第二步,具體包括Bl.判斷用戶是否登錄; B2.執(zhí)行業(yè)務(wù)邏輯;
B3.執(zhí)行模型url,得到若干的html的代碼片段。 所述第三步,具體包括
Cl.判斷后臺(tái)程序執(zhí)行是否有異常,如果有,則提示具體錯(cuò)誤信 息;如果沒有異常,執(zhí)行下一步C2;
C2.判斷用戶是否超時(shí)了,如果超時(shí),則彈出登錄框,請(qǐng)用戶重 新登錄,如果沒有超時(shí),執(zhí)行下一步C3;
C3.判斷后臺(tái)程序執(zhí)行業(yè)務(wù)邏輯是否有錯(cuò)誤,如果有,則提示具 體錯(cuò)誤信息,否則執(zhí)行下一步C4;
(M.根據(jù)controller里面設(shè)置的模型url,把這些模型url產(chǎn)生 的h tm 1代碼片,殳設(shè)置到對(duì)應(yīng)的DOM上。 本發(fā)明的優(yōu)點(diǎn)
通過(guò)javascriptMVC,使開發(fā)人員操作方便,提高開發(fā)效率,快捷 地開發(fā)程序。由于 javascriptMVC是建立在ajax (Asynchronous JavaScript + XML)之上的,實(shí)現(xiàn)局部刷新頁(yè)面,也為用戶提供更友 好的界面,總之,用戶體驗(yàn)性很好。
圖l是本發(fā)明一實(shí)施例用戶在頁(yè)面上操作的流程圖。
具體實(shí)施例方式
本發(fā)明的中心思想是,javascript作為控制器來(lái)實(shí)現(xiàn)MVC的方 法[簡(jiǎn)稱JavaScriptMVC],在JavaScriptMVC下,模型,視圖和控 制器功能如下
視圖-用于與用戶的交互,用HTML來(lái)實(shí)現(xiàn)。模型-實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,并且生成HTML代碼片段,由JSP 來(lái)實(shí)現(xiàn)。模型主要為視圖提供部分代碼片段,但是不負(fù)責(zé)整個(gè)頁(yè)面顯 示的布局和頁(yè)面之間切換的控制。
控制器-是模型與視圖之間溝通的橋梁,它決定那些模型到頁(yè)面 上來(lái)展示??刂破魇峭ㄟ^(guò)javascript來(lái)實(shí)現(xiàn)的。
視圖和模型的邏輯比較簡(jiǎn)單。而控制邏輯比較復(fù)雜,下面將結(jié)合 附圖做詳細(xì)說(shuō)明。
如圖l所示,用戶在頁(yè)面上操作的具體步驟 101.用戶在頁(yè)面上進(jìn)行具體^喿作,調(diào)用一個(gè)javascript,實(shí)現(xiàn) 功能如下
1011. 先創(chuàng)建一個(gè)控制器對(duì)象controller
1012. 組裝數(shù)據(jù)對(duì)象
1013. 設(shè)置controller的回調(diào)函凄丈
1014. i殳置controller若干個(gè)(才莫型url, domID) 102.通過(guò)AJAX,直接調(diào)用后臺(tái)JAVA ,實(shí)現(xiàn)功能如下
1021. 判斷用戶是否登錄;
1022. 執(zhí)行業(yè)務(wù)邏輯;
1023. 執(zhí)行模型url,得到html的代碼片段;
103.后臺(tái)JAVA方法完成后,通過(guò)AJAX回調(diào)函數(shù)功能,執(zhí)行一個(gè) javascript方法,實(shí)現(xiàn)功能如下
1031.判斷后臺(tái)程序執(zhí)行是否有異常,如果異常,則提示具 體錯(cuò)誤信息。如果沒有異常,執(zhí)行下一步1032;
1 032.判斷用戶是否超時(shí)了,如果超時(shí),則彈出登錄框,請(qǐng) 用戶重新登錄;如果沒有超時(shí),執(zhí)行下一步1033;1033. 判斷后臺(tái)程序執(zhí)行業(yè)務(wù)邏輯是否有錯(cuò)誤,如果有,則提示 具體錯(cuò)誤信息;否則執(zhí)行下一步1034;
1034. 根據(jù)controller里面設(shè)置的才莫型url j巴這些;f莫型url產(chǎn) 生的html代碼片段設(shè)置到對(duì)應(yīng)的D0M上。這個(gè)就完成頁(yè)面布局的變化。
如果controller注冊(cè)回調(diào)函l丈,那么就^^亍這個(gè)回調(diào)函iL 該操作包括增加,修改,刪除,返回列表,查看。 更具體的例子,操作為放棄 function addUser () { var user = {
name: $ ( "name"). vlaue, address: $("address") - value
var controller = new JSController (); control ler. backCal lFuric = funct ion (map) { alert ("增加員工成功");
var url = "/os/1 ist. jsp";
controller. add0neUrl( url, "commentDiv");
JSService.addUser(user, controller) j
假設(shè)用戶在頁(yè)面點(diǎn)擊增加新用戶,就執(zhí)行addUser方法,addUser完成力口下功能
組裝數(shù)據(jù)成成一個(gè)javascript對(duì)象,
創(chuàng)建一個(gè)javascript控制器對(duì)象,命名為controller
纟會(huì)controller設(shè)置回條函凄丈。
纟合controller i殳置(url,domID),可以i殳置多個(gè)。
調(diào)用JSService方法addUser, 通過(guò)ajax技術(shù),就是 等價(jià)調(diào)用Java方法addUser。 后臺(tái)Java方法addUser執(zhí)行以下內(nèi)容
判斷用戶是否登陸。 增加新用戶。
才艮據(jù)controller內(nèi)容已經(jīng)設(shè)置url地址,^丸行這些url, 得到這些url執(zhí)行結(jié)果html片段。
9
權(quán)利要求
1.一種實(shí)現(xiàn)MVC的方法,其特征在于;基于javascript作為控制器來(lái)實(shí)現(xiàn)MVC模型,視圖-用于與用戶的交互,用HTML來(lái)實(shí)現(xiàn);模型-實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,并且生成HTML代碼片段,由JSP來(lái)實(shí)現(xiàn);控制器-是模型與視圖之間溝通的橋梁,它決定那些模型到頁(yè)面上來(lái)展示。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述模型主要為視圖提供 部分代碼片段,但是不負(fù)責(zé)整個(gè)頁(yè)面顯示的布局和頁(yè)面之間切換的控制。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述控制器是通過(guò) javascript來(lái)實(shí)現(xiàn)的。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于包括如下步驟第一步,用戶在頁(yè)面上進(jìn)行具體操作,WEB服務(wù)器調(diào)用一個(gè)javascript, 第二步,通過(guò)AJAX,直接調(diào)用后臺(tái)JAVA實(shí)現(xiàn)得到html的代碼片段; 第三步,后臺(tái)JAVA完成后,通過(guò)AJAX回調(diào)函凄丈,#1行一個(gè)javascript 實(shí)現(xiàn)產(chǎn)生的html代碼片段設(shè)置到對(duì)應(yīng)的D0M上。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于所述第一步,具體包括 Al.先創(chuàng)建一個(gè)控制器對(duì)象controller;A2.組裝數(shù)據(jù)對(duì)象;A3.設(shè)置controller的回調(diào)函數(shù)A4. i殳置controller,才莫型url, domID。
6. 根據(jù)權(quán)利要求4所述的方法,其特征在于所述第二步,具體包括 Bl.判斷用戶是否登錄;B2.執(zhí)行業(yè)務(wù)邏輯;B3.執(zhí)行模型url,得到html的代碼片段。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于所述第三步,具體包括Cl.判斷后臺(tái)程序執(zhí)行是否有異常,如果有,則提示具體錯(cuò)誤信息;如 果沒有異常,執(zhí)行下一步;C2.判斷用戶是否超時(shí)了,如果超時(shí),則彈出登陸框,請(qǐng)用戶重新登陸, 如果沒有超時(shí),執(zhí)行下一步;C3.判斷后臺(tái)程序執(zhí)行業(yè)務(wù)邏輯是否有錯(cuò)誤,如果有,則提示具體錯(cuò)誤 信息,否則執(zhí)行下一步;C4.根據(jù)controller里面設(shè)置的模型url,把這些模型url產(chǎn)生的html 代碼片段設(shè)置到對(duì)應(yīng)的D0M上。
全文摘要
本發(fā)明提供一種實(shí)現(xiàn)MVC的方法,javascript作為控制器來(lái)實(shí)現(xiàn)MVC的方法,在JavaScriptMVC下,模型,視圖-用于與用戶的交互,用HTML來(lái)實(shí)現(xiàn)。模型-實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,并且生成HTML代碼片段,由JSP來(lái)實(shí)現(xiàn)。模型主要為視圖提供部分代碼片段,但是不負(fù)責(zé)整個(gè)頁(yè)面顯示的布局和頁(yè)面之間切換的控制??刂破?是模型與視圖之間溝通的橋梁,它決定取那些模型到頁(yè)面上來(lái)展示??刂破魇峭ㄟ^(guò)javascript來(lái)實(shí)現(xiàn)的。本發(fā)明通過(guò)javascriptMVC,使開發(fā)人員操作方便,提高開發(fā)效率,快捷地開發(fā)程序。由于javascriptMVC是建立在ajax之上的,實(shí)現(xiàn)局部刷新頁(yè)面,也為用戶提供更友好的界面,總之,用戶體驗(yàn)性很好。
文檔編號(hào)G06F9/44GK101587435SQ20081011195
公開日2009年11月25日 申請(qǐng)日期2008年5月19日 優(yōu)先權(quán)日2008年5月19日
發(fā)明者平 黃 申請(qǐng)人:北京億企通信息技術(shù)有限公司