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

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

用Struts建立MVC應用的介紹

2019-11-17 06:33:03
字體:
來源:轉載
供稿:網友

  1.Model 1 和Model 2簡介

  我們在開發Web應用時經常提到的一個概念是Model 1/Model 2,那么到底它是什么意思呢?其實它是對采用jsp技術構成Web應用的不同模型的描述。下面對這個概念做一個簡單的介紹。

  Model 1

  在使用java技術建立Web應用的實例中,由于JSP技術的發展,很快這種便于把握和可實現快速開發的技術就成了創建Web應用的主要技術。JSP頁面中可以非常輕易地結合業務邏輯(jsp:useBean)、服務端處理過程(jsp:scriplet)和Html(<html>),在JSP頁面中同時實現顯示,業務邏輯和流程控制,從而可以快速地完成應用開發?,F在很多的Web應用就是由一組JSP頁面構成的。這種以JSP為中心的開發模型我們可以稱之為Model 1。

  當然這種開發模式在進行快速和小規模的應用開發時,是有非常大的優勢,但是從工程化的角度考慮,它也有一些不足之處:

  1. 應用的實現一般是基于過程的,一組JSP頁面實現一個業務流程,假如要進行改動,必須在多個地方進行修改。這樣非常不利于應用擴展和更新。
  2. 由于應用不是建立在模塊上的, 業務邏輯和表示邏輯混合在JSP頁面中沒有進行抽象和分離。所以非常不利于應用系統業務的重用和改動。

  考慮到這些問題在開發大型的Web應用時必須采用不同的設計模式――這就是Model2

  Model 2

  Model 2 表示的是基于MVC模式的框架。MVC是Model-View-Controller的簡寫。"Model" 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供給用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。從而彌補了Model 1的不足。

  Model 2具有組件化的優點從而更易于實現對大規模系統的開發和治理,但是開發MVC系統比簡單的JSP開發要復雜許多,它需要更多的時間學習和把握。同時新東西的引入會帶來新的問題(這讓我想起來關于"自動計算"的一篇文章,中間提到為了降低系統的復雜度,卻導致更高的復雜度)。

  1. 必須基于MVC組件的方式重新思考和設計應用結構。原來通過建立一個簡單的JSP頁面就能實現的應用現在變成了多個步驟的設計和實現過程。
  2. 所有的頁面和組件必須在MVC框架中實現,所以必須進行附加地開發工作。

  MVC本身就是一個非常復雜的系統,所以采用MVC實現Web應用時,最好選一個現成的MVC框架,在此之下進行開發,從而取得事半功倍的效果?,F在有很多可供使用的MVC框架,由于Struts有完整的文檔并且相對來講比較簡單,所以用它開發MVC系統還是比較方便地。

  2.Struts的結構和處理流程簡介

  Struts是Apache組織的一個項目,像其他的Apache組織的項目一樣,它也是開放源碼項目。Struts是一個比較好的MVC框架提供了對開發MVC系統的底層支持,它采用的主要技術是Servlet,JSP和custom tag library。獲取它的使用版本和具體信息可以查閱http://jakarta.apache.org/網站。

  Struts框架的基本構成由下圖所示:

用Struts建立MVC應用的介紹(圖一)

點擊查看大圖

