一,什麼是框架?
所謂框架就是提供了一組統一的接口和編程方式的可以重用組件,同時我們可以在框架中擴充我們自 己的特定邏輯。
二,MVC設計模式
將應用程序分為3個部分:模型 Model,視圖View,控制器Controller;模型組件:負責業務邏輯;模 型包含應用程序的核心功能。模型封裝了應用程序的狀態。有時它包含的唯一功能就是狀態。它對視圖或 控制器一無所知。視圖組件:負責表示業務范圍的視圖;視圖提供模型的表示。它是應用程序的外觀。視 圖可以訪問模型的讀方法,但不能訪問寫方法。此外,它對控制器一無所知。當更改模型時,視圖應得到 通知。控制器組件:負責控制用戶輸入的流和狀態;控制器對用戶的輸入作出反應。它創建並設置模型。 Struts,它是使用 servlet 和JavaServer Pages技術的一種MVC 實現; Struts,Apache組織的一個項目 ,MVC的一種開放源碼實現;
三,什麼是Struts框架
Struts 是一組相互協作的類、servlet 和 JSP 標記組成的一個可重用的 MVC 2 設計。 這個定義表 示Struts是一個框架,而不是一個庫,但 Struts框架也包含了豐富的標記庫和獨立於該框架工作的實用 程序類。
四,Struts 概覽
1,Client browser(客戶浏覽器) 來自客戶浏覽器的每個 HTTP 請求創建一個事件。Web 容器將用 一個HTTP響應作出響應。
2,Controller(控制器) 控制器接收來自浏覽器的請求,並決定將這個請求發往何處。 就 Struts 而言,控制器是以servlet 實現的一個命令設計模式。 struts-config.xml 文件配置控制器命令。
3,業務邏輯 業務邏輯更新模型的狀態,並幫助控制應用程序的流程。 就 Struts而言,這是通過作 為實際業務邏輯“瘦”包裝的Action 類完成的。
4,Model(模型)的狀態 模型表示應用程序的狀態。業務對象更新應用程序的狀態。 ActionFormbean在會話級或請求級表示模型的狀態,而不是在持久級。 JSP 文件使用 JSP 標記讀取來自 ActionFormbean的信息。
5,View(視圖) 視圖就是一個 JSP 文件。其中沒有流程邏輯,沒有業務邏輯,也沒有模型信息 — — 只有標記。標記是使Struts 有別於其他框架(如 Velocity)的因素之一。
五, Struts中的Controller(控制器)
命令設計模式的實現: Struts 的控制器將事件(事件通常是 HTTP post)映射到類的一個 servlet.
ActionServlet (Command) 創建並使用 Action 、 ActionForm 和ActionForward. 通過struts- config.xml 文件配置該 Command.從而擴展 Action 和ActionForm來解決特定的問題。 可以通過擴展 ActionServlet 來添加 Command 功能。
在Struts框架中控制器組件由三個部分構成:
1,消息控制模塊;用戶所有的提交請求都發往消息控制模塊,在由消息總線模塊根據視圖映射模塊找 到消息處理模塊來執行處理邏輯。消息控制模塊接收所有用戶的請求,並根據請求視圖找到處理。Strtus 中通過ActionServlet和RequestProcessor類來完成。
2,消息處理模塊; 該模塊執行該消息的邏輯處理,因此通常由用戶擴展實現。Struts中通過Action 類來實現。
3,視圖映射模塊;控制器邏輯和視圖邏輯之間的結合是通過配置模塊和配置文件建立其的鏈接。 Struts中配置模塊通過ModuleConfig類來完成,而配置文件由struts-config.xml文件提供。
六,Struts中的View(視圖)
視圖組件通過JSP組件實現的。Struts框架對視圖組件進行了擴展和封裝。Struts對視圖的擴展提供了 一組擴展服務器標簽用來提供視圖顯示以及傳遞數據到處理緩沖,而處理緩沖由ActionForm的擴展類來實 現。
Struts框架利用ActionForm Bean來實現視圖與控制器之間的數據的交互,維持會話級或請求級的模型 的狀態。
服務器標簽主要包括:
Html視圖標簽 Logic邏輯流程控制標簽 Bean數據緩沖讀取標簽
七,Struts中的Model(模型)
1,Struts框架中並沒有定義特定的模型組件,而是希望由用戶自己決定選擇合理的模型組件。J2EE中 可用的模型組件包括:JavaBean 用戶定義組件; EJB 組件,由EJB容器實現組件; JDO未來J2EE數據訪 問模型;一些擴展框架如:Hibernate;
2,模型中狀態的級別 會話級或請求級:ActionForm bean來維持 ; 持久級:模型組件來維持。