什麼是struts2?

struts2是輕量級的MVC框架,主要解決了請求分發的問題,重心在控制層和表現層。

輕量級:低侵入性,與業務代碼的耦合度很低,業務代碼中基本不需要import它的包。

MVC框架:struts2實現了MVC,並且提供了一系列API,採用模塊化的方式簡化業務開發過程。

M:模型層的職責是負責業務邏輯。包含兩層:業務數據和業務處理邏輯。比如:實體類,Dao,service都屬於模型層。

V:視圖的職責是負責顯示界面和用戶交互(收集用戶信息)。屬於視圖的組件是不包含業務邏輯和控制邏輯的jsp。

C:控制器是模型層和視圖層之間的橋樑,用於控制流程。比如:在servlet項目中的單一控制器ActionServlet。


Struts和servlet對比:

優點:1.業務代碼解耦,適合團隊開發

將請求分發給不同的處理類,從而降低了業務代碼的耦合度。

     2.提高開發效率

提供了一系列的API,可以大大的提升項目的開發效率。比如:使用攔截器自動給請求的參數轉型。

缺點:1.執行效率偏低

需要使用反射,解析xml等技術,會降低執行效率。

     2.結構複雜,需要時間瞭解struts2的API。


struts2自身的優勢:

1.健壯性

2.易用性

3.擴展性 struts2使用AOP的思想,使用攔截器來擴展業務控制器。

4.侵入性 struts2對業務代碼依賴性很低。


struts.xml配置的解釋:

package:包,用於對action進行封裝

1.name:包名,根元素下可以有多個包,彼此之間不能重名。

2.extends:繼承 用於指定繼承的包,相當於將繼承包下的配置信息複製到了當前包下。

3.namespace:命名空間 用於規定Action的訪問路徑,必須以/開頭。

 <package name="default" namespace="/" extends="struts-default">

action:業務控制器,用於註冊控制器組件(類)
1.name:action的名稱,用於規定Action的訪問路徑
一個包下面可以有多個action,彼此之間不能重名
2.class:業務控制器組件,用於指定業務控制器對應的類

         3.method:方法,用於指定訪問當前aciton時要調用的方法

 <action name="index" class="com.ctgu.IndexAction">

result:輸出組件,用於轉發,重定向,直接輸出
1.name:名稱 ,一個action下可以有多個result,彼此之間不能重名
2.默認做轉發操作,標記內容設置成轉發的頁面

<result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>

ps:將自己理解的東西整理下來還是很不錯呢

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