亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Struts1框架與Struts2框架的對比分析

        2010-04-05 17:05:29劉曉峰
        電大理工 2010年2期
        關(guān)鍵詞:基類線程表達式

        劉曉峰

        遼寧廣播電視大學(xué)(沈陽110034 )

        0 引言

        Struts2是Apache的開源框架之一,Struts2與Struts1相比。有很多革命性的改進,但它并不是新發(fā)布的框架,而是在WebWork框架基礎(chǔ)上發(fā)展起來的。因為Struts2是Webwork的升級.而不是一個全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了Struts1和WebWork兩者的優(yōu)勢。

        1 Struts1框架與Struts2框架簡介

        1.1 Struts1框架簡介

        Struts1最初由程序員Craig R.Mcclanahan發(fā)布,Apache軟件基金會于2002年接手該項目。Struts1提供了一個極好的框架,可以容易地整合JSP、Servlet和Java代碼。隨著Java的發(fā)展,Struts1已經(jīng)成為MVC設(shè)計模式的常用架構(gòu),并被廣大的程序員所接受,在Web開發(fā)應(yīng)用中獲得了巨大成功。

        1.2 Struts2框架簡介

        Struts2采用一種非常松耦合的設(shè)計,讓系統(tǒng)Action不再與Sevlet API耦合,增強了單元的測試性。Struts2具有強大的標簽庫,這些標簽不僅提供了表現(xiàn)層的數(shù)據(jù)處理,同時還提供了國際化、Ajax、上傳下載的功能。

        2 Struts1框架與Struts2框架的對比分析

        Struts2相對于Struts1已經(jīng)發(fā)生了很多變化,使用起來更簡單、便捷。下面是Struts2與Struts1的特性比較:

        (1)Action類

        Struts1要求Action類要擴展自一個抽象基類。Struts1的一個共有的問題是面向抽象類編程而不是面向接口編程。

        Struts2的Action類實現(xiàn)了一個Action接口,連同其他接口一起來實現(xiàn)可選擇和自定義的服務(wù)。Struts2提供一個名叫ActionSupport的基類來實現(xiàn)一般使用的接口。當(dāng)然,Action接口不是必須的。任何使用execute方法的POJO對象可以被當(dāng)作Struts2的Action對象來使用。

        (2)線程模型

        Struts1的Action類是單例類,因為只有一個實例來控制所有的請求。單例類策略造成了一定的限制,并且給開發(fā)帶來了額外的煩惱。Action資源必須是線程安全或者同步的。

        Struts2 的Action對象為每一個請求都實例化對象,所以沒有線程安全的問題。

        (3)Servlet依賴

        Struts1的Action類依賴于Servlet API,當(dāng)Action被調(diào)用時,以 HttpServletRequest和HttpServletResponse作為參數(shù)傳給execute方法。

        Struts2的Action和容器無關(guān)。Servlet上下文被表現(xiàn)為簡單的Maps,允許Action被獨立的測試。Struts2的Action可以訪問最初的請求(如果需要的話)。但是,盡可能避免或排除其他元素直接訪問HttpServletRequest或HttpServlet-Response。

        (4)易測性

        測試Struts1的主要問題是execute方法暴露了Servlet API這使得測試要依賴于容器。第三方的擴展,如Struts TestCase,提供了一套Struts1的模擬對象(來進行測試)。

        Struts2的Action可以通過初始化、設(shè)置屬性、調(diào)用方法來測試。依賴注入的支持也使測試變得更簡單。

        (5)捕獲輸入

        Struts1使用ActionForm對象來捕獲輸入。象Action一樣,所有的ActionForm必須擴展基類。

        Struts2直接使用Action屬性作為輸入屬性,消除了對第二個輸入對象的需求。輸入屬性可能是有自己(子)屬性的rich對象類型。

        (6)表達式語言

        Struts1整合了JSTL,所以它使用JSTL的表達式語言。表達式語言有基本的圖形對象移動,但是對集合和索引屬性的支持很弱。

        Struts2使用JSTL,但是也支持一個更強大和靈活的表達式語言--OGNL。

        (7)將值綁定到頁面

        Struts1使用標準 JSP機制來綁定對象到頁面上下文。

        Struts2使用“ValueStack”技術(shù),使 taglib能夠訪問值而不需要把你的頁面(view)和對象綁定起來。ValueStack策略允許通過一系列名稱相同但類型不同的屬性重用頁面(view)。

        (8)類型轉(zhuǎn)換

        Struts1的ActionForm屬性經(jīng)常都是String。Struts1使用 Commons-Beanutils來進行類型轉(zhuǎn)換。轉(zhuǎn)換每一個類,而不是為每一個實例配置。

        Struts2使用OGNL進行類型轉(zhuǎn)換。提供基本和常用對象的轉(zhuǎn)換器。

        (9)驗證

        Struts1支持在ActionForm的validate方法中手動校驗,或者通過Commons Validator的擴展來校驗。同一個類可以有不同的校驗內(nèi)容,但不能校驗子對象。

        Struts2支持通過validate方法和XWork校驗框架來進行校驗。XWork校驗框架使用為屬性類類型定義的校驗和內(nèi)容校驗,來支持 chain校驗子屬性。

        (10)Action執(zhí)行控制

        Struts1支持每一個模塊有單獨的生命周期,但是模塊中的所有 Action必須共享相同的生命周期。

        Struts2支持通過攔截器堆棧為每一個Action創(chuàng)建不同的生命周期。堆棧能夠根據(jù)需要和不同的Action一起使用。

        3 結(jié)束語

        Struts2框架整合了Struts1和WebWork的優(yōu)點,其最大的特點就是其簡單性。從Apache官方的宣傳來看,Struts2不久將會替代Struts1。

        [1]王舂林,耿祥義.淺析Struts2框架. 現(xiàn)代經(jīng)濟信息, 2009

        [2]孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計與開發(fā).北京:電子工業(yè)出版社,2004

        [3]閆術(shù)卓,楊強.Struts2技術(shù)詳解:基于 WebWork核心的MVC開發(fā)與實踐.電子工業(yè)出版社,2008

        猜你喜歡
        基類線程表達式
        基于C#面向?qū)ο蟪绦蛟O(shè)計的封裝、繼承和多態(tài)分析
        一個混合核Hilbert型積分不等式及其算子范數(shù)表達式
        表達式轉(zhuǎn)換及求值探析
        淺析C語言運算符及表達式的教學(xué)誤區(qū)
        淺談linux多線程協(xié)作
        空戰(zhàn)游戲設(shè)計實例
        一種基于用戶興趣的STC改進算法
        虛機制在《面向?qū)ο蟪绦蛟O(shè)計C++》中的教學(xué)方法研究
        Linux線程實現(xiàn)技術(shù)研究
        議C語言中循環(huán)語句
        商(2012年11期)2012-07-09 19:07:55
        日产精品久久久一区二区| 亚洲综合激情另类小说区| 国产 一二三四五六| 蜜桃视频第一区免费观看| 中文字幕人妻在线少妇| 自拍偷区亚洲综合第一页| 久久精品国产亚洲av日韩精品| 亚洲每天色在线观看视频| 日韩不卡av高清中文字幕| 欧美日韩中文亚洲另类春色| 国产丝袜免费精品一区二区| 在线观看国产内射视频| 动漫在线无码一区| 蜜桃成人永久免费av大| 亚洲AV无码久久久久调教| 日韩少妇人妻一区二区| 亚洲天堂线上免费av| 久久夜色精品国产噜噜噜亚洲av| 亚洲最大不卡av网站| 国产 无码 日韩| 国产肥熟女视频一区二区三区 | a级三级三级三级在线视频| 男女后入式在线观看视频| 亚洲av综合av国一区二区三区| 91精品啪在线观九色| 天堂av在线美女免费| 综合国产婷婷精品久久99之一 | 真人在线射美女视频在线观看 | 国产黄色一区二区三区,| 国产精品国三级国产a| 国产91久久麻豆黄片| 亚洲av福利院在线观看| 日本污ww视频网站| 少妇被猛男粗大的猛进出| 极品美女aⅴ在线观看| 国产精品沙发午睡系列990531| 免费做爰猛烈吃奶摸视频在线观看 | 亚洲最新无码中文字幕久久| 亚洲国产一区二区三区在线观看| 成人免费777777被爆出| 卡一卡二卡三无人区|