在struts2的應用 中,從用戶請求到服務器返回相應響應給用戶端的過程當中,包含了許多組件如:Controller、ActionProxy、ActionMapping、 Configuration Manager、ActionInvocation、Inerceptor、Action、Result等。下面咱們來具體看看這些組件有什麼聯繫,它們 之間是怎樣在一塊兒工做的。web
(1) 客戶端(Client)向Action發用一個請求(Request)服務器
(2) Container經過web.xml映射請求,並得到控制器(Controller)的名字app
(3) 容器(Container)調用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在 Struts2.1之前調用FilterDispatcher,Struts2.1之後調用StrutsPrepareAndExecuteFilterspa
(4) 控制器(Controller)經過ActionMapper得到Action的信息xml
(5) 控制器(Controller)調用ActionProxyio
(6) ActionProxy讀取struts.xml文件獲取action和interceptor stack的信息。容器
(7) ActionProxy把request請求傳遞給ActionInvocationstruts2
(8) ActionInvocation依次調用action和interceptor配置
(9) 根據action的配置信息,產生resultrequest
(10) Result信息返回給ActionInvocation
(11) 產生一個HttpServletResponse響應
(12) 產生的響應行爲發送給客服端。