成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Webork與Struts的十個主要區別

開發 后端
Webork與Struts的十個主要區別:1、action類。2、線程模型。3、Servlet的依賴。4、測試 。5、FormBean 。6、前端表達式語言。7、類型的轉換。8、對Action 執行前和后的處理 。9、驗證處理 。10、對Action執行的控制。

Webork與Struts的區別一、action類

1、在Struts里面,每一個Action類必需要繼承一個抽象的類org.apache.struts.action.Action。這個在Java編程中會引來一些問題,就是關于多種繼承的問題。

2、WebWork的Action類僅需要實現接口com.opensymphony.xwork.Action,也可以實現其它的接口來實現更多的功能,譬如:validate(驗證),localware(國際化)等。當然,它也提供了一個類ActionSupport集成了上面的所有功能,我們在開發中可以根據需要選擇。

Webork與Struts的區別二、線程模型

1、Struts 的Action必需是thread-safe方式,它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統一同步,這個就引起了線程安全的問題。

2、在WebWork中,每個請求對應一個Action,因此沒有線程的安全問題。實際上Servlet容器對每個請求也產生多個對象,它也沒有證明對性能和垃圾回收產生太多的影響。

Webork與Struts的區別三、Servlet的依賴

1、Struts處理Action時必需要依賴ServletRequest 和ServletResponse,所有它擺脫不了Servlet容器。

2、WebWork的Action不用依賴Web層和其它的容器。它可以通過ActionContext,直接去訪問Request和Response,但這個是可選的,只有在必需的請求下使用。

Webork與Struts的區別四、測試

1、Struts的每個Action都同Web層耦合在一起,這樣它的測試依賴于Web容器,單元測試也很難實現。不過有一個Junit的擴展工具Struts TestCase可以實現它的單元測試。 

2、Webwork的action能夠通過賦予一定的屬性,就可以執行單元測試。同時也可以使用一個mock的實例去測試,而不是通過啟動web容器來進行測試。

Webork與Struts的區別五、FormBean

1、Struts要求有FormBean對應每一個表單,而且FormBean必需繼承抽象類ActionForm。而使用DynaBeans實際上沒有太大的意義。不能夠很好的處理現有的模型。

2、Webwork 能夠動態的收集web的數據然后再賦值給bean。它也可以使用FormBean的形式,FormBean可以是普通的DTO和域對象,它不用重新根據域對象來生成新的FormBean,也不需繼承抽象類ActionForm。

Webork與Struts的區別六、前端表達式語言

1、Struts集成了JSTL,所以它主要使用JSTL的表達式語言來獲取數據。可是JSTL的表達式語言在Collection和索引屬性方面處理顯得很弱。

2、WebWork的表達式語言使用了功能強大的OGNL。它使用OGNL建立一個OgnlValueStack來搜索數據。Webwork前端也可以使用JSTL,但它同時支持:velocity、freemaker、jspparer、xml。

Webork與Struts的區別七、類型的轉換

1、Struts的FormBean把所有的數據都作為String類型,它可以使用工具Commons-Beanutils進行類型轉化。但它的轉化都是在Class級別,而且轉化的類型是不可配置的。類型轉化時的錯誤信息返回給用戶也是非常困難的。

2、WebWork使用OGNL進行類型轉化,提供了所有基本類型的轉化功能。類型轉化可以直接對一個Class進行(Class級別)轉化,也可以對Class的字段進行類型轉化。它使用攔截器可以很容易的將類型轉化的錯誤信息返回給用戶,而且錯誤信息可以對應到一個相應的字段。

Webork與Struts的區別八、對Action 執行前和后的處理

1、Struts處理Action的時候是基于class的hierarchies,很難在action處理前和后進行操作。

2、Webwork2 允許您處理Action可以通過攔截器,就是在每一個Action處理前或者后進行其它操作。它的攔截器可以在配置文件中動態添加,這樣Action和攔截器之間完全解藕,更好的實現了組件化。

Webork與Struts的區別九、驗證處理