圖 1 struts uml圖

  作為一個MVC的框架,Struts對Model、View和Controller都提供了對應的實現組件,對應上面的UML圖,分別進行介紹,并且看看它們是如何結合在一起的。

  1. Controller:控制器的作用是從客戶端接受請求,并且選擇執行相應的業務邏輯,然后把響應結果送回到客戶端。在Struts中Controller功能由圖中ActionServlet和ActionMapping對象構成:核心是一個Servlet類型的對象ActionServlet,它用來接受客戶端的請求。ActionServlet包括一組基于配置的ActionMapping對象,每個ActionMapping對象實現了一個請求到一個具體的Model部分中Action處理器對象之間的映射。
  2. Model: MVC系統中的Model部分從概念上可以分為兩類――系統的內部狀態,和改變系統狀態的動作。Struts為Model部分提供了Action和ActionForm對象:所有的Action處理器對象都是開發者從Struts的Action類派生的子類。Action處理器對象封裝了具體的處理邏輯,調用業務邏輯模塊,并且把響應提交到合適的View組件以產生響應。Struts提供的ActionForm組件對象,它可以通過定義屬性描述客戶端表單數據。開發者可以從它派生子類對象,利用它和Struts提供的自定義標記庫結合可以實現對客戶端的表單數據的良好封裝和支持,Action處理器對象可以直接對它進行讀寫,而不再需要和request、response對象進行數據交互。通過ActionForm組件對象實現了對View和Model之間交互的支持。Struts通常建議使用一組JavaBean表示系統的內部狀態,根據系統的復雜度也可以使用像Entity EJB 和 session EJB等組件來實現系統狀態。Struts建議在實現時把"做什么"(Action)和"如何做"(業務邏輯)分離。這樣可以實現業務邏輯的重用。
  3. View:Struts應用中的View部分是通過JSP技術實現的。Struts提供了自定義的標記庫可以使用,通過這些自定義標記可以非常好地和系統的Model部分交互,通過使用這些自定義標記創建的JSP表單,可以實現和Model部分中的ActionForm的映射,完成對用戶數據的封裝,同時這些自定義標記還提供了像模板定制等多種顯示功能。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.欧美精品一二三区| 精品视频一区在线视频| 欧美巨乳美女视频| 亚洲色图综合久久| 国产精品专区一| 久久久久久这里只有精品| 国产精自产拍久久久久久蜜| 国产精品高精视频免费| 久久91精品国产91久久跳| 日韩视频在线观看免费| 最近2019中文免费高清视频观看www99| 日韩电影视频免费| 91免费在线视频网站| 国产精品1区2区在线观看| 日本久久久a级免费| 性金发美女69hd大尺寸| 欧美精品videosex极品1| 欧美国产一区二区三区| 欧美一区亚洲一区| 亚洲精品二三区| 91日韩在线播放| 国产精品爱啪在线线免费观看| 91wwwcom在线观看| 中文字幕亚洲色图| 亚洲色图15p| 国产精品7m视频| 成人免费午夜电影| 国产亚洲精品高潮| 国产精品久久久久久久久久久久| 久热在线中文字幕色999舞| 欧美极品欧美精品欧美视频| 亚洲天堂av在线免费观看| 亚洲成人精品在线| 26uuu亚洲伊人春色| 成人精品一区二区三区电影免费| 精品国产一区二区三区久久久| 欧美成人在线免费| 亚洲人线精品午夜| 91av在线免费观看| 亚洲欧洲日产国产网站| 日韩av有码在线| 国产精品亚洲美女av网站| 中文字幕在线亚洲| 精品亚洲一区二区三区| 久久久国产精品亚洲一区| 日韩电影在线观看免费| 在线一区二区日韩| 国产成人综合av| 国产精品国模在线| 一色桃子一区二区| 亚洲欧洲国产精品| 成人在线精品视频| www.99久久热国产日韩欧美.com| 亚洲精品国产suv| 亚洲人精选亚洲人成在线| 美女999久久久精品视频| 色哟哟网站入口亚洲精品| 亚洲自拍偷拍第一页| 精品国偷自产在线视频| 91精品久久久久久久久久| 亚洲欧美国产视频| 精品自拍视频在线观看| 91中文在线观看| 欧美久久精品一级黑人c片| 97国产精品久久| 欧美亚洲在线视频| 91亚洲国产成人精品性色| 久久全球大尺度高清视频| 人人做人人澡人人爽欧美| 亚洲欧美国内爽妇网| 日韩精品免费在线播放| 欧美亚洲在线观看| 国产精品极品美女在线观看免费| 在线国产精品视频| 91精品久久久久久久久久久久久| 亚洲国产成人精品电影| 亚洲精品丝袜日韩| 亚洲精品国产精品国自产观看浪潮| 国产成人涩涩涩视频在线观看| 国产精品美乳在线观看| 成人在线播放av| 精品国产乱码久久久久久虫虫漫画| 疯狂做受xxxx高潮欧美日本| 精品小视频在线| 欧美超级免费视 在线| 91精品国产综合久久香蕉的用户体验| 日韩电影中文字幕在线| 亚洲国产精彩中文乱码av在线播放| 亚洲跨种族黑人xxx| 日韩成人在线观看| 亚洲欧美国产一本综合首页| 欧美日韩福利视频| 欧美国产精品va在线观看| 欧美最顶级丰满的aⅴ艳星| 色狠狠久久aa北条麻妃| 日韩高清免费观看| 亚洲国产精品一区二区久| 成人久久久久久| 精品国内亚洲在观看18黄| 国产精品久久久av久久久| 日韩h在线观看| 国产91av在线| 国产精品成人v| 中文字幕精品一区久久久久| 最好看的2019年中文视频| 91国产在线精品| 亚洲高清免费观看高清完整版| 国产99久久精品一区二区永久免费| 欧美成人国产va精品日本一级| 日韩大陆毛片av| 最近更新的2019中文字幕| 国产成人精品av在线| 久久精品久久久久久国产 免费| 久久福利网址导航| 国产精品欧美亚洲777777| 国产精品99久久久久久白浆小说| 欧美日韩在线免费观看| 国产精品福利小视频| 欧美美女操人视频| 亚洲天堂av在线免费| 亚洲男人天堂2024| 国内成人精品一区| 欧美电影免费观看| 国产精品自在线| 在线亚洲欧美视频| 国产婷婷成人久久av免费高清| 欧美日韩在线视频一区| 日韩av最新在线| 国产成人jvid在线播放| 亚洲影院高清在线| 久久精品国产99国产精品澳门| 欧美大全免费观看电视剧大泉洋| 都市激情亚洲色图| 欧美成人网在线| 亚洲男人天堂手机在线| 亚洲天堂影视av| 日韩精品亚洲视频| 日韩在线观看免费全| 欧美黑人狂野猛交老妇| 久久久免费在线观看| 亚洲老板91色精品久久| 色视频www在线播放国产成人| 亚洲国产中文字幕在线观看| 国产精品偷伦视频免费观看国产| 欧美自拍大量在线观看| 欧美天堂在线观看| 日韩女优人人人人射在线视频| 久久噜噜噜精品国产亚洲综合| 日韩欧美精品网址| 日韩av免费看| 欧美大尺度在线观看| 久久综合免费视频影院| 麻豆国产va免费精品高清在线| 欧美午夜视频一区二区| 91亚洲va在线va天堂va国| 中文字幕亚洲图片| 在线丨暗呦小u女国产精品| 欧美最近摘花xxxx摘花| 久久夜精品香蕉| 有码中文亚洲精品| 日韩在线中文视频| 一本色道久久综合狠狠躁篇怎么玩| 亚洲永久在线观看| 久久91精品国产91久久跳|