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
人機交互界面發展趨勢研究
主站蜘蛛池模板: 成人在线观看一区| 国产麻豆aⅴ精品无码| 曰韩免费无码AV一区二区| 女同久久精品国产99国| 婷婷午夜影院| 国产精品对白刺激| 五月婷婷欧美| 亚洲精品午夜无码电影网| 久久精品亚洲热综合一区二区| 成·人免费午夜无码视频在线观看| 男人天堂伊人网| 日本国产精品一区久久久| 国产区成人精品视频| 91免费观看视频| 国产主播在线一区| 久久亚洲国产视频| 精品人妻无码中字系列| 丝袜久久剧情精品国产| 影音先锋丝袜制服| 99草精品视频| 大香伊人久久| 中文字幕 欧美日韩| 99久久人妻精品免费二区| 亚洲日本一本dvd高清| 欧美国产另类| 精品久久蜜桃| 国产真实二区一区在线亚洲| 在线免费观看a视频| 一级高清毛片免费a级高清毛片| 国产一区二区三区在线观看免费| 色综合激情网| 亚洲国产亚综合在线区| 国产极品美女在线观看| 亚洲日本精品一区二区| 日本欧美成人免费| 九九热视频在线免费观看| 日韩毛片在线播放| 久久亚洲高清国产| 99国产精品一区二区| 亚洲无卡视频| 国产小视频a在线观看| 欧美无专区| 久久久久无码精品国产免费| 麻豆精品在线视频| 国产成人无码AV在线播放动漫| 欧美日韩在线第一页| a免费毛片在线播放| 天天色天天综合| 欧美亚洲另类在线观看| 中文字幕调教一区二区视频| 国产成人亚洲综合A∨在线播放| 欧美亚洲综合免费精品高清在线观看 | 色欲国产一区二区日韩欧美| 六月婷婷精品视频在线观看| 精品五夜婷香蕉国产线看观看| 日本a级免费| 亚洲国产高清精品线久久| 欧美.成人.综合在线| 一本色道久久88| 97超碰精品成人国产| 亚洲欧美精品在线| 亚洲伊人天堂| 欧美成在线视频| 日韩国产无码一区| 亚洲欧美日本国产综合在线| 第九色区aⅴ天堂久久香| 国产在线视频福利资源站| 欧美综合在线观看| 日本国产精品| 日本五区在线不卡精品| 亚洲综合婷婷激情| 久久免费视频播放| 久久99精品久久久久纯品| 最新亚洲人成网站在线观看| 日韩精品成人在线| 99ri国产在线| 夜夜爽免费视频| 最新国语自产精品视频在| 狠狠做深爱婷婷久久一区| yjizz国产在线视频网| AV在线天堂进入| 国产夜色视频|