Struts是一個基於Sun J2EE平臺的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,Struts把Servlet、JSP、自定義標籤和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。
1. Struts的起源
Struts是作爲Apache Jakarta項目的組成部分。該項目的目標是爲建立Java web 應用程序而提供的一個開源框架,目前大家一般使用的版本爲1.2,但也出現了2.0。通過使用struts 框架可以改進和提高Java Server Pages (JSPs)、Servlet、標籤庫以及面嚮對象的技術在web應用程序中的應用。應用Struts框架可以減少你應用MVC(Model- View -Controller)設計模式的開發時間,從而提高開發效率。把Struts應用於J2ee客戶端,應該是一個不錯的選擇。
2. Struts的工作原理
談到Struts,我們就不得不提到MVC設計模式。MVC即Model-View-Controller的縮寫,它是web應用當中的常用的設計模式。MVC 減弱了業務邏輯接口和數據接口之間的耦合,以及讓視圖層更富於變化。
Struts是MVC的一種實現,它很好的結合了Jsp,Java Servlet,Java Bean ,Taglib等技術。那麼我們來看看Struts框架的工作原理:
控制:在Struts中,ActionServlet起着一個控制器(Controller)的作用。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發送到Struts的HTTP請求的入口點。它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)。另外控制組件也負責用相應的請求參數填充 Action Form(通常稱之爲FromBean),並傳給動作類(通常稱之爲ActionBean)。動作類實現核心商業邏輯,它可以訪問java bean 或調用EJB。所有這些控制邏輯利用Struts-config.xml文件來配置。
視圖:主要是由Jsp來控制頁面輸出的。它接收到Action Form中的數據,利用html,taglib,bean,logic等顯示數據。
模型:在Struts中,主要存在三種bean,分別是:Action,ActionForm,EJB或者Java Bean。ActionForm用來封裝客戶請求信息,Action取得ActionForm中的數據,再由EJB或者Java Bean進行處理。
3 Struts 優點與缺點
優點:1.利用Struts提供的taglib可以大大節約開發時間。2. 表現與邏輯分離。 3.維護擴展比較方便。 4 便於團隊開發
缺點:大量的使用標籤,對於初學者難度較大。
4 總結
通過使用Struts框架,可以提高系統的可維護性和可重用性。
Struts核心類: ActionServlet,RequestProcessor
1. ActionServlet負責Struts架構的整個初始化工作,當ActionServlet實例接受到HTTP請求時,在doGet()和doPost()方法中都會調用process()方法,Process()中又會調用RequestProcessor的process()方法。
2. RequestProcessor中的processActionPerform()調用action的execute()方法。RequestProcessor可以根據需要進行擴展,如Spring中的org.springframework.web.struts.DelegatingRequestProcessor。擴展後必須在Struts的Config中加入<controller processorClass="XXXXXX"/>