深入淺出Struts2
Struts2簡單介紹
Struts 2框架作為Struts 1.X框架的替代技術,相對Struts 1.X來說,有著本質上的改變。 Struts 2框架是從WebWork框架發展而來的.Apache Struts 2即是大家之前所熟悉的webwork2.隨著各自的發展。webwork和Struts社區決定將二者合並為Struts2,新版本號的Struts與曾經版本號一樣更易於使用。從某種程度上來講。Struts2沒有繼承Struts1的血統,而是繼承了webwork的血統而且吸收了Struts1和webwork兩者的優勢。所以說Struts2並非一個全新的框架。
mvc設計模式
談到Struts就不得不談談mvc設計模式。mvc設計模式是一種眼下廣泛應用的軟件設計模式。隨著網絡應用的高速發展,應用變得越來越復雜,mvc設計模式為應用模型提供了最主要的分析方法。為構造產品提供了清晰的設計框架,為軟件project提供規範的根據。
mvc設計模式將應用程序劃分為模型層、視圖層、控制器。
視圖。一個web項目中可能有非常多不同的視圖,mvc設計模式對於視圖的處理僅限於視圖上數據的採集和處理以及響應用戶的請求。而不包含在視圖上的業務流程的處理。
控制器,控制器在視圖層與業務邏輯層之間起到了橋梁作用,控制了兩者之間的數據流向。
當用戶請求從V部分傳到控制器時,控制器調用對應的模型層在控制器中進行處理。控制器再將處理結果轉發給適當的視圖層。循環進行此過程。
mvc工作流程:
1.用戶的請求提交給控制器2.控制器受到用戶請求後依據用戶的詳細需求,調用對應的模型(javabean或者EJB)來處理用戶請求。
3.控制器調用模型層進行數據處理後,依據處理結果進行下一步的跳轉,如跳轉到還有一個視圖或其它控制層。
struts2工作原理
Struts2是基於mvc設計模式的java web框架技術之中的一個,Struts2框架依照mvc的設計思想把java web 應用程序分為:控制層(核心控制器和業務控制器)、模型層(業務邏輯組件和數據庫訪問組件)、視圖層(包含HTML、JSP、Struts2的表簽)。
1.客戶提交請求道server
2.請求被提交到一系列的過濾器或者攔截器。最後到達FilterDispather
3.FilterDispather讀取配置文件struts.xml。依據配置信息調用某個Action來處理客戶請求。
4.Action處理後。返回結果,FilterDispather依據struts.xml的配置找到相應的頁面跳轉。
核心控制器
Struts2的成功因素之中的一個在於核心控制器FilterDispather。該控制器作為一個過濾器執行在java web項目中,負責攔截全部用戶請求,當用戶請求到達時,該過濾請求會過濾用戶請求。FilterDispather負責四個方面的功能:(1)運行Actions
(2)清除ActionContext
(3)維護靜態內容
(4)清除request生命周期內的XWork的interceptors
業務控制器
Struts2的成功的還有一個因素在於Action業務邏輯控制器。
開發基於Struts2的java web 應用項目時,Action是數據處理的核心,須要編寫大量的Action類,並在struts.xml文件裏配置Action。
Action類中包括了對用戶請求的處理邏輯,因此也把Action稱為Action業務控制器。它是用戶請求和業務邏輯之間的橋梁,每一個Action充當客戶的業務代理。
總結
Struts2緊緊環繞兩大核心控制器,做到了依據請求的參數轉發請求給適當的控制器、在控制器中調用業務接口、將業務接口返回的結果包裝起來發送給指定的視圖,並由視圖完畢處理結果的展現。使得開發模塊化、減少耦合、更易於擴展。當然Struts2的一些細節優點就更不用說了,比如獲取表單內容,並組織生成參數對象、易於擴展的插件機制。
深入淺出Struts2