1. 程式人生 > >三大框架(ssh)學習——Struts2工作流程分析

三大框架(ssh)學習——Struts2工作流程分析

Struts2工作流程分析

 

STRUTS2框架內部流程

1. 客戶端傳送請求的tomcat伺服器。伺服器接受,將HttpServletRequest傳進來。

2. 請求經過一系列過濾器(如:ActionContextCleanUp、SimeMesh等)

3. FilterDispatcher被呼叫。FilterDispatcher呼叫ActionMapper來決定這個請求是否要呼叫某個Action

4. ActionMapper決定呼叫某個ActionFilterDispatcher把請求交給ActionProxy

5. ActionProxy通過Configuration Manager檢視struts.xml,從而找到相應的Action類

6. ActionProxy建立一個ActionInvocation物件

7. ActionInvocation物件回撥Action的execute方法

8. Action執行完畢後,ActionInvocation根據返回的字串,找到對應的result。然後將Result內容通過HttpServletResponse返回給伺服器。

 

 

 

Struts2的執行緒安全問題

Struts1中所有的Action都只有一個例項,被反覆的呼叫。Struts2中的Action處理一次請求會生成一個例項,這些例項彼此完全獨立,使用完畢後就立馬銷燬。

struts1中的Action執行緒不安全,一般將不能有可寫的屬性(即將Action設計成無狀態類)。

Struts2中的Action執行緒安全,可以任意設定屬性!