亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2EE體系結構設計(1)

2019-11-18 12:27:25
字體:
來源:轉載
供稿:網友

  目前大多數企業采用J2EE技術的結構設計與解決方案。對于我們學習和研究J2EE體系結構來說,了解與把握J2EE體系結構的設計方法及一些常用模式是必須的;模型-視圖-控制(model-view-control,簡稱MVC)結構是目前最常見的J2EE應用所基于的體系結構,MVC主要適用于交互式的Web應用,尤其是存在大量頁面及多次客戶訪問及數據顯示;相比較而言,一個工作流體系結構更多應用于過程控制和較少交互的情況下;除了體系結構外,J2EE的設計模式對我們解決應用系統的設計也有很大的幫助。
  
  一、J2EE的模型-視圖-控制(MVC)體系結構
  模型-視圖-控制結構是交互式應用程序廣泛使用的一種體系結構。它有效地在存儲和展示數據的對象中區分功能模塊以降低它們之間的連接度,這種體系結構將傳統的輸入、處理和輸入模型轉化為圖形顯示的用戶交互模型,或者換一種說法,是多層次的Web商業應用;MVC體系結構具有三個層面:模型(Model)、視圖(View)和控制(Controller),每個層面有其各自的功能作用,MVC體系結構如下:
  
 J2EE體系結構設計(1)(圖一)

  
圖1 MVC 體系結構

  
  模型層負責表達和訪問商業數據,執行商業邏輯和操作。也就是說,這一層就是現實生活中功能的軟件模擬;在模型層變化的時候,它將通知視圖層并提供后者訪問自身狀態的能力,同時控制層也可以訪問其功能函數以完成相關的任務。
  
  視圖層負責顯示模型層的內容。它從模型層取得數據并指定這些數據如何被顯示出來。在模型層變化的時候,它將自動更新。另外視圖層也會將用戶的輸入傳送給控制器。
  
  控制層負責定義應用程序的行為。它可以分派用戶的請求并選擇恰當的視圖以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執行的操作;在一個圖形界面中,常見的用戶輸入包括點擊按鈕和菜單選擇。在Web應用中,它包括對Web層的HTTP GET和POST的請求;控制層可以基于用戶的交互和模型層的操作結果來選擇下一個可以顯示的視圖,一個應用程序通常會基于一組相關功能設定一個控制層的模塊,甚至一些應用程序會根據不同的用戶類型具有不同的控制層設定,這主要是由于不同用戶的視圖交互和選擇也是不同的。
  
  在模型層、視圖層和控制層之間劃分責任可以減少代碼的重復度,并使應用程序維護起來更簡單。同時由于數據和商務邏輯的分開,在新的數據源加入和數據顯示變化的時候,數據處理也會變得更簡單。
  
  二、J2EE設計模式
  一個設計模式描述了對于特定設計問題被驗證的解決方案,它綜合了所有開發者對這個問題所在領域的知識和見解;同時也是對于常見問題的可重用方案,它們一般適用于單個問題,但是組織在一起就可以提供整個企業系統的解決方案。下面我們列舉八種常用于J2EE平臺的設計模式,并對每種模式作簡單的介紹,便于大家學習、理解與靈活應用。
  
  1、前控制器
  
  前控制器(front controller)主要提供一種可以集中式治理請求的控制器,一個前控制器可以接受所有的客戶請求,將每個請求遞交給相應的請求句柄,并適當地響應用戶。
  
  前控制器也是表示層的設計模式,它的出現主要是由于表示層通常需要控制和協調來自不同用戶的多個請求,而這種控制機制又根據不同的需要,可能會集中式控制或分散式控制。換句話說,就是應用系統需要對于表示層的請求提供一個集中式控制模塊,以提供各種系統服務,包括內容提取、視圖治理和瀏覽,假如系統中沒有這種集中式控制模塊或控制機制,每個不同的系統服務都需要進行單獨的視圖處理,這樣代碼的重復性就會提高,致使系統開發代價提高;同時,假如沒有一個固定模塊治理視圖之間的瀏覽機制,致使其瀏覽功能下放于每個不同的視圖中,最終必將使得系統的可維護性受到破壞;本文中我們主要討論的是集中式控制模塊,而不是分散式控制,因為前者更適合于大型的應用系統。
  
  基于上面所說的問題,研究人員提出了前控制器的設計模式。在這種模式中,控制器提供一個處理不同請求的控制點,這里的處理工作包括安全事務、視圖選擇、錯誤處理和響應內容的生成;通過將這些處理工作集中在一點進行,大大地減低了java代碼量,同時這種方法也可以減少在視圖模塊的程序邏輯,保證了在不同請求之間可以重用大量的邏輯代碼。通常,控制器都是和一個分派組件聯合工作的,分派組件主要是用于視圖治理和瀏覽,也就是為用戶選擇下一個應該顯示的視圖,并同時提供對于相關顯示資源的控制。分派組件可以包含在控制器之內,或是在另外一個單獨的組件中;雖然前控制器模式推薦對于全部的請求使用統一處理,但是它也沒有限制在一個系統中只能具有一個控制器,在系統中的每個層次都可以具有多個控制器,并且映射至不同的系統服務,下圖2顯示了前控制器的類圖。
  
 J2EE體系結構設計(1)(圖二)

  
