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

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

Struts VS Spring 兩種MVC框架比較

2019-11-18 15:45:09
字體:
來源:轉載
供稿:網友

  基于Web的MVC framework在J2EE的世界內已是空前繁榮。TTS網站上幾乎每隔一兩個星期就會有新的MVC框架發布。目前比較好的MVC,老牌的有Struts、Webwork。新興的MVC 框架有SPRing MVC、Tapestry、JSF等。
這些大多是聞名團隊的作品,另外還有一些邊緣團隊的作品,也相當出色,如Dinamica、VRaptor等。這些框架都提供了較好的層次分隔能力。在實現良好的MVC 分隔的基礎上,通過提供一些現成的輔助類庫,同時也促進了生產效率的提高。

  如何選擇一個好的框架應用在你的項目中,將會對你的項目的效率和可重用是至關重要的。本文將對目前最流行、最常用的兩種framework進行介紹。

  一、Struts

  Struts是Apache軟件基金下Jakarta項目的一部分。Struts框架的主要架構設計和開發者是Craig R.McClanahan。Struts 是目前java Web MVC框架中不爭的王者。經過長達五年的發展,Struts已經逐漸成長為一個穩定、成熟的框架,并且占有了MVC框架中最大的市場份額。但是Struts某些技術特性上已經落后于新興的MVC框架。面對Spring MVC、Webwork2 這些設計更精密,擴展性更強的框架,Struts受到了前所未有的挑戰。但站在產品開發的角度而言,Struts仍然是最穩妥的選擇。

  Struts有一組相互協作的類(組件)、Serlvet以及jsp tag lib組成。基于struts構架的web應用程序基本上符合JSP Model2的設計標準,可以說是MVC設計模式的一種變化類型。根據上面對framework的描述,我們很輕易理解為什么說Struts是一個web framwork,而不僅僅是一些標記庫的組合。但 Struts 也包含了豐富的標記庫和獨立于該框架工作的實用程序類。Struts有其自己的控制器(Controller),同時整合了其他的一些技術去實現模型層(Model)和視圖層(View)。在模型層,Struts可以很輕易的與數據訪問技術相結合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些表示層組件想結合。

  Struts的體系結構

  struts framework是MVC 模式的體現,下面我們就從分別從模型、視圖、控制來看看struts的體系結構(Architecture)。 

  從視圖角度(View)

  主要由JSP建立,struts自身包含了一組可擴展的自定義標簽庫(TagLib),可以簡化創建用戶界面的過程。目前包括:Bean Tags,Html Tags,Logic Tags,Nested Tags,Template Tags 這幾個Taglib。有關它們的具體資料請參考struts用戶手冊

  從模型角度(Model)

  模型主要是表示一個系統的狀態(有時候,改變系統狀態的業務邏輯操作也也劃分到模型中)。在Struts中,系統的狀態主要有ActiomForm Bean體現,一般情況下,這些狀態是非持久性的。假如需要將這些狀態轉化為持久性數據存儲,Struts本身也提供了Utitle包,可以方便的與數據庫操作

  從控制器角度(Controller)

  在Struts framework中, Controller主要是ActionServlet,但是對于業務邏輯的操作則主要由Action、ActionMapping、ActionForward這幾個組件協調完成(也許這幾個組件,應該劃分到模型中的業務邏輯一塊)。其中,Action扮演了真正的業務邏輯的實現者,而ActionMapping和ActionForward則指定了不同業務邏輯或流程的運行方向。
對于Struts 如何控制、處理客戶請求,讓我們通過對struts的四個核心組件介紹來具體說明。這幾個組件就是:ActionServlet。Action Classes,Action Mapping(此處包括ActionForward),ActionFrom Bean。

  二、Spring

  Spring 實際上是EXPert One-on-One J2EE Design and Development 一書中所闡述的設計思想的具體實現。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜宁县| 齐齐哈尔市| 清镇市| 松桃| 依安县| 会昌县| 肥东县| 根河市| 天气| 湄潭县| 罗田县| 西城区| 泽普县| 会同县| 伊宁县| 安泽县| 得荣县| 环江| 内黄县| 北海市| 民勤县| 饶河县| 准格尔旗| 驻马店市| 宁津县| 丽水市| 扎兰屯市| 浦东新区| 浙江省| 台南市| 宁南县| 乌兰浩特市| 桃园县| 九龙城区| 宁乡县| 香河县| 平阴县| 洞口县| 九江县| 天门市| 来宾市|