精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談Struts MVC工作原理及實例

開發 后端
2年前開發的項目有用struts mvc,最近都沒怎么用,現拿出來再溫習下。本文主要介紹struts mvc及mvc工作原理。

1.Struts MVC中Model 1 和Model 2簡介

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

Model 1

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

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

應用的實現一般是基于過程的,一組JSP頁面實現一個業務流程,如果要進行改動,必須在多個地方進行修改。這樣非常不利于應用擴展和更新。

由于應用不是建立在模塊上的, 業務邏輯和表示邏輯混合在JSP頁面中沒有進行抽象和分離。所以非常不利于應用系統業務的重用和改動。

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

Model 2

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

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

必須基于Struts MVC組件的方式重新思考和設計應用結構。原來通過建立一個簡單的JSP頁面就能實現的應用現在變成了多個步驟的設計和實現過程。

所有的頁面和組件必須在Struts MVC框架中實現,所以必須進行附加地開發工作。

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

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

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

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

Struts框架構成 

圖 1 struts uml圖

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

Controller:控制器的作用是從客戶端接受請求,并且選擇執行相應的業務邏輯,然后把響應結果送回到客戶端。在Struts中Controller功能由圖中ActionServlet和ActionMapping對象構成:核心是一個Servlet類型的對象ActionServlet,它用來接受客戶端的請求。ActionServlet包括一組基于配置的ActionMapping對象,每個ActionMapping對象實現了一個請求到一個具體的Model部分中Action處理器對象之間的映射。

Model: Struts 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)和"如何做"(業務邏輯)分離。這樣可以實現業務邏輯的重用。

View:Struts應用中的View部分是通過JSP技術實現的。Struts提供了自定義的標記庫可以使用,通過這些自定義標記可以非常好地和系統的Model部分交互,通過使用這些自定義標記創建的JSP表單,可以實現和Model部分中的ActionForm的映射,完成對用戶數據的封裝,同時這些自定義標記還提供了像模板定制等多種顯示功能。

Struts MVC框架的處理流程清楚的體現了MVC系統的特點,簡單的Struts組件結構如圖2所示。Struts Controller ActionServlet處理客戶請求,利用配置的ActionMapping對象把請求映射到Action處理器對象進行處理。Action處理對象訪問ActionForm中的數據,處理和響應客戶請求,它還調用后臺的Bean組件,這些組件封裝了具體的業務邏輯。Action處理器對象根據處理結果通知Controller,Controller進行下一步的處理。

Struts框架的組件結構圖 

圖2 Struts框架的組件結構圖

3.利用Struts框架開發Struts MVC系統要做的工作

由于Struts已經為我們提供了一個非常好的MVC框架,我們利用Struts開發MVC系統時可以大大加快開發的速度。在開發時可以采用的一個開發流程如下(引自資料3):

收集和定義應用需求。

基于數據采集和顯示的原則定義和開發"屏幕顯示"需求 。

為每一個"屏幕顯示"定義訪問路徑。

定義ActionMappings建立到應用業務邏輯之間的聯系。

開發滿足"屏幕顯示"需求的所有支持對象。

基于每一個"屏幕顯示"需求提供的數據屬性來創建對應的ActionForm對象

開發被ActionMapping調用的Action對象。

開發應用業務邏輯對象 (Bean,EJB,等等)。

對應ActionMapping設計的流程創建JSP頁面。

建立合適的配置文件struts-config.xml , web.xml。

開發/測試/部署

具體在使用Struts框架時,對應各個部分的開發工作主要包括:

Model部分:采用JavaBean和EJB組件,設計和實現系統的業務邏輯。根據不同的請求從Action派生具體Action處理對象。完成"做什么"的任務來調用由Bean構成的業務組件。創建由ActionForm 的派生類實現對客戶端表單數據的封裝。

Controller部分:Struts為我們提供了核心控制部分的實現。我們只需要配置ActionMapping對象

View部分:為了使用Model中的ActionForm 對象,我們必須用Struts提供的自定義標記創建HTML 表單。利用Struts提供的自定義標記庫編寫用戶界面把應用邏輯和顯示邏輯分離。Struts框架通過這些自定義標記建立了View和Model之間的聯系。Struts的自定義標記還提供了很多定制頁面的功能。

