<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ? ? Struts是一個基于MVC的開源框架,具有組件的模塊化、靈活性和重用性的優點,同時簡化了基于MVC的web應用程序的開發。 ? ? struts可以清晰地區分控制,事務邏輯和外觀,從而簡化了開發應用程序的過程。struts提供的類使得開發工作更加簡單,這些類包括:控制程序流程的類、實現和執行程序事務邏輯的類、自定義的標記庫使得創建和驗證HTML表單更加容易。 ? ? 下面是我初步學習了Struts以后,簡單勾勒的一張知識點的羅列圖。 [![](https://box.kancloud.cn/2016-02-18_56c53c0f2acca.jpg)](http://tu.mindpin.com/mindmaps/72634) [點擊查看可折疊的原導圖](http://tu.mindpin.com/mindmaps/72634) ? ? 每個事物的存在必有其存在的意義,同時也有優缺點。具體來講, Struts的優點有:? - 實現MVC模式,結構清晰,使開發者只關注業務邏輯的實現.? - 有豐富的tag可以用 Struts的標記庫(Taglib),如能靈活動用,則能大大提高開發效率。 - 頁面導航,會使得系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對于后期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。? - 提供Exception處理機制? - 支持I18N? ? 缺點:? - 頁面導航受限于forward ? ? 轉到展示層時,需要配置forward,每一次轉到展示層,相信大多數都是直接轉到jsp,而涉及到轉向,需要配置forward,如果有十個展示層的jsp,需要配置十次struts,而且還不包括有時候目錄、文件變更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整個項目,而tomcate這樣的服務器,還必須重新啟動服務器,如果業務變更復雜頻繁的系統,這樣的操作簡單不可想象。現在就是這樣,幾十上百個人同時在線使用系統時,大家可以想象一下,重啟服務器將意味著什么。 - Struts的Action必需是thread-safe方式 ? ? 它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統一同步,這個就引起了線程安全的問題。 - 測試不方便 ? ? Struts的每個Action都同Web層耦合在一起,這樣它的測試依賴于Web容器,單元測試也很難實現。不過有一個Junit的擴展工具Struts TestCase可以實現它的單元測試。 - 對事件支持不夠 ? ? 在struts中,實際是一個表單Form對應一個Action類(或DispatchAction),換一句話說:在Struts中實際是一個表單只能對應一個事件,struts這種事件方式稱為application event。它與component event相比是一種粗粒度的事件。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看