struts2的原理:
?用戶發(fā)送一個HttpServletrequest的請求給tomcat,然后經(jīng)過一個applicayionCleanUp,otherFilter等攔截器,到達(dá)filterDispatcher(過時的叫法)
? 現(xiàn)在把核心攔截器叫strutsprepareAndexecutefilter。
? ?它會把請求去詢問ActionMapping看是否有對應(yīng)的action去處理。如果沒有action就不會處理。
? ?如果有對應(yīng)的action,ActionMapping會返回給filterDispatCher,filterDispatcher會把這個請求轉(zhuǎn)交給actionProxy,代理會調(diào)用actionConfiguration,然后action的配置會讀取struts.xml文件,再把文件中的信息原路返回給代理
? ?代理獲得配置文件的數(shù)據(jù)后會創(chuàng)建一個proxyInnovation,去處理請求對應(yīng)的action。
? ? ?但在處理之前要進(jìn)過intoceter1,2,3,,n等攔截器,通過攔截器然后才能去處理action,處理之后action是要返回一個string的字符串根據(jù)xml文件來決定返回的result是一個什么樣的jsp頁面。也就是模版。
? ? ? 返回模版之后再經(jīng)過n,,3,2,intorcer1攔截器,這樣倒著攔截的一個過程,通過之后返回給用戶一個HttpServletResponse。
? ?