## 一、原理

客戶端請求到ActionSeverlet,ActionSeverlet負責截URL進行分發分發到每一個Action上,Action負責和Model打交道然后把相關信息返回到ActionSeverlet ,ActionSeverlet在返回到jsp。
## 二、總結。
Struts體系結構實現了MVC設計模式的概念,它將Model、View和Controller分別映射到Web應用中的組件。Controller負責控制流程,由ActionServlet負責讀取struts-config.xml,并使用ActionMapping來查找對應的Action;Model由ActionForm來構建;View是由JSP和Struts提供的自定義標簽來實現。
Struts有五個核心類:
ActionSvervlet:
用來接收用戶請求和狀態改變,以及發出視圖選擇。當ActionServlet接收到HTTP Request的時候,
調用process()方法,將Request()轉發給RequestProcessor來處理。
在一般情況下,我們不需要自己實現或者修改ActionServlet類,僅僅通過在web.xml中進行配置直接
使用就可以了。在某些情況下,我們可以自己擴展ActionServlet類,從ActionServlet繼承,實現自己的
ActionServlet。
ActionMapping:
ActionMapping是ActionConfig的子類,實質上是對struts-config.xml的一個映射,從中可以取得所有配
置信息。
Action:
控制器的一部分,用于模型交互,執行狀態改變或狀態查詢,高數ActionServlet下一個選擇的視圖。
Action類是實現整個體系的核心部分,它在客戶請求、界面表示和業務邏輯之間起到一個橋梁的作用。
每一個Action是用來執行一個業務操作。
ActionForward:
ActionForward是對struts-config.cml配置的mapping元素的forward屬性的包裝。在Action的excute方法
中返回一個ActionForward類。ActionForward把配置文件中forward部分的信息包裝起來,減少了應用程序
和物理資源信息之間的耦合性。
ActionForm:
用來保存用戶表單信息,它的所有屬性應該滿足get和set對應。對于一些復雜的系統可以采用
DynaActionForm來構造動態的Form。
以上是Struts的核心類,通過我查閱資料下面讓我們從用戶操作的角度來理解當一個ActionServlet接收到一個客戶請求時的流程,如下圖:

## 三、感受。
通過Struts的學習對Struts有了一個基本的了解,對Struts的基本原理有了一定的掌握,還有對Struts框架中的標簽庫,scope屬性,ActionForm、國際化的應用有了一個初步的了解。一開始學習的時候沒啥感覺。等學完以后才發現學習這個框架與學習Javascript和JQuery有點相似,JQuery是javascript的一個封裝好的框架,說框架說的其實有點太專業說白了就是javascript的函數庫別人封裝好的就像我們自己封裝的SQLHelper一樣。而Struts呢是Java封裝的一個函數庫。Struts為我們封裝優化了MVC,使得MVC使用起來更高效,更快捷。就像JQuery一樣。JQuery幫我們封裝了Javascript讓我們使用起來更加方便。
- 前言
- 菜鳥學習Struts——配置Struts環境
- 菜鳥學習Struts——簡易計算器
- 菜鳥學習Struts——bean標簽庫
- 菜鳥學習Struts——Scope屬性
- 菜鳥學習Struts——國際化
- 菜鳥學習Struts——總結
- 菜鳥學習Hibernate——配置Hibernate環境
- 菜鳥學習Hibernate——持久層框架
- 菜鳥學習Hibernate——簡單的一個例子
- 菜鳥學習Hibernate——簡單的增、刪、改、查操作
- 菜鳥學習Hibernate——一對多關系映射
- 菜鳥學習Hibernate——多對多關系映射
- 菜鳥學習Hibernate——緩存
- 菜鳥學習Spring——初識Spring
- 菜鳥學習Spring——第一個例子
- 菜鳥學習Spring——60s讓你學會動態代理原理
- 菜鳥學習Spring——60s使用annotation實現簡單AOP
- 菜鳥學習Spring——60s配置XML方法實現簡單AOP
- 菜鳥學習Spring——60s利用JoinPoint獲取參數的值和方法名稱
- 菜鳥學習Spring——60s學會Spring與Hibernate的集成
- 菜鳥學習SSH——目錄
- 菜鳥學習Spring——SpringMVC注解版前臺向后臺傳值的兩種方式
- 菜鳥學習Spring——SpringMVC注解版在服務器端獲取Json字符串并解析
- 菜鳥學習Spring——SpringMVC注解版將URL中的參數轉成實體
- 菜鳥學習Spring——SpringMVC注解版解析不同格式的JSON串
- 菜鳥學習Spring——SpringIoC容器基于三種配置的對比