Struts2深入淺出之一

 

                                                                       深入淺出struts2

   簡介:


      自從1997年第一個Servlet規範發佈以來,我們在用Java開發Web應用這條路已經走了很遠很遠,我們學會了很多,也曾經不止一次地對開發Wbe
應用的方式做出過改進,談到這裏我不的不說Apache Struts的產生就是一個偉大的跨越,從技術的角度上來講,它是Web程序上的一次跨越性的進步,
      Struts2是Struts的下一代產品,Struts2是建立在WebWork之上的,當我們說起WebWork的時候,我們實際上說的是兩個項目----XWork和WebWork。
XWork是一個通過的命名框架,它提供了很多核心的功能,例如:actions,驗證和攔截器,它可以完全獨立於執行上下文運行,並提供了一個內部的依賴
注入機制,用來做配置和工廠實習的管理
       而WebWork則是一個完全獨立的上下文,它用Web應用中運行所需的上下文把XWork包裝起來,並提供了可以簡化Web開發的特定實現
Struts的目標很簡單--使Web開發變的更加容易,爲了達成這一目標,struts2中提供了很多新特性,比如智能的默認設置,annotation的使用以及“慣例重於配置”原則的應用,
這樣大大減少了XML配置,Struts2中的Action都是POJO,這一方面增強了Action本身的可測試性,另一方面也減少了框架內部的耦合度。開發人員可以通過攔截器(可以
自定義攔截器或則使用Struts2提供的攔截器)來對請求進行預處理和後處理,這樣的話,對於處理請求就變得更加模塊化,從而進一步減小耦合度。講到這裏我想下面和大家一起
開始走進Struts2

    以下是Struts2的處理過程圖

     

     FilterDispatcher是一個serlvet過濾器,它是整個Web應用的配置項,需要在“Web.xml”中進行配置

     <filter>
         <filter-name>action2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     </filter>   
     <filter-mapping>
            <filter-name>action2</filter-name>
             <url-pattern>/*</url-pattern>
     </filter-mapping>

  如果是配置一個最基本的Web應用的話,這樣就足夠了,剩下的就是自定義一些Web應用的執行環境和配置應用中的組件
,其中前者主要通過“struts.properties”來完成,而後者是在“struts.xml”中進行配置,下面我們來談談這個兩個
配置文件的細節


      struts.properties 文件


   這個文件提供了一個更改框架默認行爲方式的機制,在一般情況下,如果不是打算讓調試更加方便的話,那你根本沒有
必要更改這個文件,在這個文件中定義的屬性都可以再“web.xml”文件的“init-param”標籤中進行配置,或者通過“struts.xml”
文件中的“constant”標籤來修改
      在Struts2-core的jar中,有一個默認的屬性文件,名爲default.properties,如果要對屬性進行修改的話,只需要在項目的
源代碼目錄下,創建一個叫做“struts.properties”的文件,然後把一些想要修改的屬性添加到這個文件中,新的屬性就會把
默認的給覆蓋了,一下幾個屬性值得注意:
        struts.il8n.reload=true ---激活重新載入國際化文件的功能
        struts.devMode=true  ----激活開發模式,以提供更全面的調試功能
        struts.configuration.xml.reload=true  ---激活重新載入XML配置文件的功能(這是爲Action而準備的),當文件被修改之後
,就不需要重新載入Servlet容器中的整個Web應用了
        struts.url.http.port=8080   -----配置服務器運行的端口號(所有生成的URL都會被正確創建)

 

     struts.xml文件
 
    <include .../>是<struts>標籤的一個子標籤,它可以把其它配置文件導入進來,從而實現了Struts2的模塊化,它的“file”屬性定義了
要導入的文件的名稱-------該文件要和“struts.xml”一樣有着相同的結構
 注意:導入文件時,注意導入的順序,因爲從文件被導入的那個點開始,該文件中的信息才能被訪問到,也就是說,如果要使用另外一個
文件中所定義的標籤,那麼該文件就必須要在被引用之前就配置好,在這裏要說的是,有些文件需要顯示導入,而有些則會被自動導入。
“struts-default.xml”和“struts-plugin.xml”就屬於後者,它們內部都包括有結果類型、攔截器、攔截器堆棧、包以及web應用執行環境的
配置信息,這兩個文件的區別在於:struts-default.xml提供的是struts2的核心配置信息,而struts-plugin.xml則描述了特定插件的配置信息
每個插件的jar中都要有一個struts-plugin.xml文件,該文件會在系統啓動時裝載

   下次我將和大家談論 Package

 

    
  

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章