1、Struts的驗證是調用FormBean的validator()方法,其實就是對FormBean的驗證。它一般使用框架Commons Validation進行數據驗證處理。它使用了一個全局的配置文件validation.xml定義了FormBean的驗證信息。Struts的FormBean屬性都被認為是String類型,所以它在驗證時也需要額外的類型轉化。

2、WebWork使用Xwork的驗證框架進行驗證處理,它可以通過配置攔截器來激活。它可以為每個需要驗證的Class指定一個xml驗證文件,也可以為一個Class在不同的情況指定不同的xml驗證文件。WebWork證可以給每個Action類指定對應的驗證文件,也可以給Action的字段去指定驗證文件。通過攔截器來組裝Action和其驗證文件,使它們之間完全解藕。

Webork與Struts的區別十、對Action執行的控制

1、Struts創建一個Action,如果想控制它的執行順序將會非常困難。甚至你要重新去寫Servlet來實現你的這個功能需求。 

2、在這個方面,WebWork的攔截器棧提供了強大的功能。Action的所有切面功能都有攔截器來實現(比如:取得request請求參數、驗證處理等),這樣你就可以用攔截器棧來組織攔截器的執行順序。例如:你需要在使用request請求參數來設置Action屬性之前,使用IoC框架設置Action的屬性,反之已然。這時,你就可以為package或Action指定一個攔截器棧來實現。

【編輯推薦】

  1. WebWork中返回INPUT的原因
  2. WebWork如何實現文件上傳配置過程
  3. WebWork下載的實現
  4. 通過WebWork實現HelloWorld
  5. WebWork的執行流程
責任編輯:冰荷 來源: 網易博客
相關推薦

2023-09-04 11:00:54

CC++語言

2009-07-06 16:32:17

ASP與JSP的區別

2023-04-09 15:15:27

云計算混合云數字化轉型

2024-04-30 10:35:36

數據中心數據保護

2015-04-20 15:27:53

EPONGPON光網絡

2022-05-24 15:02:04

CIOCTOIT領導者

2010-08-17 16:27:40

UPSEPS

2010-12-06 16:57:13

FreeBSDLinux

2021-03-13 07:49:27

OLTPOLAP數據庫

2023-02-22 13:02:57

智能建筑物聯網

2010-03-11 09:46:27

無線交換機

2023-03-27 16:36:50

邊緣計算云計算

2023-05-04 17:20:54

AWS ECSAWS Lambda云計算

2023-11-29 08:00:00

人工智能機器學習

2010-03-19 14:38:44

SWITCH交換機

2009-10-10 17:06:09

VB和VB.NET

2023-07-20 17:19:57

2022-05-16 14:13:45

5G4G通信

2013-05-14 15:43:53

綜合布線布線技術通信網絡

2015-07-21 10:49:11

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久九九九九 | 色婷婷综合久久久中字幕精品久久 | 亚洲第一色站 | 美女黄视频网站 | 国产97碰免费视频 | av黄色免费在线观看 | 免费九九视频 | 欧美日韩一区二区三区不卡视频 | 亚洲欧美一区二区三区国产精品 | 精品国产99| 毛片网站在线观看视频 | 亚洲自拍偷拍视频 | 亚洲九九精品 | 国产在线观看一区二区 | 日韩一区二区福利视频 | 2019精品手机国产品在线 | 丁香五月网久久综合 | 春色av| 日韩一二区在线 | 成人久久久 | 亚洲aⅴ | 黄色精品视频网站 | 欧美电影在线观看网站 | 日韩a视频 | 久久久久国产 | 91观看 | 天天干天天爱天天爽 | 毛片av免费在线观看 | 久久久久国产一区二区三区 | 91精品国产91久久久久久 | 久久精品亚洲精品国产欧美 | 国产一区二区三区四区 | 99福利视频 | 99国产精品久久久久老师 | 日韩欧美一区二区三区 | 欧美精品一区二区三区在线 | 51ⅴ精品国产91久久久久久 | 国产欧美日韩精品一区二区三区 | 97人澡人人添人人爽欧美 | 成人在线观看免费 | 欧美性久久 |