999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC設計模式的Struts框架研究

2015-01-02 02:42:44陳星王寧吳特楊東
科技視界 2015年1期
關鍵詞:界面模型系統

陳星王寧吳特楊東

(中國礦業大學〈北京〉機電與信息工程學院,中國 北京 100083)

0 引言

MVC模式最早由Trygve Reenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發明的一種軟件設計模式。并且由于其鮮明特點,廣泛受到程序開發人員的青睞。使用MVC模式的目的是實現一種動態的程式設計,使之簡化對后續程序的修改和擴展,并且可以重復利用程序的某一部分。而基于MVC模式的Struts框架,可以將問題進行劃分,成為一個個的小模塊,這樣使得問題更容易得到解決,系統結構更加清晰,另外當問題發生變化或者當技術有所改變時,我們可以進行代碼重用,這能夠極大的提高開發人員的開發效率。所以基于MVC模式的Struts框架非常適合開發大型的復雜系統。本文詳細介紹了MVC模式的基本思想,以及Struts框架的體系結構。

1 MVC模式概述

1.1 MVC架構

MVC英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層。模型(Model):就是業務流程/狀態的處理以及業務規則的制定。視圖(View)代表用戶交互界面,對于Web應用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應用的復雜性和規模性,界面的處理也變得具有挑戰性。控制(Controller)可以理解為從用戶接收請求,將模型與視圖匹配在一起,完成用戶的請求。這實際上是一種模型的變化-傳播機制。模型、視圖、控制器三者之間的關系和各自的主要功能,如圖1所示。

圖1 MVC模型

1.2 MVC模式的優勢與不足

MVC能夠被眾多的web應用系統作為主流框架,主要原因在于它具有巨大而眾多的優勢,這主要體現在下面幾個方面。

(1)MVC可以讓一個正在運行著的模型,同時建立和使用多個視圖,并且,MVC中具有一種特殊的機制,那就是內置數據監聽機制,依靠觀察者模式,這種機制可以監聽模型層數據的更新,并且能夠同步將視圖層的數據進行更新,以此來實現同步響應。

(2)在視圖和控制器之間,是相互透明和獨立的。這種特點,可以讓開發人員根據需要來動態的定制控制器和視圖之間的關聯關系,以此開發相對復雜的應用系統。同樣因為視圖和模型之間是相互獨立、分別存在的,所以如果在做跨平臺的系統移植時,把一個模型單獨移植到新的平臺進行工作就會相對比較簡單。我們僅僅需要在新的平臺上將視圖重新設計,并且重新運行控制器。

(3)由于MVC是一種思想,是一種潛在框架結構,因此我們可以在此模型的基礎上建立客制化的應用框架,以此來滿足客戶的個性化需求。

雖然MVC具有很多的優點,但是也有一些不足的地方,例如,使得系統結構更加復雜,從而增加了實現的難度。此外,MVC適用于相對規模比較大的系統,如果系統實現的功能結構相對比較簡單,那么如果嚴格遵循MVC模式,反而會使得系統結構復雜度增加,并且還有可能由于進行跟多的更新操作,導致系統運行效率降低。另外,視圖與控制器之間的耦合性過強。雖然在理論上,視圖與控制器之間是相互分離的,但是在實際的應用中,視圖和控制器之間的耦合性還是比較強的。如果視圖中沒有控制器的話,那么他的應用將會非常有限,反之亦然。這種強耦合阻礙了組件的獨立復用。還有,視圖通過模型界面訪問數據的效率很低,這是由于在模型層中提供的接口是不相同的,因此視圖為了獲得足夠多的顯示數據,往往需要進行多次調用,這種方式訪問數據的效率比較低,并且對系統操作性能也有一定的影響。

綜上所述,通過對MVC模式的分析,可以看出MVC模式的作用是很明顯的,并且在大的系統結構中作用會更加明顯。

2 MVC模式基本實現方法

實現MVC模式的方法不止一種,例如使用Struts或jsf等MVC模式的框架,本身就是一個實現。下面主要來介紹一種簡單的基本實現方法。

2.1 Model的實現

在Model的實現過程中,最關鍵的地方在于定義一個具有存儲多個數據更新的用的監聽對象向量。并且根據這個向量可以編寫出下面的兩個函數,以此來分別實現添加數據業務時監聽對象的添加和發生更新時能及時把消息發送給所有的監聽對象:

