1.工作原理
1.1.工作原理圖解
1.1.1.過濾器:用戶通過HttpServletRequet發出請求至過濾器,ActionContextCleanUp(可選過濾器主要用於和其他框架進行集成),FilterDispatcher(2.0到2.1.2版本替代爲StrutsPrepareAndExecuteFilter)。爲什麼替代?是因爲當我們自定義一個過濾器時候往往會放在最頂端,如果我們需要在執行Action之前添加我們自己的過濾器,那麼FilterDispatcher做不到而後者能做到。
1.1.2.當請求是.action後綴時候會通過AcitonMapper中驗證Action是否存在,返回過濾器並轉到ActionProxy,並通過ConfigurationManager去讀取struts.xml來找到具體的Action類。
1.1.3.通過ActionProxy代理來創建我們Action反向的實例,然後通過一系列的攔截器,執行到Action返回result,然後再通過一系列的攔截器,最後通過HttpServletResponse返回結果給用戶。
2.Struts2的核心文件
2.1.web.xml
2.1.1.只有配置在web.xml文件中Servlet纔會被應用加載。
2.1.2.所有的MVC框架都需要Web應用加載一個核心的控制器,對於Struts2而言,需要加載StrutsPrepareAndExecuteFilter,只要Web應用加載了StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter就會加載Struts2框架。
2.2.struts.xml文件
2.2.1.主要負責管理Aciton的映射和以及該Aciton包含的Result定義等。
2.2.2.包含的內容
1)全局屬性
2)用戶請求和響應Action之間的關係
3)Action可能用到的參數和返回的結果
4)各種攔截器的配置
2.3.struts.properties
2.3.1.Struts2框架下的全局屬性文件,自動加載(該文件包含很多的key-value鍵值對),該文件也可以不要,可以在struts.xml中通過constants元素進行配置。