同時需要編輯兩個配置文件:web.xml和struts-config.xml。通過它們配置Struts系統中的各個模塊之間的交互。下面對這兩個配置文件做一些介紹:

web.xml文件的配置

web應用中的web.xml是***個要配置的地方,它描述了系統的Controller對象。在web.xml中增加如下標記

<servlet> <servlet-name>action</servlet-name><servlet-class>
org.apache.struts.action.ActionServlet</servlet-class> <init-param>
 <param-name>application</param-name> </servlet>

說明:這個servlet對象就是Struts提供的Controller,還可以為它指定初始化參數,比如對系統應用屬性的支持。

< SERVLET-MAPPING> < SERVLET-NAME>a ction< /SERVLET-NAME>
< URL-PATTERN>*.do< /URL-PATTERN>< /SERVELT-MAPPING>
 

說明:實現客戶請求的url信息和服務器端具體處理的映射關系。

<taglib> <taglib-url>/WEB-INF/struts-bean.tld</taglib-url>
 <taglib-location>/WEB-INF/struts-bean.tld</taglib-location></taglib>

說明:添加對Struts提供的應用所使用的自定義標記庫的引用。

struts-config.xml文件的配置

struts-config.xml是用于建立Controller和Model之間的關系的。它描述了Controller所使用的把請求對應到具體處理的法則,同時它還描述了客戶提供的數據與ActionForm組件的對應映射關系。

在struts-config.xml中增加如下標記

<form-beans> <form-bean name="loginForm" type="loginForm" /></form-beans>

說明:標記描述一個具體的ActionForm子類對象,通過它和JSP頁面中的自定標記的結合使用可以實現ActionForm和View之間的數據映射。


<action-mappings><actionpath="/login"type="loginAction"
name="loginForm"input="/login.jsp"  /></action-mappings>


說明:標記描述了請求和處理的一對一映射關系。input和path屬性唯一的標記了客戶端的一個請求,name屬性描述封裝客戶端的數據的ActionForm子類對象。Type屬性描述處理這個請求的Action子類對象。

通過對兩個配置文件的配置,把Struts MVC框架中MVC的各個部分聯系起來,實現一個真正的Struts MVC系統。

4.可供參考的例子

編寫一個好的Struts MVC例子演示是比較占篇幅的,可以從http://jakarta.apache.org/ 下載Struts***的發表包,在這個包中有詳細的用戶幫助和API文檔,還有非常好的演示程序可供參考。具體的安裝步驟可以參考附帶的文檔。參考這些例子可以很快地理解如何利用struts框架開發MVC系統。

【編輯推薦】

  1. 在Eclipse中開發struts應用程序
  2. 手把手教你在Eclipse中配置開發Struts
  3. Eclipse下開發struts完整解決亂碼問題
  4. Struts相關背景介紹
  5. 使用Easy Struts for Eclipse開發Struts
責任編輯:張燕妮 來源: 網易博客
相關推薦

2009-06-04 10:41:52

Struts工作原理

2009-06-03 09:16:03

Hibernate工作原理使用

2010-09-25 13:11:48

DHCP工作原理

2009-06-08 16:52:00

2019-03-13 09:00:00

Web應用SPAJavaScript

2021-10-12 08:00:00

存儲邊緣緩存邊緣服務器

2011-07-01 11:16:14

Struts

2009-06-05 09:58:20

struts2驗證用戶注冊

2009-07-20 16:51:59

Struts2.0+i

2009-09-23 15:37:52

Hibernate 原

2018-01-09 16:37:46

網絡劫持HTTPS緩存

2009-06-04 08:01:25

Struts2攔截器原理

2016-12-19 11:17:48

架構 MVC

2009-06-03 14:44:13

Struts標簽logiciterate

2009-06-04 08:21:13

struts標簽logic:itera

2009-06-08 16:44:00

2020-07-10 09:04:55

HTTPS瀏覽器網絡協議

2023-10-17 10:11:50

TCPIP

2011-06-28 18:26:59

SEO搜索引擎

2015-06-16 10:44:42

點贊
收藏

51CTO技術棧公眾號