//當注冊模型發生修改時需通知的對象

//將變化通知隊列中的每個視圖

2.2 View的實現

在視圖的實現過程中,關鍵的地方有三點。第一點是我們在進行視圖構造函數時,需要將視圖注冊到指定的模型對象中去(model addChangeListener(view));第二點需要做的就是定義一個能夠存放和它所關聯的控制器對象的向量,并且我們需要根據這個向量的對象,定義增加動作監聽者的注冊方法 (public void addUserGestureListener(Controllerb));最后,我們還得需要為視圖編寫一個能夠依靠傳入對象的類型來顯示不同的界面的方法。通過上面所說的三個關鍵點,視圖就能夠實現接收模型更新的通知、發送動作到控制器,并且能夠接受控制器對顯示界面的控制。

2.3 Controller的實現

相對于模型的實現和視圖的實現,控制器的實現要簡單很多。因為對于控制器來說,只需定義一個模型對象和視圖對象就能能實現。模型對象是為了方便在函數中進行調用其業務的行為,視圖對象是為了方便于將控制器的動作注冊到視圖中去,使他們可以成為該視圖的動作接收者。

3 基于MVC模式的Struts框架

所謂的基于MVC模式的STRUTS框架,實際上就是把JavaServlet、JSP、 自 定 義 標 簽 (TagLib)、JavaBeans、XML和 信 息 資 源(Resource Bundles)整合到一個統一的框架中,由此組成了一個可復用的MVC設計。Struts框架本身帶有自己的控制器,同時還整合了其它的一些能夠實現模型層和視圖層的技術,而且,Struts框架提供了許多可供擴展和定制的地方。同時,Struts提供自定義標記庫,通過這些自定義標記可以順利完成和系統的Model部分交互,通過使用這些自定義標記創建的JSP表單,可以實現和Model部分中的ActionForm的映射,以此來完成對用戶數據的封裝。圖2顯示了Struts的工作流程。

圖2 struts的工作流程圖

(1)Struts框架總控制器(ActionServlet),作用是用來完成所有初始化工作。當啟動總控制器之后,首先會讀取Struts-config.xml的配置信息,目的是為相應的對象進行不同的Struts模塊初始化。當在Web容器啟動時,初始化動作也會自動完成,總控制器完成初始化動作后,將通過URL匹配映射截獲所有以.do結尾的URL請求。

(2)用戶向Web應用程序器提交一個請求的方法有兩種,一種是提交表單,另一種是調用URL,而用戶請求的數據會通過HTTP協議上傳給Web服務器。

(3)控制器接收HTTP請求,然后控制器首先會通過ActionConfig找出對應該請求的Action子類,如果沒有找到對應的Action,控制器直接會把請求轉發給JSP或者靜態頁面。如果有對應的Action,并且這個Action有一個相應的ActionForm,ActionForm首先會被控制器實例化,然后會使用HTTP請求的數據來填充其屬性,然后保存在ServletContext中,這樣就可以被其它Action對象或者JSP調用。

(4)控制器根據配置信息將請求切換到具體的ActionFormBean也一并傳給這個Action的execute()方法。

(5)Action一般其中只包含一個execute()方法,它的作用是負責執行相應的業務邏輯,然后會返回一個ActionForward對象,控制器會通過這個ActionForward對象來進行轉發工作。

(6)根據業務處理時產生的不同結果,Action會返回一個目標相應對象給總控制而這個目標相應對象對應的是一個具體的JSP頁面或者另外一個Action。

(7)總控制器根據業務功能Action返回的目標響應對象,將HTTP請求轉換到這個目標響應對象中,通常來說,它是一個具體的JSP頁面。

(8)目標響應對象(JSP)將結果頁面展現給用戶。

4 結論

綜上所述,MVC模式已經被廣泛的應用于軟件開發之中,它可以通過對復雜度的簡化,使程序結構更加直觀。軟件系統通過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。而使用基于MVC模式的Struts框架極大的提高了控制層的靈活性,增加了代碼的可重用性。并且由基于MVC模式的Struts框架構建的復雜系統可以分離數據訪問和數據表現,讓開發人員可以開發一個可伸縮性強、便于擴展的控制器,來維護整個流程。因此在結構復雜的系統中基于MVC模式的Struts框架有著很大的優勢和發展前景。

