Struts2的整體流程

2021-07-22 21:55:01 字數 1547 閱讀 4678

struts2的前身是webwork,後改名為struts2,其與struts1沒任何關係。

請求先經controller層,本質是乙個過濾器filter,其對請求的url進行判斷。若為頁面,進行請求的**,保證請求資料不會丟失;若為action,從配置檔案找到對應action類的完全限定名,並通過反射載入此類,同時生成其實例。

filter將生成的例項注入介面action的例項,並呼叫配置中給出的方法,預設執行execute方法。進入action的方法實際是從controller層轉移到了model層,本質是通過函式呼叫實現的,方法執行結束後,從model層返回到controller層。

controller層根據action返回的結果字串,從配置檔案找到下一步的跳轉路徑。若為頁面,可進行請求的**,也可進行響應的重定向;若為action,則必須進行響應的重定向,保證重新經過controller層。

// struts-x_y.xml

// 專案根據業務劃分多個package,每個package對應乙個配置檔案

// name,主要用作繼承使用

// namespace,決定了包中action的訪問路徑,要根據業務給出自己的namespace,不建議使用預設namespace

// extends,給出當前包繼承的包

"xy" namespace="/xy" extends="login">

// name,action的名字,不同包中action可同名,請求action使用name,建議name為要請求的方法名

// method,請求action時要呼叫的方法名字

"cd" method="cd" class="....xxaction">

// name,對應action返回的結果字串

// type,結果的處理型別

// 預設dispatcher,以jsp/html顯示;velocity,以vm顯示;redirectaction,重定向action

"success" type="velocity">

// 跳轉路徑,建議使用絕對路徑,以/開頭,從專案根目錄開始

// 相對路徑,相對namespace

/web-inf/..

..// struts.xml

// 所有的struts配置檔案在此整合

"x-base" extends="struts-default">

....

"login" extends="x-base">

....

// 合併其它的配置檔案,相對路徑,相對當前xml檔案的路徑

"struts/struts-x_y.xml" />

..public

class xxaction

// 若前端使用jsp,其可通過get方法,顯示來自action的資料

pulbic string getmessage()

public

void

cd()

// 返回框架控制器,再決定進一步走向

return

"success";

}

struts2執行流程

struts 2框架本身大致可以分為3個部分 核心控制器 filterdispatcher 業務控制器 action和使用者實現的企業業務邏輯元件。核心控制器filterdispatcher是struts 2框架的基礎,包含了框架內部的控制流程和處理機制。業務控制器action和業務邏輯元件是需要使...

Struts2流程機制

ssh框架的學習已經有一段時間了,從一開始的略略牴觸,到現在的樂意主動去研究,經歷了很有趣的過程。從開始的先去接受,到逐漸的 一點點的開始理解機制,過程很享受。對struts2的機制的研究已略略有了小的成果,分享給大家。我們只負責 action 和jsp 頁面的編寫,資料的準備及其他工作都是由 st...

struts2 流程分析

在struts2框架中的處理大概分為以下幾個步驟 1 客戶端初始化乙個指向servlet容器 例如tomcat 的請求 2 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助,例如...