Struts基礎理論介紹
一、爲什麼要學Struts
對原有項目進行二次開發
還有很多公司在用Struts 1.x
如果Struts 1能學會,Struts 2就很簡單啦
二、爲什麼要使用Struts
建立在MVC這種公認的好的模式上,結構層次分明、高可重用性、增加了程序的健壯性和可伸縮性,便於開發和設計分工,提供集中統一的權限控制、校驗、國際化、日誌等。
與其他框架具備很好的融合性。如SPRING、HIBERNATE
大大提高了開發速度。(省去了很多重複性工作)
三、FrameWork的概念
簡言之就是人們用於解決相同或相似類型的方案。
其特點如下:
可重用性、可擴展性、可收縮性。
基於請求響應(Request-Response)模式的應用Framework的邏輯結構。
l 控制層(Controller)
l 業務邏輯層(Business Logic)
l 數據邏輯層(Data Logic)
四、Struts的概念和體系結構
Struts是Apache組織的一個開源項目,主要是採用JSP和Servlet來實現的。
Struts是一個基於Java EE平臺的MVC框架,將MVC模式“分離顯示邏輯和業務邏輯”發揮的淋漓盡致。
Struts的體系結構如下:
控制:通過圖1大家可以看到有一個XML文件Struts-config.xml,與之相關聯的是Controller,在Struts中,承擔MVC中Controller角色的是一個Servlet,叫ActionServlet。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發送到Struts的HTTP請求的入口點。它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)。另外控制組件也負責用相應的請求參數填充 Action From(通常稱之爲FromBean),並傳給動作類(通常稱之爲ActionBean)。動作類實現核心商業邏輯,它可以訪問java bean 或調用EJB。最後動作類把控制權傳給後續的JSP 文件,後者生成視圖。所有這些控制邏輯利用Struts-config.xml文件來配置。
視圖:主要由JSP生成頁面完成視圖,Struts提供豐富的JSP 標籤庫: Html,Bean,Logic,tiles等,這有利於分開表現邏輯和程序邏輯。
模型:模型以一個或多個java bean的形式存在。這些bean分爲三類:Action Form、Action、JavaBean or EJB。Action Form通常稱之爲FormBean,封裝了來自於Client的用戶請求信息,如表單信息。Action通常稱之爲ActionBean,獲取從ActionSevlet傳來的FormBean,取出FormBean中的相關信息,並做出相關的處理,一般是調用Java Bean或EJB等。
流程:在Struts中,用戶的請求一般以*.do作爲請求服務名,所有的*.do請求均被指向ActionSevlet,ActionSevlet根據Struts-config.xml中的配置信息,將用戶請求封裝成一個指定名稱的FormBean,並將此FormBean傳至指定名稱的ActionBean,由ActionBean完成相應的業務操作,如文件操作,數據庫操作等。每一個*.do均有對應的FormBean名稱和ActionBean名稱,這些在Struts-config.xml中配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。