[1][美]Ivor Horton.Java 2 入門經典 JDK5[M].潘曉雷,于浚泊,王丹,等,譯.北京:機械工業出版社,2005:1-1058.

[2]賴英旭,劉增輝,李毛毛.MVC模式在B/S系統開發中的應用研究[J].微計算機信息,2006,22(10-3):62-64.

[3]孫衛琴.精通 Struts:基于 MVC 的 Java Web設計與開發[M].北京:電子工業出版社,2004,8:7-35.

[4]菜劍,景楠.Java Web 應用開發:J2EE 和 Tomcat[M].2 版.北京:清華大學出版社,2005,1:35-250.

[5]孫衛琴,李洪成.Tomcat與 Java.Web開發技術詳解[M].北京:電子工業出版社,2004,4:29-134.

[6]殷兆麟,張永平,姜淑娟.Java 網絡高級編程[M].北京:清華大學出版社,北京交通大學出版社,2005,5:94-235.

[7][美]Marco Pistoia,Nataraj Nagaratnam,等.企業級 Java 安全性:構建安全的J2EE應用[M].尹亞,明喻衛,嚴進寶,譯.北京:清華大學出版社,2005,3:72-109.

猜你喜歡
界面模型系統
一半模型
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
重要模型『一線三等角』
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
重尾非線性自回歸模型自加權M-估計的漸近分布
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
人機交互界面發展趨勢研究
主站蜘蛛池模板: 国产人妖视频一区在线观看| 欧美在线观看不卡| 免费观看欧美性一级| 国产精品无码久久久久久| 亚洲中文字幕无码mv| a欧美在线| 天堂va亚洲va欧美va国产| 日韩欧美网址| 国产成人精品在线1区| 中国国产高清免费AV片| 亚洲女同欧美在线| 国产精品欧美激情| 午夜视频免费试看| 国产一区在线观看无码| 2021国产精品自产拍在线| 成人国产精品视频频| 在线免费无码视频| 一本大道无码日韩精品影视| 国产乱子伦手机在线| 亚洲综合天堂网| 婷婷99视频精品全部在线观看| 97se亚洲综合在线| 午夜精品区| 亚洲AⅤ综合在线欧美一区| 内射人妻无码色AV天堂| 婷婷综合色| 老司机精品99在线播放| 精品福利国产| 亚洲天堂首页| 国产亚洲精品yxsp| 无码人妻热线精品视频| 美女被操黄色视频网站| 国产成人一区免费观看| 日韩色图区| 国产精品吹潮在线观看中文| 日本草草视频在线观看| 亚洲国产日韩一区| 国内嫩模私拍精品视频| 九色视频在线免费观看| 精品一区二区三区自慰喷水| 亚洲永久视频| 98精品全国免费观看视频| 国模私拍一区二区| 99在线观看免费视频| 亚洲欧美成aⅴ人在线观看| 亚洲精品少妇熟女| 亚洲成a人片| 国产成人夜色91| 97人人模人人爽人人喊小说| 亚洲另类色| 亚洲女同欧美在线| 亚洲无卡视频| 一本大道无码日韩精品影视| 亚洲一区二区三区麻豆| 天堂在线www网亚洲| 日韩无码黄色网站| 福利在线一区| 激情無極限的亚洲一区免费| jizz在线免费播放| 久久精品91麻豆| 国产精品久久久久无码网站| 婷婷99视频精品全部在线观看| 成人欧美日韩| 亚洲一区波多野结衣二区三区| 日本不卡在线视频| 思思热在线视频精品| 亚洲视频黄| 露脸真实国语乱在线观看| 亚洲欧美一区二区三区蜜芽| 欧美不卡在线视频| 国内精品视频| 日本一本正道综合久久dvd| 色婷婷视频在线| 亚洲日韩第九十九页| 日本a级免费| 亚洲,国产,日韩,综合一区 | 第九色区aⅴ天堂久久香| 亚洲国产综合精品一区| 一区二区无码在线视频| 久久99国产视频| 嫩草影院在线观看精品视频| 久久国产精品嫖妓|