在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的信息orm
(5) 控制器(Controller)調用ActionProxyxml
(6) ActionProxy讀取struts.xml文件獲取action和interceptor stack的信息。it
(7) ActionProxy把request請求傳遞給ActionInvocationio
(8) ActionInvocation依次調用action和interceptor容器
(9) 根據action的配置信息,產生resultstruts2
(10) Result信息返回給ActionInvocation
(11) 產生一個HttpServletResponse響應
(12) 產生的響應行爲發送給客服端。