Java 三大框架——Struts

Struts是一個基於Sun J2EE平臺的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標籤和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。

1、什麼是Struts?

它通過採用 Java Servlet/JSP 技術,實現了基於Java EEWeb應用的MVC設計模式的應用框架,是MVC經典設計模式中的一個經典產品。

2、Struts1的核心構成


在 Struts1 中,由一個名爲 ActionServlet 的 Servlet 充當 控制器(Controller)的角色,根據描述模型、視圖、控制器對應關係的 struts-config.xml 的配置文件,轉發視圖(View)的請求,組裝響應數據模型(Model)。

在 MVC 的模型(Model)部分,經常劃分爲兩個主要子系統(系統的內部數據狀態與改變數據狀態的邏輯動作),這兩個概念子系統分別具體對應 Struts 1裏的 ActionForm 與 Action 兩個需要繼承實現超類。在這裏,Struts 1可以與各種標準的數據訪問技術結合在一起,包括Enterprise Java Beans(EJB), JDBC 與 JNDI。

在 Struts 1的視圖(View) 端,除了使用標準的JavaServer Pages(JSP)以外,還提供了大量的標籤庫使用,同時也可以與其他表現層組件技術(產品)進行整合,比如 Velocity Templates,XSLT 等。

通過應用 Struts 的框架,最終用戶可以把大部分的關注點放在自己的業務邏輯(Action)與 映射關係的配置文件(struts-config.xml)中。

如果你想學習java可以來這個羣,首先是二二零,中間是一四二,最後是九零六,裏面有大量的學習資料可以下載。

3、Struts1的基本執行流程


4、什麼是struts2

Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork爲核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解爲WebWork的更新產品

5、strut2的體系結構


解析:

當Web容器收到請求(HttpServletRequest)它將請求傳遞給一個標準的的過濾鏈包括 流程(ActionContextCleanUp)過濾器,然後經過Other filters(SiteMesh ,etc),

接下來需要調用FilterDispatcher核心控制器,然後它調用ActionMapper確定請求那個Action,ActionMapper返回一個收集Action詳細信息的ActionMaping對象。

接下來FilterDispatcher將控制權委派給ActionProxy,ActionProxy調用配置管理器(ConfigurationManager) 從配置文件中讀取配置信息(struts.xml),然後創建ActionInvocation對象,ActionInvocation在調用Action之前會依次的調用所用配置攔截器(Interceptor N) 一旦執行結果返回結果字符串ActionInvocation負責查找結果字符串對應的(Result)然後執行這個Result Result會調用一些模版(JSP)

來呈現頁面,之後攔截器(Interceptor N)會在被執行(順序和Action執行之前相反)最後響應(HttpServletResponse)被返回在web.xml中配置的那些過濾器和(核心控制器)(FilterDispatcher)。

6、爲什麼使用Struts?

首先,Struts 是MVC的一種實現,它將 Servlet和 JSP 標記(屬於 J2EE 規範)用作實現的一部分。Struts繼承了MVC的各項特性,並根據J2EE的特點,做了相應的變化與擴展,減弱了業務邏輯接口和數據接口之間的耦合,以及讓視圖層更富於變化

另外, struts具有頁面導航功能,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯繫,這對於後期的維護有着莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。

Struts1和Struts2的區別

Java 三大框架——Struts

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