Struts,最初的意思是:框架的,支桿。用來支持JSP,Servlet等技術在Web項目中的應用。它的目的是幫助我們減少在運用MVC設計模型來開發Web應用的時間。
在使用Struts之前,開發人員都是在JSP中頁面裏寫入業務邏輯處理的代碼。每個頁面都要寫上大量的冗餘代碼。開發J2EE Web項目都是使用Model的設計模式。
【Model1】
model1模式,有三種常用開發方式:
(1)將Java代碼寫入JSP頁面中
(2)將部分業務邏輯代碼封裝成JavaBean,在JSP中調用這些JavaBean。解決了上述代碼冗餘的問題,並且從內存中讀取一次封裝的Java對象。
(3)將Java中已經是標準的內置對象在JSP中調用,例如JDBC。此種方式和第二種方式不同的地方是,第二種方式是調用的開發者自己開發的類和方法,而此方式是調用的Java的標準類和方法。javaBean中含有簡單的業務邏輯處理。例如數據庫連接。
Model1模式的結構:
模式優點:架構簡單,比較適合小型項目開發
模式缺點:
(1)修改需求或增加需求時,要改動很多代碼,開發工作量大。
(2)業務邏輯代碼和頁面代碼都是寫到JSP中的,無法達到複用的效果。
【model2】
model2模式是model1模式的進一步改進,它的基礎是組件化,基於MVC模式的開發。該模型採用業務邏輯和視圖分離的方法。JSP只負責展現表示功能,而業務邏輯由Java代碼來實現。當開發新需求或改動需求時,JSP無須更改,可以達到JSP頁面複用的效果。
在Model2架構中,Servlet作爲前端控制器,負責接收客戶端發送的請求,在Servlet中只包含控制器邏輯和簡單的前端處理;然後,調用後端JavaBean來完成實際的邏輯處理;最後,轉發到相應的JSP頁面處理顯示邏輯。
Model2模式結構:
在MVC模式中,Model代表的是業務邏輯,由Java代碼實現;View代表表示界面,由JSP技術實現;Controller代表的是處理流程控制,主要實現的是業務邏輯和表示界面相關聯的技術。
模式優點:職責清楚,適合大型項目開發,分離了控制,能夠更好的使用需求的變化。
模式缺點:不適合小型項目開發。
【Struts】
Struts就是運用MVC模式的Web項目開發框架。
Controller:該組件由兩部分來組成-系統核心控制器,業務邏輯控制器。
在Struts中,ActionServlet爲系統核心控制器,負責攔截來自用戶的請求,該控制器負責攔截所有的HTTP請求,然後根據用戶請求決定是否要轉給業務邏輯控制器。
Action,該控制器負責接收來自ActionServlet的請求,並根據該請求調用模型的業務邏輯方法處理請求,並將處理結果返回給JSP頁面顯示,本身不具備處理能力,而是調用Model來完成處理。
Model:由ActionForm和JavaBean組成,其中ActionForm用於封裝用戶請求的參數,封裝成ActionForm對象,該對象被ActionServlet轉發給Action,Action根據ActionFrom裏面的請求參數處理用戶的請求。JavaBean則封裝了底層的業務邏輯,包括數據庫訪問等。
View:該部分由JSP視圖來實現,Struts提供了豐富的標籤庫,實現與Model的交互。
到此,我們瞭解了Struts的一些基礎知識,那麼如何在項目中使用Struts呢?如何讓Struts生效?請看下篇博客的講解。