當前位置:編程學習大全網 - 編程語言 - Struts2的核心工作原理

Struts2的核心工作原理

.Struts 2的基本流程

Struts 2框架由3個部分組成:核心控制器FilterDispatcher、業務控制器和用戶實現的業務邏輯組件。在這3個部分裏,Struts 2框架提供了核心控制器FilterDispatcher,而用戶需要實現業務控制器和業務邏輯組件。

2.核心控制器:FilterDispatcher

FilterDispatcher是Struts 2框架的核心控制器,該控制器作為壹個Filter運行在Web應用中,它負責攔截所有的用戶請求,當用戶請求到達時,該Filter會過濾用戶請求。如果用戶請求以action結尾,該請求將被轉入Struts 2框架處理。

Struts 2框架獲得了*.action請求後,將根據*.action請求的前面部分決定調用哪個業務邏輯組件,例如,對於login.action請求,Struts 2調用名為login的Action來處理該請求。

Struts 2應用中的Action都被定義在struts.xml文件中,在該文件中定義Action時,定義了該Action的name屬性和class屬性,其中name屬性決定了該Action處理哪個用戶請求,而class屬性決定了該Action的實現類。

Struts 2用於處理用戶請求的Action實例,並不是用戶實現的業務控制器,而是Action代理——因為用戶實現的業務控制器並沒有與Servlet API耦合,顯然無法處理用戶請求。而Struts 2框架提供了系列攔截器,該系列攔截器負責將HttpServletRequest請求中的請求參數解析出來,傳入到Action中,並回調Action 的execute方法來處理用戶請求。

顯然,上面的處理過程是典型的AOP(面向切面編程)處理方式。圖3.19顯示了這種處理模型。

圖3.19 Struts 2的攔截器和Action

從圖3.19中可以看出,用戶實現的Action類僅僅是Struts 2的Action代理的代理目標。用戶實現的業務控制器(Action)則包含了對用戶請求的處理。用戶的請求數據包含在 HttpServletRequest對象裏,而用戶的Action類無需訪問HttpServletRequest對象。攔截器負責將 HttpServletRequest裏的請求數據解析出來,並傳給業務邏輯組件Action實例。

3.業務控制器

正如從圖3.19所看到的,業務控制器組件就是用戶實現Action類的實例,Action類裏通常包含了壹個execute方法,該方法返回壹個字符串——該字符串就是壹個邏輯視圖名,當業務控制器處理完用戶請求後,根據處理結果不同,execute方法返回不同字符串 ——每個字符串對應壹個視圖名。

我覺得,問題應該是考察是否對系統架構設計有壹定的了解,能否清楚的運用自己的理解表述軟件設計中的相互溝通要點。

  • 上一篇:日本世界杯2022成績怎麽得來的
  • 下一篇:計算機的基本概念?
  • copyright 2024編程學習大全網