久久久久久久av| 国产超碰人人模人人爽人人添| 性欧美超级视频| 中国色在线观看另类| 99久久精品免费看国产一区二区三区| 久久中文字幕无码| 九九热线有精品视频99| 777精品伊人久久久久大香线蕉| 久久久久久久久久伊人| 亚洲av毛片成人精品| 麻豆极品一区二区三区| 久久久久久亚洲精品中文字幕| 国产伦理片在线观看| 青草伊人久久| 欧美在线免费视屏| 日本xxxxxxxxxx75| 在线播放麻豆| av一区二区三区| 成人欧美一区二区三区黑人孕妇| 国产乱国产乱老熟| 伊人情人综合网| 尤物yw午夜国产精品视频明星| 岛国精品一区二区三区| 日本国产一区| 91黄视频在线| 国内性生活视频| 青草影视电视剧免费播放在线观看| 久久久99精品免费观看不卡| 国产欧美一区二区视频| 国产精品探花视频| 蜜臀精品一区二区三区在线观看| 国产91精品视频在线观看| 91视频综合网| 天天射成人网| 中文综合在线观看| 欧美日韩高清丝袜| 亚洲va久久久噜噜噜久久| 亚洲精品在线观| 亚洲av无一区二区三区久久| 欧美系列精品| 欧美三级电影在线观看| 成人三级视频在线播放| 亚洲啊v在线| 亚洲一卡二卡三卡四卡 | 婷婷免费在线观看| 黄色综合网址| 欧美特黄级在线| 国产亚洲欧美在线视频| 成av人片在线观看www| 亚洲尤物在线视频观看| 91网站在线观看免费| gogo在线观看| 亚洲狠狠丁香婷婷综合久久久| 99精品视频网站| 日本网站在线免费观看视频| 国产精品免费丝袜| 亚洲一卡二卡三卡| 日本视频在线观看| 亚洲欧美经典视频| 国产精品视频二| 成人bbav| 色婷婷综合五月| 无码日韩人妻精品久久蜜桃| 在线一区视频观看| 欧美日韩aaaaaa| 999热精品视频| 深夜福利一区二区三区| 亚洲精品一区二区三区四区高清 | 一级特黄aaaaaa大片| 六月丁香综合在线视频| 91亚洲永久免费精品| www夜片内射视频日韩精品成人| 高清国产一区二区三区| 九色91国产| eeuss影院在线播放| 日韩久久一区二区| 日韩中字在线观看| 日韩a**中文字幕| 51午夜精品国产| 国产污在线观看| 久草精品在线| 久久视频在线看| 国产午夜福利一区二区| 日韩精品欧美精品| 91在线无精精品一区二区| 殴美一级特黄aaaaaa| 97视频免费在线观看| 亚洲国产一区二区三区在线| 9191在线| 亚洲综合在线观看视频| 男人天堂999| 三日本三级少妇三级99| 91成人短视频| 99re亚洲国产精品| 亚洲1区2区3区视频| 黄色a级在线观看| 国产探花视频在线观看| 色老汉一区二区三区| 999久久久精品视频| 久久夜色电影| 麻豆国产va免费精品高清在线| 日本少妇xxxx动漫| 久久精品国产99国产精品| 97久久夜色精品国产九色| 美女做暖暖视频免费在线观看全部网址91 | 国产91在线播放精品91| 国产xxxx孕妇| 久久精品夜色噜噜亚洲aⅴ| 日韩人妻一区二区三区蜜桃视频| 91av亚洲| 亚洲国产精品久久久久秋霞不卡| 午夜国产福利视频| 亚洲在线日韩| 成人18视频| 老司机av在线免费看| 一本到不卡精品视频在线观看| 亚洲丝袜在线观看| 日韩欧美一区二区三区免费看| 性色av一区二区三区免费| 国产精品怡红院| 日本一二三四高清不卡| 1024精品视频| 99国产精品久久一区二区三区| 日韩视频精品在线| 波多野结衣影片| 99久久免费视频.com| 精品少妇人欧美激情在线观看| 日韩城人网站| 色天天综合狠狠色| 波多野结衣一二区| 久久久久久久久99精品| 国内外成人激情视频| 国产精品xxxav免费视频| 不卡av在线播放| 亚洲一级特黄毛片| 国产日韩欧美电影| 一区二区三区免费播放| 国产精品亚洲片在线播放| 91国语精品自产拍在线观看性色 | 欧美激情二区三区| www.狠狠干| 依依成人精品视频| 亚洲一区二区三区三州| 亚洲精品电影| 97超碰人人看人人| av福利在线导航| 亚洲国产精久久久久久久| 国产午夜视频在线| eeuss国产一区二区三区| 成人在线播放网址| 欧美日韩一本| 日韩免费av片在线观看| 韩国三级在线观看久| 色婷婷综合久久久中文一区二区| 可以直接看的无码av| 久久综合五月| 亚洲看片网站| 日日夜夜综合| 久久久久久18| 日韩午夜影院| 欧美无人高清视频在线观看| 免费观看特级毛片| 国产在线国偷精品产拍免费yy| 黄色一级视频播放| 综合激情久久| 尤物在线免费视频| 欧美视频在线播放一区| 亚洲欧美日本伦理| 国产精品美女999| 麻豆传媒视频在线| 日韩精品一区二| 在线免费观看毛片| 26uuu精品一区二区在线观看| 能在线观看的av网站| 国产精品99久久精品| 91嫩草免费看| 欧产日产国产精品视频| 亚洲人成网站777色婷婷| 伊人精品在线视频| 亚洲一线二线三线视频| 泷泽萝拉在线播放| 精彩视频一区二区三区| 我的公把我弄高潮了视频| 国产亚洲电影| 亚洲综合在线中文字幕| 婷婷电影在线观看| 亚洲视频 欧洲视频| 精品国产一区二区三区久久久| 亚洲日本韩国在线| 中文字幕av免费专区久久| 极品人妻一区二区| 久久亚洲不卡| www.在线观看av| 国产精品一在线观看| 5g国产欧美日韩视频| 蜜桃av在线播放| 久久艳片www.17c.com| 亚洲欧美综合一区二区| 欧美电影在线免费观看| 亚洲 欧美 视频| 亚洲日本va在线观看| 一区二区三区免费在线观看视频| 久久99国产精品久久99| 女人天堂av手机在线| 一区二区三区在线观看免费| 日本视频一区二区在线观看| 综合视频一区| 91精品久久久久久久| 麻豆免费版在线观看| 色在人av网站天堂精品| 国产精品毛片一区二区三区四区| 欧美va亚洲va在线观看蝴蝶网| 国产精品xxxxxx| 午夜欧美大尺度福利影院在线看| 久久噜噜色综合一区二区| 久久综合狠狠综合久久激情 | 欧美精品在线观看播放| 欧美激情精品久久| 国产欧美精品区一区二区三区 | 精品国产99久久久久久宅男i| 午夜国产精品一区| 男人的天堂久久久| 国产精品私人影院| 日本少妇色视频| 成人免费观看av| 亚洲综合20p| 老司机免费视频一区二区三区| 99蜜桃臀久久久欧美精品网站| 激情丁香综合| 成人短视频在线观看免费| 五月精品视频| 国产又爽又黄ai换脸| 欧美日韩一区二区综合| 欧美中文娱乐网| 亚洲精品小区久久久久久| 国产亚洲福利社区| 红杏视频成人| 久久成人资源| 亚洲欧洲色图| 日韩一区国产在线观看| 精品理论电影| 亚洲bbw性色大片| 日韩欧美精品一区| 一区二区三区四区免费视频| 日韩精品一区二区三区免费观影 | 一本色道久久精品| 欧美激情 国产精品| 99热免费精品在线观看| 青青青青草视频| 在线综合亚洲| 老头吃奶性行交视频| 日韩电影在线免费| 五月天亚洲视频| 精品一区二区综合| 992kp免费看片| 九色porny丨国产首页在线| 天天操天天综合网| 久久免费激情视频| 欧美视频在线免费| 中国a一片一级一片| 欧美日韩不卡一区二区| 国产美女永久免费| 精品国产乱码久久| 美女毛片在线看| 在线一区二区日韩| 哥也色在线视频| 国模gogo一区二区大胆私拍 | av黄色免费在线观看| 久久久久久亚洲综合| 久久只有这里有精品| 国产片一区二区| 娇小11一12╳yⅹ╳毛片| 日韩毛片在线免费观看| 免费视频一二三区| 黑人狂躁日本妞一区二区三区| 中文人妻av久久人妻18| 欧洲亚洲国产日韩| 国产乱人乱偷精品视频a人人澡| 日韩欧美国产高清| 亚洲色图欧美视频| 一二美女精品欧洲| 欧洲在线视频| 日本精品视频在线观看| 在线视频成人| 麻豆av一区二区三区| 偷拍欧美精品| 欧美s码亚洲码精品m码| 国产综合色在线| 疯狂揉花蒂控制高潮h| 国产精品毛片无遮挡高清| 精品无码一区二区三区电影桃花 | 亚洲va国产va欧美va观看| 亚洲色成人www永久网站| 欧美一区二区三区成人| 青青草观看免费视频在线| 久久国产天堂福利天堂| 欧美日韩免费看片| 99理论电影网| 三区四区不卡| 欧美日韩免费一区二区三区视频 | 亚洲第一在线视频| 91xxx在线观看| 久久综合欧美| 日韩在线第一区| 亚洲国产一区二区三区高清| 天天爽人人爽夜夜爽| 2023国产精品自拍| 国产亚洲精品久久久久久打不开| 日本久久一区二区| 五月天婷婷激情网| 超碰97人人做人人爱少妇| 欧美与亚洲与日本直播| 韩国精品一区二区三区六区色诱| 真实国产乱子伦精品一区二区三区| 男女午夜激情视频| 成人午夜激情影院| 日韩成人短视频| 欧美日韩综合不卡| 精品视频一二三| 国产91精品久久久久久| 国产调教精品| 被灌满精子的波多野结衣| 狠狠久久亚洲欧美| 五月激情四射婷婷| 日韩不卡在线| 色婷婷av一区二区三区大白胸 | 真人bbbbbbbbb毛片| 亚洲精选在线视频| 国产原创中文av| 国产精品国模大尺度视频| 久久精品日韩| 欧美精品一卡| 亚洲AV无码久久精品国产一区| 国产精品入口麻豆九色| 在线视频精品免费| 亚洲午夜色婷婷在线| 亚洲欧洲自拍| 欧美日韩三区四区| 国产欧美丝祙| 中文字幕精品久久久| 精品动漫一区二区三区| 网站黄在线观看| 性欧美办公室18xxxxhd| 欧美午夜寂寞| 四虎永久在线精品无码视频| 久久久99精品久久| 午夜一级黄色片| 中文字幕亚洲自拍| 日本国产一区| 国产精品一二三在线观看| 国产成人综合自拍| 妺妺窝人体色www在线下载| 精品日本一线二线三线不卡| 精品精品导航| 国产伦理一区二区三区| 亚洲欧美日韩国产一区| 公侵犯人妻一区二区三区| 在线视频国内自拍亚洲视频| 77导航福利在线| 91久久综合亚洲鲁鲁五月天| 综合久久久久| 中文字幕乱视频| 一本色道久久综合亚洲91| 啊v视频在线| 亚洲xxxxx电影| 99国产精品久久久久久久成人热| 亚洲做受高潮无遮挡| 欧美中文字幕不卡| 一二三四区在线观看| 国产一区二区三区四区hd| 久久久噜噜噜| 中文字幕在线2021| 亚洲国产精品字幕| 日韩精品麻豆| 99视频精品全部免费看| 91亚洲国产成人精品一区二三 | 美女视频久久| 久久国产日韩欧美精品| 久草成人在线视频| 亚洲欧洲一区二区三区在线观看| 亚洲二区av| 欧美大片在线播放| 国产精品成人免费精品自在线观看| 精品欧美在线观看| 国产成人综合亚洲| 在线中文字幕第一区| 人妻少妇精品视频一区二区三区| 欧美日韩一区小说| av丝袜在线| 亚洲国产精品视频一区| 成人小视频在线| 在线视频 91| 2019av中文字幕| 亚洲v在线看| 波多野吉衣中文字幕| 欧美一区二区三区思思人| 浪潮色综合久久天堂| www.亚洲成人网| 国产精品初高中害羞小美女文| 四虎在线视频免费观看|