<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    RiKeR

    本博客停止更新,最新內容請訪問--> http://blog.csdn.net/shuailee

    統計

    留言簿(3)

    積分與排名

    閱讀排行榜

    評論排行榜

    關于WebWork的認識與思考

    WebWork是一個Java web-application開發框架(development framework). 它專注于提高開發者的生產效率并簡化代碼. WebWork構建在XWork之上.

    WebWork是由OpenSymphony組織開發的,致力于組件化和代碼重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.2,現在的WebWork2.x前身是Rickard Oberg開發的WebWork,但現在WebWork已經被拆分成了Xwork1WebWork2兩個項目。Xwork簡潔、靈活功能強大,它是一個標準的Command模式實現,并且完全從web層脫離出來。Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL – the Object Graph Notation Language),IoCInversion of Control倒置控制)容器等。

    WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcherHTTP請求的變成Action(業務層Action), session(會話)application(應用程序)范圍的映射,request請求參數映射。WebWork2支持多視圖表示,視圖部分可以使用JSP, Velocity, FreeMarker, JasperReportsXML

     

    1 XWork提供了普通的(generic)命令模式(command pattern)框架
    2 同時也是一個反轉控制(Inversion of Control, IoC)容器.

     除了上述特性外, WebWork還為其它功能如

    1 創建可復用的用戶界面模版(UI template)
    2 表單(form)控制
    3 用戶界面主題(UI theme)
    4 國際化
    5 表單參數與JavaBean的動態映射
    6 健壯的客戶端及服務器端校驗(validation)

    提供了強有力的支持.

    WebWork 2 : 什么是WebWork

    WebWork
    是一個強大的基于WebMVC框架, 它構建在一個命令模式框架XWork之上. WebWork的特性包括

    1  :用于處理或代理 請求的分發器(Dispatcher)

    2
     :支持多種視圖技術(JSP, Velocity, JasperReports, XML, FreeMarker)的結果類型

    3
     :一個小而強大的JSP標簽庫和Velocity宏定義

    4
     :分發器調用XWork活動來訪問和操作模型(Model)并為視圖顯示模型數據提供方便的途徑.

     WebWork真正的優勢在于它強調簡潔和協作能力的根本理念. 使用WebWork將有助于

    1 :最小化代碼

    2
    :允許開發人員更多的關注業務邏輯(business logic)和建模(modeling)

    3
    :不是諸如編寫Servlet之類的事情

    一 :特性

    1 :靈活的校驗(validation)框架, 允許使用XML文件定義校驗并通過截取器(Interceptor)在運行時自動應用到活動類(Action class), 從而達到校驗與活動類之間的完全解藕(decoupled). 新版本還支持客戶端校驗

    2
    :類型轉化(Type conversion)可以很容易的將對象從一個類轉換成另一個類型。
     
    3
    :強大的表達式語言(Expression Language, EL)建立在OGNL基礎之上, 允許:

    1 遍歷動態對象圖
    2 執行對象方法
    3 使用值棧(ValueStack)實現對多個JavaBean屬性的透明訪問
    4 Webwork也可以使用JSTL. 

    :使用反轉控制(Inversion of Control, IoC)管理組件(component)生命周期依賴關系, 不需要編寫注冊類創建組件, 組件客戶也不需要主動獲取組件實例(instance). 

    Velocity模版, 使得開發人員可以很容易的定制Web頁面的外觀(look & feel). 

    :截取器(Interceptors)可以動態截取活動(Action)執行前后的處理過程,

    1 簡化了活動的代碼
    2 提高了代碼復用能力

    :支持國際化(I18n). 

    :可以方便的與其他第三方軟件集成, 包括Hibernate, Spring, Pico, Sitemesh. 

    :支持多種視圖技術如

    1 JSP
    2 Velocity
    3 FreeMarker
    4 JasperReports
    5 XML


    10 
    使用包(Packages)名空間(Namespaces)管理數以百計的活動


    二 :背景與目的
    WebWork
    是一個開放源代碼項目, 目標是為在短時間內構建復雜網站提供易于理解和維護的工具及開發框架. Java是一個平臺以及基于該平臺的語言, 盡管他支持although it supports many others as the language in which systems are built, such as JavaScript and XML.

    WebWork在構架上基于最佳實踐和那些已被證實有價值的設計模式. 它還基于一個強烈的動機: 盡可能的簡單, 并具有維護上的靈活性(這實際上是一個困難的平衡).

    它也鼓勵用戶使用恰當的, 符合需要的方式工作. [It also encourages you, as a user, to do things the way you seem fit for your needs.] WebWork能以多種方式配置和使用, 哪種方式更適合于你依賴于使用環境. 下面是一個例子, WebWork支持多種不同的HTML生成技術如:

    1 JSP
    2 Velocity
    模版引擎
    3 XSLT

    它們之間在理念上和技術上都存在很大的差別, 但都能為WebWork所用, 同時, 不同的用戶確實需要這些不同的方式. "你不能那么做"是我們盡可能避免的一句話, "我們不能"往往是因為有另一個更好, 更適合的工具.

     WebWorkMVC Model-1Model-2的支持

    Web
    應用開發框架的最重要的一個任務是支持

    1 邏輯
    2 內容
    3 表現

    相分離的理念. 如果沒有做到這一點, 通常會導致維護上的問題, 如果開發團隊結構復雜(因為每一個團隊成員通常只負責應用的某一方面(aspect)), 還會使應用的開發變得更加困難. 達到分離目的的一般方法是采用MVC(Model-View-Controller)設計模式. 該模式鼓勵使用分離的代碼來處理:

    1 模型(model,  " 業務邏輯 " )
    2
    控制器(controller,  " 應用邏輯 " )
    3
    視圖(view). 

    這樣分離之后, 下一個問題是:

    控制器的代碼與表現部分如何交互

     有兩種常用的設計模型可以做到這一點, 它們分別被稱為Model-1Model-2. 這兩種模型將在下文描述.

    Model-1
    Model-1
    方式的基本想法是在表示層(presentation layer)JSP或模版中調用控制器代碼. 如果你正在使用JSP, 這意味著你可以通過兩種方式執行你的WebWork活動:

    1 使用 " webwork:action " 標簽調用執行
    2 使用 " webwork:bean " 標簽像調用JavaBeans一樣執行活動.

    Model-2
    Model-2方式中

    1 哪些代碼調用控制器
    2 哪些視圖進行展示

    由第三方決定, 通常是一個servlet分發器. 分發器解碼HTTP請求中的URL, 然后決定執行哪些代碼. 一個包含控制器代碼的Java對象被獲取并執行, 從而完成對某個應用邏輯和業務邏輯的處理. 當執行結束后, 分發器將請求轉交(forward)給一個視圖處理器(如一個JSP), 它使用前一個處理的數據繪制結果視圖.

     :如何選擇使用?
    由于

    1 控制器邏輯
    2 表現生成

    完全解藕, 使得根據執行情況來顯示不同結果頁面成為可能. 例如, 如果處理出現錯誤就可以顯示一個錯誤頁面而不顯示正常的結果頁面.

    Model-1方式的優點如下.

    1 :不需要建立代碼與表示之間的映射關系
    2
    :易于察看JSP或模版中執行了哪些代碼
    3
    :如果頁面中的一部分要求某個處理過程只允許成功(否則系統失靈), 
             
    那么這些代碼調用和表現部分的代碼(JSP標簽庫和HTML)不必分離到新的活動和JSP頁面中處理過程這樣可以提高性能和可讀性

    Model-2方式的優點如下.

    1 :代碼和表現徹底分離同一個表現頁面可以被多個不同的活動復用
         
    這些活動可以訪問不同的數據但使用相同的方式展示

    2
    :如果一個活動可能導致多種狀態 " 成功 " " 需要重新輸入 " " 出現錯誤 "
         
    那么使用Model - 2方式可以很容易的將這些狀態映射到不同的頁面

     

    選擇使用的首要原則是:

    當代碼僅僅是獲取并顯示數據(這被稱為read - type code)時使用Model - 1

    只要當模型是由活動或一個處理流程所改變時就應當使用Model - 2

     


    OGNL
    WebWork,XWork中的底層支持組件.非常強大的函數庫.

     

    posted on 2007-08-29 00:39 RiKeR 閱讀(275) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 人成午夜免费视频在线观看| 日本视频在线观看永久免费| 成人激情免费视频| 亚洲va在线va天堂va手机| AV大片在线无码永久免费| 亚洲剧情在线观看| 亚洲av日韩片在线观看| 亚洲av无码一区二区三区天堂| 日韩毛片免费无码无毒视频观看 | 一级毛片成人免费看a| 亚洲精品国产精品国自产观看| 日韩精品视频在线观看免费| 国产亚洲综合久久系列| 无码囯产精品一区二区免费 | 亚洲成av人片在线天堂无| 国产精品色午夜免费视频| 一个人免费观看日本www视频 | 亚洲伊人色欲综合网| 久草视频在线免费看| 亚洲中文无码线在线观看| 青草草在线视频永久免费| 免费观看四虎精品成人| 亚洲好看的理论片电影| 拍拍拍又黄又爽无挡视频免费| 黄页网站在线免费观看| 亚洲不卡中文字幕无码| 成人女人A级毛片免费软件| 真正全免费视频a毛片| 亚洲AV日韩AV鸥美在线观看| 在线视频免费观看www动漫| 一级毛片在线免费视频| 91亚洲国产在人线播放午夜| 狼友av永久网站免费观看| 成人网站免费大全日韩国产| 亚洲精品福利网泷泽萝拉| 国产免费人成在线视频| 免费无码一区二区三区| 国产成人高清亚洲一区久久| 亚洲国产成人久久综合一 | 亚洲人成精品久久久久| 妞干网免费视频观看|