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

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

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

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導入]jsplet與webwork的概念對比

    Posted on 2005-11-15 12:32 canonical 閱讀(232) 評論(0)  編輯  收藏 所屬分類: Witrix開發平臺
    jsp本身提供的是一個有限狀態機模型(FSM),Web訪問模型直接體現了這一點: action?XXXX。
    action對應于方法名,XXX是方法的參數。在這個訪問模型中沒有指出狀態存儲在什么地方,因為它假設后臺是一個整體,構成一個巨大的狀態集。
    但 這種模型注定是過分簡化的,所以會有很多的發展。發展的方向就是逐漸精細化,識別出相關的部分,把它們組織到一起。其實可以從各個框架的開發過程來看出這 種演化的過程。 Struts最早只有一個全局配置文件,現在多了一個模塊的概念。WebWork是在Struts之后設計的,提供了一個所謂的package的概念,將 一堆action和interceptor組織到一起,其設計中package的extends屬性看上去是不是有點眼熟。概念多了就要分模塊,這一點在 面向對象之前就存在了,也符合Struts的發展歷程,只是WebWork的這個extends不再是簡單的模塊概念了,而是一種面向對象的設計,只是 WebWork中沒有實現型與名的分離,每個action名對應唯一的一個action,所以package也可以看作是一種完全靜態的對象,只有一個實 例,不是嗎? 我們可以做一個對應,包的namespace大概可以對應于Jsplet中的objectScope, 包名大概可以對應于Jsplet中的objectType, action對應于objectEvent, 差別在于objectScope是完全動態的,并參與Web對象管理,而package的namespace被創造出來之后只起了一個名字區別作用, Webwork的后續發展會不會在這一點上再做些文章?
    再看另外一個地方。前臺頁面顯示需要從模型中拿到數據,那模型對象是怎么管理的, Jsp本身提供了幾個管理策略application, session, request, page, 幾個action需要共享狀態信息怎么辦?狀態與行為的相關就是對象化了。Webwork2沒有提供對象化的手段,不知道一般人是怎么做的,將所有相關操 作都塞在一個Action里,然后通過一個擴展參數映射? 還是都從session中存取模型對象? session中的對象是不是越來越多,有沒有人來管一管?

    jsplet的核心是objectManager, 它利用objectFactory來創建對象,利用objectName來管理WebObject,這是與網絡無關的, 這里管理的對象也不一定需要響應Web事件。
    對 象如果需要響應事件, 實現IEventListener接口,在缺省實現中, Jsplet用了EventManager來管理objectEvent的響應,大致相當于xwork的工作,只是EventManager是個幫助對 象,由WebObject自己決定是否使用,而且它是每個WebObject自己使用自己的EventManager, 而不是系統全局只有唯一的一個EventManager。

    整個objectManager層面都是網絡無關的,當然可以單元測試。 WebEngine最終實現objectManager與web環境的關聯,只是它使用了拉模式。特別是在視圖jsp中調用WebEngine, 其最重要的作用是將thisObj這個變量注入到jsp模型中。this指針其實體現了對象化的很重要的特點:使用局部名而不是全局名稱。
    其實XWork本身也是可以脫離Web環境應用的,特別是它可以脫離View來使用,這是它的擴展性的一個來源。

    在Webwork 中有一種叫做Model Driven的概念,使用Model Driven之后在OGNL表達中就可以直接使用model的屬性和方法。在jsplet使用我們自己的tpl模板引擎, 其中token解析策略是thisObj的屬性和方法可以直接使用,也可以通過thisObj.xx來訪問,這就如同this指針的用法。


    再次聲明,我無意將jsplet與其它框架在實際使用效果上作對比,所分析的只是Framework整體的概念模型。數據綁定,參數和狀態校驗等與應用相關的功能在我們的框架中都是有著完整的解決方案的,目前不打算討論這些。
    主站蜘蛛池模板: 亚洲A∨无码一区二区三区| 免费大香伊蕉在人线国产| 亚洲AV无码专区国产乱码4SE| 一级女人18片毛片免费视频| 巨胸喷奶水视频www网免费| 456亚洲人成影院在线观| 免费看韩国黄a片在线观看| 国产精品亚洲精品青青青| 最近中文字幕无吗免费高清| 伊人久久亚洲综合影院首页| 女性自慰aⅴ片高清免费| 日韩亚洲综合精品国产| 亚洲国产成人久久综合野外| 人妻免费久久久久久久了| 亚洲中文字幕在线乱码| 成人电影在线免费观看| 亚洲视频在线观看网址| 久久精品网站免费观看| 黄色三级三级免费看| 亚洲午夜福利AV一区二区无码| 可以免费观看的毛片| 亚洲国产日韩女人aaaaaa毛片在线 | 亚洲国产精品成人综合久久久 | 57pao一国产成视频永久免费| 亚洲高清免费在线观看| 青青久在线视频免费观看| 久久精品国产亚洲AV| 亚洲色成人中文字幕网站| 四虎在线视频免费观看视频| 亚洲欧美自偷自拍另类视| 狠狠亚洲狠狠欧洲2019| 日韩中文字幕免费视频| 亚洲中文精品久久久久久不卡| 全黄a免费一级毛片人人爱| igao激情在线视频免费| 亚洲第一页在线观看| 国产精品视_精品国产免费| a级毛片免费播放| 亚洲人成综合网站7777香蕉| 亚洲人妻av伦理| 国产黄色免费网站|