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

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

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

    Starting Struts2--Where Struts2 fits into the Web Paradigm

    Posted on 2007-08-03 09:55 puras 閱讀(1205) 評論(2)  編輯  收藏 所屬分類: Struts2.0
    現今的開發者有許多不同的WEB框架可用.其中一些是來自開源的團體,一些則來自商業公司,還有一些為了當前WEB發展的需要而正在開發的.現在有超過400個開源框架,雖然這是一個大數目,但還有很多內部使用的框架部署在生產環境中.

    所有,有很多的選擇,為什么要選擇Struts2? 這有一些特征也許會吸引你使用Struts2:
    • 基于Action的框架
    • 成熟與蓬勃發展和用戶社區
    • 注釋和XML配置選項
    • 基于POJO的Action,非常容易測試
    • 集成Spring, SiteMesh和Tiles
    • 集成OGNL表達式語言
    • 基于主題的標簽庫和Ajax標簽
    • 多種視圖選選擇(JSP,Freemarker,Velocity和XSLT)
    • 插件擴展和修改框架的特征
    所有的為了選擇一個框架,選擇一個風格框架的決定,都是頗具爭議的.我們來看現在Web應用的選擇,了解Struts可以應用在哪些方面.

    Servlets

    Servlets提供了第一個基于Java的WEB開發方法.在HTTP協議下,servlets提供了一種映射URL到調用特定的類的方法.

    很快它就被驗證,雖然這是一個很大的進步,但在Java代碼中生成HTML代碼,維護起來簡直是個惡夢.每當一個簡單的用戶接口需要更改,Java程序員則需要修改Servlet代碼,重新編譯這些源碼,并將其發布到應用所在的服務器環境中.

    JSP and Scriptlet Development

    "維護惡夢"的結果,就是將發展的結果顛倒了.比起將HTML代碼放置在Servlet或是Java代碼中,將Java代碼放HTML代碼中(JSP)則會更好一些.每個JSP里包含請求的邏輯處理和展示邏輯.

    一個問題解決了,但另一個問題又引進來了.Java代碼是在類文件中的,然而,這里卻沒有方法或類的結構.看看早期的JSP文件,你會發現兩個現像:
    • 拷貝和粘貼代碼:從一個JSP文件中拷貝Java到其他的JSP文件中.從原始的代碼中傳播出來的缺陷和錯誤,增加大量的工作量,需要同時對所有的文件做出修改.
    • 調用公用的Java格式化對象:公用的格式化或邏輯代碼組成一個可復用的對象.然后JSP使用公用對象.從這些中發現了最佳的實踐模式--從JSPs中使用Java對象.

    做為JSP規范的發展,標簽被引進入來,用于復用Java對象.Tag提供一個類似于HTML的寫法來訪問底層的代碼,允許設計者(而非開發者)利用IDEs使用動態標簽編輯網布的布局.例如JSP提供的<jsp:useBean.../>和<jsp:getProperty.../>標簽.隨同提供JSP標簽庫一起,JSPs提供了一個讓開發人員創建自己的標簽庫的方法.

    Action-Based Frameworks

    基于Action的框架,是在結合了Servlets和JSPs兩者的概念之上.想法是拆分用戶發送的請求的頁面的請求處理和顯示邏輯,讓每個部分都做它做的最好的一塊.這個實現使用一個來自Smalltalk的模式,MVC模式,或是更多常說的前端控制器,或是Sun說法中的Model2.
    在這個模式中,Servlet是一個控制器,提供一個對所有客戶端頁面請求的集中的控制點.它映射請求的URL到工作單元中的一個action.這個action的工作則將對給定的URL執行特定的方法, 訪問HTTPsession, HTTP請求和參數,調用商業服務,并將響應映射到一個Model中,一般使用POJO.最后,action返回一個結果,映射(通過配置文件)到JSP來瀉染視圖.

    Struts2是一個基于action的MVC的WEB框架.

    Component-Based Frameworks

    由于WEB應用變得越來越復雜,人們認識到一個頁面不再是將邏輯分離,WEB應用了多種頁面形式,鏈接內容更新和其他許多自義定的窗口小部件--所有的都需要處理邏輯以實現他們的任務.

    為了解決這些復雜性,基于組件的框架變得開始受歡迎.它們提供了一種封閉的由用戶界面組件和類的組件,并且是由事件驅動的,而且比基于action的框架更加面向對象.一個組件可以是一個HTML輸入框,一個HTML的窗體或是提供的自定義窗口小部件.事件,像窗體的提交或鏈接這種,映射到描述組件的類的方法,或到特定的監聽類.另一個好處是基于組件的框架,允許你方便的復用你的組件在多個WEB應用中.基于組件的框架有JSF,Wicket和Tapestry等.

    The Great Equalizer – Ajax

    在2005年初,一種新的魔力出現在WEB開發中.Jesse James Garrett杜撰的,AJAX代表"Asynchronous JavaScript and XML".相對來說,技術并不新鮮.事實上,主要的WEB瀏覽組件已經創建了這個異步調用--XMLHttpRequest對象, 早在6年前就已經可用了.

    但是有什么新應用使用了這項技術呢.Google Maps是最早充分利用這項技術的應用.網頁活躍了起來--您能與控制和裝飾物交互.使用鼠標你可以在屏幕內滾動地圖;當輸入一個地址時,信息將在地圖上被物化出來;最后,the culmination being route planning which orchestrated all these features into a useable web application.并且,所有這些,都沒有發生整個頁面的刷新.

    用戶界面使用Ajax功能允許WEB瀏覽器對服務器的請求使用更小的信息量,并且只有它被需要的時候.請求結果被服務器格式化或操作,并直接返回給頁面顯示,使用WEB瀏覽器將變化傳遞給用戶.只有頁面的部分被更新,而不是整個頁面,使用戶覺得這個WEB應用可以更快的響應他們的操作.

    從UI來的請求,類似事件--它們非常的分散,為一個單獨的組件或方法傳遞信息.不再需要一個action為整個頁面檢索數據,它們 更加簡潔,而且因此更方便在各個應用中復用.實際上,一個Ajax用戶界面調用基于action的框架允許action框架的行為與基于組件的框架相似.事實上,這種技術的組合提供了更加松耦合和可復用性更加的系統.同樣的actions可以為Ajax組件提供JSON,XML或HTML的視圖片段,和其他actions結合提供非Ajax用戶界面的HTML視圖相似.

    上一章:Starting Struts2--緒論

    下一章:Starting Struts2--Core Components(1)



    Feedback

    # re: Starting Struts2第二章--Where Struts2 fits into the Web Paradigm[未登錄]  回復  更多評論   

    2007-08-03 10:31 by 阿蜜果
    關注!
    嘿嘿,我也在寫struts2學習進階系列

    # re: Starting Struts2第二章--Where Struts2 fits into the Web Paradigm  回復  更多評論   

    2007-08-03 10:55 by Puras.He
    To:阿蜜果
    多多交流
    呵.

    posts - 47, comments - 124, trackbacks - 0, articles - 0

    Copyright © puras

    主站蜘蛛池模板: 成人免费视频观看无遮挡| 一二三四免费观看在线视频中文版| 日本一道本高清免费| 亚洲a视频在线观看| 日韩免费一区二区三区在线播放| 亚洲高清视频在线观看| 麻豆精品不卡国产免费看| 国产∨亚洲V天堂无码久久久| 久久精品视频免费| 久久亚洲日韩看片无码| 18以下岁毛片在免费播放| 麻豆亚洲AV永久无码精品久久| 久久久久成人片免费观看蜜芽| 在线观看亚洲一区二区| 99在线免费观看视频| 亚洲人成网站18禁止久久影院| 欧美男同gv免费网站观看 | 亚洲爱情岛论坛永久| 三级黄色在线免费观看| 亚洲国产日韩一区高清在线| 91麻豆最新在线人成免费观看 | 亚洲日本在线电影| 亚洲精品成人久久久| a级在线观看免费| 亚洲福利秒拍一区二区| 日韩免费a级在线观看| 一级女性全黄生活片免费看| 亚洲AV乱码久久精品蜜桃| 国产免费不卡视频| 特级毛片全部免费播放a一级| 亚洲人成网亚洲欧洲无码久久| 24小时日本电影免费看| 最新亚洲人成网站在线观看| 中文字幕亚洲一区二区va在线| 95免费观看体验区视频| 亚洲国产成人AV网站| 国产亚洲av片在线观看播放 | 一色屋成人免费精品网站| 日韩亚洲综合精品国产| 国产V亚洲V天堂A无码| 成人免费看片又大又黄|