更新時間:2022-10-21 10:36:53 來源:動力節點 瀏覽1071次
Struts2是大家要學習的課程,感興趣的小伙伴可以看看本站的Struts2視頻教程,里面的課程內容細致全面,通俗易懂,適合沒有基礎的小伙伴學習。下面我來了解一下Struts2工作流程。
從上圖讓我們討論 Struts 2 的流程。下面提到的是步驟:
發送來自用戶的操作請求。
ActionInvocation 由控制器調用
ActionInvocation 調用每個攔截器和操作
已生成結果
生成的結果被發送回 ActionInvocation
生成一個 HttpServletResponse
生成的響應發送給用戶
從頂層的角度來看,基本上 Struts 2 是一個 MVC2 框架。Struts 2 中模型-視圖-控制器模式的五個核心組件是
行動
攔截器
價值堆棧/OGNL
結果/結果類型
查看技術
從上圖可以看出——
控制器是使用 Struts 2 調度程序 servlet 過濾器和攔截器實現的。
該模型是使用動作實現的。
該視圖是使用結果類型和結果實現的。
值堆棧和 OGNL 可用于提供公共線程、鏈接和啟用其他組件之間的集成。
現在讓我們討論一下 Struts 2 架構的流程
容器檢查 web.xml 文件中的請求并獲取控制器的類名。
Container 形成控制器(StrutsPrepareAndExecuteFilter 或 FilterDispatcher)。從struts2.1開始,就是StrutsPrepareAndExecuteFilter。在 2.1 之前它是 FilterDispatcher。
控制器從 ActionMapper 獲取操作的信息
控制器形式的 ActionProxy
ActionProxy 從從 struts.xml 文件中獲取信息的配置管理器中獲取操作和攔截器堆棧的信息。
ActionProxy 將請求轉發到 ActionInvocation
ActionInvocation 調用每個攔截器和操作
生成一個結果
然后將結果發送回 ActionInvocation
比生成 HttpServletResponse
然后將響應發送給用戶。
web.xml 文件包含與 Web 應用程序相關的所有配置信息。它設置了啟動應用程序的環境。在 web.xml 文件中,StrutsPrepareAndExecuteFilter 被配置為處理來自客戶端的請求并委托 Struts 環境。
StrutsPrepareAndExecuteFilter 準備和執行 Struts 調度過程的不同階段。如果您沒有任何其他需要訪問操作上下文信息的過濾器,我們建議您使用它。
請求:這是第一步,客戶端使用 Web 瀏覽器向單個資源發出請求,然后由 Web 容器發送。之后,Web 容器加載 web.xml 并確認 URL 模式是否匹配。驗證通過后,Web 容器將請求傳輸到Filter Dispatcher。
StrutsPrepareAndExecuteFilter:一旦請求被發送到過濾器調度器,估計請求并根據 URL( ActionMapper )的映射檢查適當的操作調用ActionProxy然后讀取配置文件管理器(如 struts.xml 文件)以檢查準確請求的動作。ActionProxy 讀取然后創建一個ActionInvocation,負責執行命令模式實現,然后將請求發送到適當的 Action 類。
攔截器堆棧:在接收動作類之前,請求通過攔截器堆棧,其中識別出攔截器列表,在創建動作類之前必須檢查這些攔截器。
Action類:然后是請求通過Action類,然后完成代碼,最終生成執行結果為Success或Input或Error。
Result:根據產生的代碼,Controller找到 View 并交出 Action 的結果。處理時,Struts 標簽由框架提供,模板可以使用。
攔截器堆棧:在調用客戶端之前,將再次檢查攔截器,并通過 web.xml 中配置的過濾器將響應返回給用戶。
用戶發送請求:用戶向 Servlet 容器調用未指定資源的請求。
FilterDispatcher 確定適當的操作: FilterDispatcher 接受請求并檢查與請求對應的確切操作。
應用攔截器:攔截器完成工作流、驗證、文件上傳等任務,并自動應用于請求。
動作的執行:動作方法負責執行與數據庫相關的操作,例如檢索數據或將數據存儲到數據庫中。
輸出渲染:生成Result并在視圖中渲染。
返回請求:請求通過攔截器以相反的順序返回。它允許執行清理或附加處理。
向用戶顯示結果:控件返回到 servlet 容器,該容器將輸出發送到用戶瀏覽器。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習