<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爰片久久毛片免费| 99re8这里有精品热视频免费| 国产一区二区三区免费看| 7777久久亚洲中文字幕| 7m凹凸精品分类大全免费| 亚洲人成亚洲精品| 国产高清不卡免费视频| 亚洲国产精品第一区二区| 最近免费中文字幕大全免费| 亚洲av不卡一区二区三区| 无码少妇精品一区二区免费动态| 亚洲AV无码成人精品区在线观看 | 亚洲啪啪AV无码片| 中文字幕永久免费视频| 亚洲国产精品特色大片观看完整版| 深夜免费在线视频| 亚洲AV综合色区无码一区爱AV | 亚洲精品**中文毛片| 国产91免费视频| 亚洲综合精品伊人久久| 四虎永久免费网站免费观看| 特级做a爰片毛片免费看| 亚洲国产精品无码一线岛国| 在线观看肉片AV网站免费| 久久久久亚洲av无码专区导航 | 亚洲aⅴ无码专区在线观看| 亚洲人成无码网站久久99热国产| EEUSS影院WWW在线观看免费| 亚洲AV无码专区国产乱码电影 | 免费观看美女用震蛋喷水的视频| 国产日本亚洲一区二区三区| 国产又黄又爽又刺激的免费网址| 成人无码精品1区2区3区免费看| 亚洲人成在线电影| 国产jizzjizz视频全部免费| a级毛片在线免费观看| 中文字幕乱码亚洲精品一区| 久久久久亚洲爆乳少妇无| 黄页网站免费观看| 九九久久国产精品免费热6|