Struts2請求處理流程及原始碼分析

2021-07-26 17:31:21 字數 748 閱讀 9558

1. 乙個請求在struts2框架中的處理步驟:a) 客戶端初始化乙個指向servlet容器的請求;

b) 根據web.xml配置,請求首先經過actioncontextcleanup過濾器,其為可選過濾器,這個過濾器對於struts2和其他框架的整合 很有幫助(sitemesh plugin),主要清理當前執行緒的actioncontext和dispatcher;

c) 請求經過外掛程式過濾器,如:sitemesh、etc等過濾器;

g) actionproxy物件建立時,會同時建立乙個actioninvocation的例項;

h) actioninvocation例項使用命名模式來呼叫,在呼叫action的過程前後,涉及到相關***(intercepter)的呼叫;

i) 一旦action執行完畢,actioninvocation例項負責根據struts.xml中的配置建立並返回result。result通常是乙個需要被表示的jsp或者freemarker的模版,也可能是另外的乙個action鏈;

j) 如果要在返回result之前做些什麼,可以實現preresultlistener介面,preresultlistener可以在interceptor中實現,也可以在action中實現;

2. struts2請求處理示意圖:

Struts2請求處理流程

1.1 struts2請求處理 1.乙個請求在struts2框架中的處理步驟 a 客戶端初始化乙個指向servlet容器的請求 b 根據web.xml配置,請求首先經過actioncontextcleanup過濾器,其為可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助 sitemes...

Struts2請求流程

1 客戶端傳送請求 2 請求先通過actioncontextcleanup filterdispatcher 6 actionproxy建立乙個actioninvocation的例項 7 actioninvocation呼叫真正的action,當然這涉及到相關 的呼叫 8 action執行完畢,ac...

Struts2請求處理流程及原始碼分析

原文出處 1.1 struts2請求處理 1.乙個請求在struts2框架中的處理步驟 a 客戶端初始化乙個指向servlet容器的請求 b 根據web.xml配置,請求首先經過actioncontextcleanup過濾器,其為可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助 si...