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