【面试题】struts2的工作流程
【面試題】struts2的工作流程
struts2框架本身大致可以分為3個部分:
核心控制器FilterDispatcher、業(yè)務(wù)控制器Action和用戶實現(xiàn)的企業(yè)業(yè)務(wù)邏輯組件。
核心控制器FilterDispatcher是struts2框架的基礎(chǔ):
核心控制器包含了框架內(nèi)部的控制流程和處理機(jī)制。
業(yè)務(wù)控制器Action和業(yè)務(wù)邏輯組件是需要用戶來自己實現(xiàn)的,用戶在開發(fā)Action和業(yè)務(wù)邏輯 組件的同時,還需要編寫相關(guān)的配置文件,供核心控制器FilterDispatcher來使用。
struts2的工作流程相對于struts1要簡單,與webwork框架基本相同,所以說struts2是webwork的升級版本。基本簡要流程如下:
客戶端初始化一個指向servle容器的請求,這個請求經(jīng)過一系列的過濾器Filter,這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于struts2和其他框架的集成很有幫助,如:SiteMesh Plugin,緊接著FilterDispatcher被調(diào)用。
FilterDispatcher詢問ActionMapper來決定這個請求是否需要調(diào)用某個Action,如果ActionMapper決定需要調(diào)用某個Action,FilterDispatcher把請求的處理交給ActionProxyActionProxy 通過 Configuration Manager 詢問框架的配置文件,找到需要調(diào)用的 Action 類,ActionProxy 創(chuàng)建一個 ActionInvocation 的實例。ActionInvocation 實例使用命名模式來調(diào)用,在調(diào)用 Action 的過程前后,涉及到相關(guān)攔截器(Intercepter)的調(diào)用。一旦 Action 執(zhí)行完畢,ActionInvocation 負(fù)責(zé)根據(jù) struts.xml 中的配置找到對應(yīng)的返回結(jié)果。返回結(jié)果通常是(但不總是,也可 能是另外的一個 Action 鏈)一個需要被表示的JSP或者 FreeMarker 的模版。在表示的過程中可以使用 Struts2 框架中繼承的標(biāo)簽。在這個過程中需要涉及到 ActionMapper響應(yīng)的返回是通過我們在 web.xml 中配置的過濾器如果ActionContextCleanUp 是當(dāng)前使用的,則 FilterDispatecher 將不會清理 sreadlocal ActionContext;如果 ActionContextCleanUp 不使用,則將會去清理 sreadlocals。
總結(jié)
以上是生活随笔為你收集整理的【面试题】struts2的工作流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面试题】Ajax的原理和优缺点总结
- 下一篇: 【客户下单】自动分单逻辑