国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Struts的概念及體系結(jié)構(gòu)與工作原理

2019-11-17 05:58:26
字體:
供稿:網(wǎng)友
基本概念  Struts是Apache 基金會(huì)Jakarta 項(xiàng)目組的一個(gè)Open Source 項(xiàng)目,它采用MVC模式,能夠很好地幫助java 開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致。StrUCts 框架的核心是一個(gè)彈性的控制層,基于如 Java Servlets,JavaBeans,ResourceBundles與xml等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Commons 的一些類庫(kù)。Struts有一組相互協(xié)作的類(組件)、Serlvet以及jsp tag lib組成?;趕truts構(gòu)架的web應(yīng)用程序基本上符合JSP Model2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是一個(gè)傳統(tǒng) MVC設(shè)計(jì)模式的一種變化類型。

  Struts有其自己的控制器(Controller),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(Model)和視圖層(View)。在模型層,Struts可以很輕易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,如 JDBC / EJB ,以及其它第三方類庫(kù),如 Hibernate / iBATIS ,或者 Object Relational Bridge(對(duì)象關(guān)系橋)。在視圖層,Struts能夠與JSP,包括 JSTL 與 JSF,以及 Velocity 模板,XSLT 與其它表示層技術(shù)。
Struts 為每個(gè)專業(yè)的 Web 應(yīng)用程序做背后的支撐,幫助為你的應(yīng)用創(chuàng)建一個(gè)擴(kuò)展的開發(fā)環(huán)境。

  Struts的體系結(jié)構(gòu)與工作原理

  MVC即Model-View-Controller的縮寫,是一種常用的設(shè)計(jì)模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。MVC的工作原理,如下圖1所示:



圖1


  Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts繼續(xù)了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。Struts的體系結(jié)構(gòu)與工作原理如下圖2所示:



圖2
從圖2中我們可以知道,Struts的體系結(jié)構(gòu)包括模型(Model),視圖(View)和控制器(Controller)三部分。

  下面讓我們從MVC角度來看看struts的體系結(jié)構(gòu)(Model 2)與工作原理:

  1)模型(Model)

  在Struts的體系結(jié)構(gòu)中,模型分為兩個(gè)部分:系統(tǒng)的內(nèi)部狀態(tài)和可以改變狀態(tài)的操作(事務(wù)邏輯)。內(nèi)部狀態(tài)通常由一組ActinForm Bean表示。根據(jù)設(shè)計(jì)或應(yīng)用程序復(fù)雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時(shí)才獲得數(shù)據(jù)(從某個(gè)數(shù)據(jù)庫(kù))。大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調(diào)用。比如購(gòu)物車bean,它擁有用戶購(gòu)買商品的信息,可能還有checkOut()方法用來檢查用戶的信用卡,并向倉(cāng)庫(kù)發(fā)定貨信息。 小型程序中,操作可能會(huì)被內(nèi)嵌在Action類,它是struts框架中控制器角色的一部分。當(dāng)邏輯簡(jiǎn)單時(shí)這個(gè)方法很適合。 建議用戶將事務(wù)邏輯(要做什么)與Action類所扮演的角色(決定做什么)分開。

  2)視圖(View)

  視圖主要由JSP建立,struts包含擴(kuò)展自定義標(biāo)簽庫(kù)(TagLib),可以簡(jiǎn)化創(chuàng)建完全國(guó)際化用戶界面的過程。目前的標(biāo)簽庫(kù)包括:Bean Tags、Html tags、Logic Tags、Nested Tags 以及Template Tags等。

  3)控制器(Controller)

  在struts中,基本的控制器組件是ActionServlet類中的實(shí)例servelt,實(shí)際使用的servlet在配置文件中由一組映射(由ActionMapping類進(jìn)行描述)進(jìn)行定義。對(duì)于業(yè)務(wù)邏輯的操作則主要由Action、ActionMapping、ActionForward這幾個(gè)組件協(xié)調(diào)完成的,其中Action扮演了真正的業(yè)務(wù)邏輯的實(shí)現(xiàn)者,ActionMapping與ActionForward則指定了不同業(yè)務(wù)邏輯或流程的運(yùn)行方向。struts-config.xml 文件配置控制器。

 

  Struts體系結(jié)構(gòu)中的組件


圖3

  上圖3顯示了 ActionServlet (Controller)、ActionForm (Form State) 和 Action (Model Wrapper) 之間的最簡(jiǎn)關(guān)系。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南华县| 蛟河市| 泰来县| 尚志市| 搜索| 铜陵市| 建德市| 山阴县| 绥芬河市| 米泉市| 东乌珠穆沁旗| 平昌县| 凤翔县| 通化市| 阿克陶县| 铁岭县| 临潭县| 镇雄县| 卫辉市| 和龙市| 密云县| 台前县| 杭锦旗| 荆门市| 阿瓦提县| 漯河市| 大连市| 迁西县| 通化市| 德钦县| 孝昌县| 连州市| 玉林市| 陇川县| 景德镇市| 涟水县| 钦州市| 邛崃市| 客服| 临猗县| 滨海县|