圖2 前控制器的類圖

  
  圖3顯示了前控制器的序列圖,表示一個控制器如何處理相關的請求。
  
 J2EE體系結構設計(1)(圖三)

  
圖3前控制器序列圖

  
  下面我們來討論一下圖3的各個組件。
  
  2、控制器
  
  控制器(controller)是負責處理各種客戶請求的控制點,并可以將一定的職能(如用戶認證等)下放給幫助類。
  
  (1)分派組件(Dispatcher)。一個分派組件主要是用于視圖的治理和瀏覽,為用戶選擇下一個可以顯示的視圖,并治理相關的顯示資源;分派組件可以在一個控制器內運行,或者作為一個單獨的組件與控制器協同工作;開發人員可以在分派組件中實現靜態的視圖分派技術,或是復雜的動態分派。
  
  (2)幫助類(Helper)。幫助類負責幫助一個視圖或控制器來完成其處理工作,因此,幫助類具有多項職責,包括收集數據、存儲中間數據模型等;另外,幫助類也可以在保證數據完整性和準確性的情況下,為不同顯示需求修改數據模型;也就是說,根據用戶的請求,幫助類可以向視圖提供未經處理的原始數據,或是已經格式化后的Web內容,一個視圖同時可以和多個幫助類協同工作,而后者通常是由JavaBeans和標簽(tag)實現的。
  
  3、視圖
  
  視圖(view)負責向用戶顯示信息,而幫助類則負責支持視圖的工作,即打包和建立相應的數據模型,下面我們介紹幾種可以實現控制器的方法。
  
  1)基于Servlet前控制器
  
  這種方法建議使用servlet來實現一個控制器,盡管在語法上相差無幾,但是它比使用jsp來實現要優越一些;因為控制器所進行的請求處理,多數都是與程序運行和控制流動相關的,這些處理工作雖然與顯示模式相關,但是實際上是邏輯獨立的,所以它們更適合在servlet中實現,而不是JSP技術中;使用這種方法也存在一些弱點,比如說servlet無法使用JSP運行環境的資源,如請求參數等,但是這個弱點也不是不能解決的,我們可以在servlet中建立相關的句柄來訪問同樣的資源,當然其代碼會變得繁瑣一點。
  
  2)基于JSP的前控制器
  
  這種方法建議使用JSP頁面實現控制器,盡管語法上相同,但是Servlet方案要比其優越一些;因為控制器所處理的邏輯一般都不是有關顯示模式的,所以在JSP頁面中實現控制器似乎有點風馬牛不相及;使用這種方法也不利于開發團隊的角色和職責的分配,即軟件開發人員需要在負責顯示邏輯的JSP頁面中修改請求處理的代碼,通常,這種工作都是相當復雜的,尤其考慮整個JSP頁面的編程、編譯、測試和調試錯誤。
  
  3)控制器之中的分派組件
  
  假如分派組件沒有較多功能,開發人員可以在控制器實現該組件。
  
  4)基礎前端
  
  基于使用servlet實現前控制器,這種方案建議實現一個控制器作為基礎類,這樣其他的控制器可以在其之上擴展;這個基礎類可以包含一些通用的邏輯實現,它的子類就會重載這些實現代碼,這種方法也有一定的缺陷,當有許多子類繼續這個基礎類,并大量地重用代碼時,那么就有可能出現一個類的改變會影響到所有子類的情況。
  
  5)用過濾器實現前控制器
  
  過濾器提供了與用戶請求的中心處理相類似的功能,也就是說,控制器的一些功能可以由過濾器來實現,這種方案的過濾器主要負責處理請求的截取和解釋,而不是請求的處理和響應的生成;通??梢詾閼孟到y提供一個核心控制點,以處理所有的系統服務和程序邏輯,核心控制也就表明了所有的請求都可以簡單地被跟蹤和記錄,從而方便各種服務功能的實施;當然,它也存在一些缺點,一個核心控制點的小問題可能會引發系統的崩潰,但在應用系統的實際開發中,這并不是個問題,因為通常我們都會在同一個層面上實現多個控制器,從而避免了這個缺陷;在控制器中,開發人員可以很方便地實現一個檢查安全機制的組件,從而可以在最外層屏蔽對系統的惡意訪問,另外使用控制器也會提高系統模塊的可重用性,尤其在控制器同時使用幫助類的時候。
  
  4、視圖幫助
  
  視圖幫助(View helper)是屬于表示層的設計模式,一個視圖幫助可以包含相關視圖中的數據訪問和內容顯示的邏輯,并可以精煉簡化視圖;顯示邏輯主要是關于如何格式化頁面上的數據,而訪問邏輯則是關于如何取出數據,視圖幫助通常用來顯示數據的JSP標記(tag)或是讀取數據的JavaBean。
  
  這種設計模式的出現主要是由于目前的應用系統通常需要實時地開發顯示內容,并且能處理動態的程序數據。假如這些程序數據的訪問邏輯和顯示邏輯的關系過于緊密,則系統的表示層就會經常需要改動,從而系統的靈活性、重用性會大大地受到破壞;同時在相同的模塊中實現訪問邏輯和顯示邏輯將會影響系統的模塊化

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91在线播放精品91| 欧美限制级电影在线观看| 在线丨暗呦小u女国产精品| 欧美成人激情视频| 粉嫩av一区二区三区免费野| 久久精品成人一区二区三区| 91香蕉电影院| 国产精品久久久久久久久久尿| 一个色综合导航| 97国产真实伦对白精彩视频8| 国产精品wwww| 欧美激情精品久久久久久| 91性高湖久久久久久久久_久久99| 亚洲第一区中文99精品| 国产精品日韩在线一区| 国产精品99久久99久久久二8| 国产亚洲精品久久久久久| 欧洲s码亚洲m码精品一区| 久久久久久亚洲精品中文字幕| 亚洲欧美中文字幕在线一区| 欧美三级xxx| 精品色蜜蜜精品视频在线观看| 欧美日韩亚洲天堂| 国产盗摄xxxx视频xxx69| 欧美日韩免费在线| 国内精品国产三级国产在线专| 日韩av一区在线| 国产一区二区三区毛片| 日韩激情av在线播放| 国产精品1区2区在线观看| 国产成人鲁鲁免费视频a| 亚洲影院在线看| 国产91精品久久久久| 国产91精品高潮白浆喷水| 国产经典一区二区| 国产欧美日韩专区发布| 亚洲欧美一区二区三区四区| www.日本久久久久com.| 国产精品91一区| 亚洲成人精品久久久| 在线一区二区日韩| 欧洲亚洲妇女av| 亚洲视频一区二区三区| 成人午夜在线影院| 欧美视频一二三| 久久九九精品99国产精品| 国产精品精品一区二区三区午夜版| 在线观看中文字幕亚洲| 久久久av免费| 国产精品国模在线| 国产在线日韩在线| 日韩禁在线播放| 视频在线观看一区二区| 欧美激情一区二区久久久| 亚洲精品福利免费在线观看| 亚洲国产欧美一区二区丝袜黑人| 韩国精品美女www爽爽爽视频| 国产综合香蕉五月婷在线| 精品亚洲aⅴ在线观看| 亚洲黄色在线看| 日本成人在线视频网址| 在线成人免费网站| 日韩av在线免播放器| 久久久久久中文字幕| 色综合色综合网色综合| 久久精品国产免费观看| 亚洲欧美综合v| 神马久久久久久| www.欧美免费| 亚洲在线视频福利| 亚洲男人天堂2024| 日韩最新中文字幕电影免费看| 91精品久久久久久综合乱菊| 久久香蕉频线观| 亚洲欧美综合图区| 国产一区二区三区在线观看网站| 欧美国产高跟鞋裸体秀xxxhd| 国产亚洲欧洲高清| 国产91免费看片| 亚洲一区亚洲二区| 久久成年人视频| 亚洲激情中文字幕| 亚洲成人av在线播放| 91亚洲国产成人久久精品网站| 久久综合电影一区| 亚洲成人av在线| 91社影院在线观看| 国内外成人免费激情在线视频| 欧美性精品220| 亚洲国产精品电影| 精品久久久一区| 奇米四色中文综合久久| 欧美性猛交xxxx乱大交3| 国产成人精品免费久久久久| 日产日韩在线亚洲欧美| 欧美激情第99页| 日韩精品极品毛片系列视频| 欧美在线观看日本一区| 亚洲美女www午夜| 最近2019中文免费高清视频观看www99| 欧美激情亚洲激情| 久久久久久久亚洲精品| 伊人久久五月天| 中文字幕久精品免费视频| 黑人巨大精品欧美一区二区免费| 日韩一中文字幕| 最新国产精品亚洲| 国产精品av免费在线观看| 久久成人精品视频| 亚洲精品在线看| 欧美中文在线观看国产| 日韩精品视频在线| 成人激情电影一区二区| 色无极亚洲影院| 久久国产精品久久久久久| 亚洲国产精品电影在线观看| 岛国av在线不卡| 国产精品无av码在线观看| 亚洲欧美国产精品va在线观看| 亚洲va欧美va国产综合剧情| 国产99久久精品一区二区 夜夜躁日日躁| 2019亚洲日韩新视频| 在线播放精品一区二区三区| 中文字幕在线精品| 欧美xxxx综合视频| 久久精品国产69国产精品亚洲| 日韩精品www| 日韩精品在线看| 日韩在线免费高清视频| 国产亚洲美女精品久久久| 日韩在线观看av| 在线电影欧美日韩一区二区私密| 国产成人精品a视频一区www| 尤物精品国产第一福利三区| 国产精品91久久久久久| 国产aaa精品| 久久久人成影片一区二区三区| 国产中文欧美精品| 国产小视频91| 日韩av色综合| 亚洲开心激情网| 亚洲有声小说3d| 国产在线视频一区| 亚洲国产精品va在线看黑人动漫| 亚洲成av人乱码色午夜| 久久视频免费在线播放| 日本成人免费在线| 午夜精品久久久久久99热| 中文字幕av一区二区| 国产精品亚洲一区二区三区| 国产精品午夜视频| 九九视频这里只有精品| 国产一区二区三区在线视频| 国产日本欧美一区二区三区| 久久久久久久久久久久久久久久久久av| 久久精品国产2020观看福利| 亚洲电影免费观看高清完整版在线观看| 久久久久久久国产| 成人h片在线播放免费网站| 亚洲免费av片| 亚洲国产精品美女| 亚洲综合日韩中文字幕v在线| 午夜免费在线观看精品视频| 中文字幕成人在线|