精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

五月天久久久| 在线视频超级| 国产成人精品免费在线| 97精品一区二区三区| 国产精久久一区二区三区| 亚州精品国产| 午夜精品福利视频网站| 日韩亚洲一区在线播放| 国产成人精品一区二区无码呦 | 精品国产一区二区三区四区四| 极品美女扒开粉嫩小泬| 老司机在线永久免费观看| 丁香激情综合国产| 国产精品亚洲一区二区三区| 国产午夜精品无码一区二区| 日韩国产欧美| 亚洲精品久久久一区二区三区 | 日韩成人一区二区三区| 日韩国产在线| 亚洲国产精品久久精品怡红院| 爱情岛论坛成人| 精精国产xxxx视频在线中文版 | 婷婷久久青草热一区二区 | 精品女同一区二区三区在线观看| 亚洲自拍偷拍欧美| 在线精品亚洲一区二区| 四虎国产精品永远| 成人中文字幕电影| 成人h视频在线| 欧美精品第三页| av黄色免费在线观看| 日韩综合一区二区三区| 欧美日韩一区二区三区不卡 | 四虎成人免费影院| 欧美交a欧美精品喷水| 欧美一区二区三区在线视频| 九九视频精品在线观看| а√天堂资源官网在线资源| 亚洲欧洲av在线| 日产精品一线二线三线芒果| 神马午夜在线观看| 国产成人精品午夜视频免费| 国产一区二区在线免费视频| 在线观看亚洲黄色| 玖玖在线精品| 久久久久久亚洲精品不卡| 2025国产精品自拍| 欧美激情偷拍自拍| 色99之美女主播在线视频| 一区二区三区四区免费| 九九精品久久| 亚洲天堂2020| 国产高清一区二区三区四区| 精品中文一区| 一区二区三区美女xx视频| 国产综合精品在线| 狠狠做六月爱婷婷综合aⅴ| 亚洲人永久免费| 亚洲熟妇无码av| 夜夜躁狠狠躁日日躁2021日韩| 亚洲精品理论电影| 久久久久久亚洲中文字幕无码| 免费短视频成人日韩| 亚洲午夜性刺激影院| 亚洲性猛交xxxx乱大交| 日韩dvd碟片| 日韩色av导航| 在线免费日韩av| 国产精品www994| 性欧美在线看片a免费观看| 国产精品第9页| 久久黄色网页| 国产精品免费电影| 国产精品久久久久久69| 国产激情一区二区三区四区| 国产精品久久久久久久免费大片| 你懂的在线视频| 亚洲国产高清aⅴ视频| 精品91一区二区三区| 污影院在线观看| 精品色蜜蜜精品视频在线观看| 最近免费中文字幕中文高清百度| 91精品国产66| 国产精品小仙女| 精品国产第一区二区三区观看体验 | 成人在线中文字幕| 亚洲国产剧情在线观看| 99久久er热在这里只有精品15| 免费一区二区三区在在线视频| 九色在线播放| 亚洲人成人一区二区在线观看 | 欧美极品jizzhd欧美18| 中文字幕免费一区二区三区| 欧美亚洲在线观看| 怡春院在线视频| 粉嫩一区二区三区在线看| 久久婷婷人人澡人人喊人人爽| yjizz视频网站在线播放| 一区二区三区不卡视频| 男人舔女人下面高潮视频| 免费看一区二区三区| 日韩成人性视频| 日本一级特级毛片视频| 99国产精品私拍| 91精品一区二区| 日韩二区三区| 一区二区三区美女视频| 欧美综合在线观看视频| www.成人网| 色777狠狠综合秋免鲁丝| 日韩欧美一级视频| 国产精品 日产精品 欧美精品| 日本亚洲欧洲精品| 大黄网站在线观看| 91超碰这里只有精品国产| 艳妇乳肉亭妇荡乳av| 我不卡伦不卡影院| 国产精品极品美女在线观看免费 | 国产精品亚洲成在人线| 日韩高清a**址| 久久高清无码视频| 精品亚洲国产成人av制服丝袜| 欧美高清视频一区二区三区在线观看| 丝袜中文在线| 91精品在线观看入口| 免费人成又黄又爽又色| 国产精品久久久久久久免费软件| 97伦理在线四区| 国产在线观看av| 欧美中文字幕一二三区视频| av黄色免费网站| 在线电影一区| 成人黄色片视频网站| 激情成人四房播| 欧美日韩久久不卡| 国产视频不卡在线| 久久一综合视频| 精品在线视频一区二区| av福利导福航大全在线| 日韩精品中文字幕一区| 免费在线观看一级片| 国产一区二区三区在线观看免费视频 | 老熟妇高潮一区二区高清视频| 中文字幕日韩av资源站| 三级av免费观看| 欧美丝袜一区| 国产精品视频网| chinese偷拍一区二区三区| 在线观看一区日韩| 女人黄色一级片| 日本欧美一区二区三区乱码| 欧洲精品一区色| 日韩在线观看不卡| 中文字幕亚洲欧美日韩2019| 亚洲图片欧美在线| 国产精品福利影院| 视频区 图片区 小说区| 欧美精品一级| 国产超碰91| 人狥杂交一区欧美二区| 亚洲区中文字幕| 最新黄色网址在线观看| 国产精品国产精品国产专区不蜜| 欧洲美女亚洲激情| 欧美三区视频| 久久久久久高清| 亚洲伦理影院| 久久精品99无色码中文字幕| 国产模特av私拍大尺度| 亚洲一区二区三区中文字幕| 最新版天堂资源在线| 国产亚洲精品自拍| 亚洲a∨一区二区三区| 91精品国产色综合久久不卡粉嫩| 欧美精品性视频| 你懂的网站在线| 色视频成人在线观看免| 天天干天天舔天天操| 国产真实乱偷精品视频免| 六月婷婷激情综合| 亚洲影院天堂中文av色| 国产精品福利网站| 丝袜美腿av在线| 精品视频久久久| 伊人免费在线观看高清版| 一区二区在线观看免费视频播放| 97香蕉碰碰人妻国产欧美| 人禽交欧美网站| 日b视频免费观看| 国产成人三级| 成人自拍爱视频| 免费观看一级欧美片| 北条麻妃在线一区二区| 婷婷在线观看视频| 欧美日韩国产一级| 日本天堂在线视频| 国产精品乱人伦一区二区| av漫画在线观看| 免费av网站大全久久| av在线观看地址| 欧美视频免费| 国产一区二区精品免费| 日韩免费在线电影| 51精品国产黑色丝袜高跟鞋| 国产美女在线观看| 亚洲香蕉av在线一区二区三区| www.99视频| 欧美性大战xxxxx久久久| 国产一级视频在线观看| 国产精品视频在线看| 国产精品久久久久久久无码| 精久久久久久久久久久| 成人免费观看毛片| 亚洲国产专区| 一区二区三区在线视频111| 日韩人体视频| 国产91免费视频| 国外成人福利视频| 欧美专区中文字幕| 超碰在线99| 欧美日韩福利视频| 米奇777四色精品人人爽| 日韩精品福利网站| 亚洲黄色小说网| 69成人精品免费视频| 国产男人搡女人免费视频| 好吊成人免视频| 久久网免费视频| 亚洲理论在线观看| 懂色av蜜臀av粉嫩av永久| 久久精品免视看| 波多野结衣av在线免费观看| 床上的激情91.| 岛国大片在线免费观看| 国产一区二区免费视频| 色一情一区二区三区| 日韩av网站在线观看| 777米奇影视第四色| 国产精品毛片一区二区三区| 国产自产在线视频| 在线欧美不卡| 青青草国产免费| 亚洲网站视频| 免费看欧美黑人毛片| 欧美日韩日本国产亚洲在线 | 国产又粗又猛又爽视频| 91丨九色丨国产丨porny| 99久久免费看精品国产一区| www.欧美日韩| 超碰97在线资源站| 99国产精品国产精品毛片| 久久久国产精品无码| 99视频国产精品| 三级黄色片网站| 国产偷v国产偷v亚洲高清| 亚洲一区二区自偷自拍 | 26uuu亚洲电影| 琪琪第一精品导航| 全球最大av网站久久| 国产精品视频1区| 四虎精品永久免费| 亚洲综合中文字幕在线| 午夜久久av| 国内外成人免费视频| 久久99免费视频| 亚洲日本精品国产第一区| 香蕉久久网站| 青草视频在线观看视频| 99精品久久久| www.欧美日本| 老鸭窝一区二区久久精品| 国产精品igao网网址不卡| 成人性生交大合| www.久久av| 国产精品久久夜| 久久国产精品二区| 懂色av中文一区二区三区天美 | 538在线视频| 日韩av日韩在线观看| 色综合.com| 国产精品区一区二区三在线播放 | 精品爽片免费看久久| 成人好色电影| 久久久久久成人| 成人mm视频在线观看| 亚洲最大成人免费视频| 日韩精选在线| 在线观看18视频网站| 先锋影音久久久| 亚洲日本黄色片| 2019国产精品| 欧美成人免费观看视频| 色偷偷久久人人79超碰人人澡| 7777久久亚洲中文字幕| 欧美精品一区二区高清在线观看| av在线播放网站| 久久久久久久国产| 国产精品伦一区二区| 国产欧美综合精品一区二区| 欧美第十八页| 欧美亚洲另类色图| 国产精品一区在线观看你懂的| 亚洲第一香蕉网| 亚洲精品中文在线影院| 正在播放亚洲精品| 精品国产一区二区三区久久影院| 在线播放麻豆| 欧美又大粗又爽又黄大片视频| 国产精品久久久久久久久久辛辛| 久久亚洲国产精品日日av夜夜| 欧美91精品| www.se五月| 国产亚洲污的网站| 日本在线视频免费观看| 9191久久久久久久久久久| 国产乱子伦三级在线播放| 久久乐国产精品| av日韩在线免费观看| 视频一区二区三| 国产亚洲综合精品| 一级少妇精品久久久久久久| 亚洲欧美电影一区二区| 久久久久久无码精品大片| 日韩av中文字幕在线| 国模私拍视频在线播放| 成人女保姆的销魂服务| 日韩a一区二区| www黄色在线| 国产亚洲自拍一区| 久久人妻免费视频| 精品视频在线播放| 老色鬼在线视频| 国产专区一区二区三区| 极品尤物久久久av免费看| wwwxxxx在线观看| 最新不卡av在线| 中文字幕在线视频免费| 亚洲三级 欧美三级| 在线成人av观看| 欧美在线视频二区| 久久午夜影视| a级在线免费观看| 在线观看视频欧美| 男男激情在线| 国产精品第七影院| 国产欧美日韩视频在线| 男人插女人下面免费视频| 国产亚洲欧美色| 中文字幕欧美在线观看| 在线国产精品播放| 免费日韩成人| 亚洲一区二区四区| 久久精品72免费观看| 内射一区二区三区| 制服丝袜激情欧洲亚洲| 亚洲小说区图片区都市| av色综合网| 亚洲激情欧美| 国产精品1000部啪视频| 欧美亚洲精品一区| 青青青青在线| 亚洲va久久久噜噜噜| 欧美日韩 国产精品| 人妻无码中文久久久久专区| 欧美日韩在线观看视频| 超碰免费97在线观看| 91性高湖久久久久久久久_久久99| 欧美va亚洲va日韩∨a综合色| 日韩成人av影院| 欧美性极品xxxx娇小| 91精彩在线视频| 91嫩草在线视频| 禁久久精品乱码| 亚洲精品成人无码| 91精品国产综合久久精品| 免费在线中文字幕| 欧美精品123| 国产在线一区二区综合免费视频| 久久久国产精华液| 亚洲嫩模很污视频| 伊人久久综合网另类网站| 超碰成人免费在线| 国产亚洲精品7777| 国产偷人妻精品一区二区在线| 久久久影视精品| 精品视频日韩| 国产精品日日摸夜夜爽| 色吊一区二区三区| 麻豆网在线观看| 免费国产在线精品一区二区三区| 捆绑调教一区二区三区| 日韩大片免费在线观看| 日韩在线中文视频| 欧美绝顶高潮抽搐喷水合集| 在线能看的av网站| 亚洲成a人片在线观看中文| 国产在线视频网站| 国产乱码精品一区二区三区卡| 日本在线不卡视频一二三区| 国产一级av毛片|