struts2的工作原理是什麼?為什麼jsp可以取到

時間 2021-12-22 07:22:15

1樓:千鋒教育

乙個請求在struts2框架中的處理分為以下幾個步驟:

1.客戶端發出乙個指向servlet容器的請求(tomcat);

2.這個請求會經過圖中的幾個過濾器,最後會到達filterdispatcher過濾器。

3.過濾器filterdispatcher是struts2框架的心臟,在處理使用者請求時,它和請求一起相互配合訪問struts2

的底層框架結構。在web容器啟動時,struts2框架會自動載入配置檔案裡相關引數,並轉換成相應的類。

需要用到的action。

4.如果找到需要呼叫的action,過濾器會把請求的處理交給actionproxy。actionproxy為action的**物件

。actionproxy通過configurationmanager詢問框架的配置檔案,找到需要呼叫的action類。

5.actionproxy建立乙個actioninvocation的例項。actioninvocation在actionproxy層之下,它表示了

action的執行狀態,或者說它控制的action的執行步驟。它持有action例項和所有的interceptor。

6.actioninvocation例項使用命名模式來呼叫,1. actioninvocation初始化時,根據配置,載入action相

關的所有interceptor。2. 通過actioninvocation.invoke方法呼叫action實現時,執行interceptor。在

呼叫action的過程前後,涉及到相關***(intercepetor)的呼叫。

7. 一旦action執行完畢,actioninvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果

通常是(但不總是,也可能是另外的乙個action鏈)乙個需要被表示的jsp或者freemarker的模版。在表示的過程中可以使用struts2 框架中繼承的標籤。

jsp中如果是傳送請求,屬性的值會被封裝到httprequest中。可以用相應的api獲取。

你的action如果是使用的struts框架。他自己會把值放到action中對應的變數,直接用就行了。

2樓:曹_小燦

客戶端發出乙個請求,伺服器端 strutspreparedandexceutefilter接收請求,如果該請求是乙個以 .action 結尾請求,則struts2將請求**至相應的action,進行資料型別轉換,如果資料型別轉換出錯,則返回到 input 指定的結果頁面,如果資料型別轉換沒有出錯,則呼叫setxx 方法進行設值,如果使用了validate()驗證方法(或者是使用了驗證框架),則進行相應的驗證,如果驗證出錯,回到 input 指定的結果頁面,如果沒有使用驗證,或者驗證沒有出錯,則執行 execute() 方法,返回到相應的頁面

3樓:匿名使用者

struts2只是把request ,reponse,session這些物件封裝了。。。如果沒有這些物件,還是web嗎???

4樓:

一,struts2工作原理:

1) 所有的請求發給前端控制器

2) 前端控制器維護乙個配置檔案

(配置檔案中指明了不同的請求和某個

action的對應關係)

3) 前端控制器可以根據請求的不同呼叫

不同的action

4) action呼叫model(模型層:實體或資料訪問),實現業務功能,

資料放在request中

5) 請求**給view層(jsp)

6) jsp顯示資料

二,舉例:

class fooaction

jsp可以取到action中的屬性這就是struts2的機制,你知道原理和怎麼用就ok 了。

希望你能懂點。

5樓:漫步匆匆

request ,reponse,session這些物件改用了還是用啊,

struts2中從jsp到action是如何傳遞引數的?

6樓:匿名使用者

按form傳遞,直接在action中定義屬性,和jsp頁面的form中的名稱相同,就可以傳遞了

7樓:修懷芹

在頁面上使用問號或者表單可以直接向action傳遞引數,與一般網頁並無二致。

這裡使用get方式傳入引數id值為1

下面使用post方式向b.action傳遞引數id值為1

8樓:乙個人的雨兲

jsp中:

struts.xml中:包的那個就不寫了

/index.jsp

action中:

public string insert()

DWR和struts2的問題

星的依偎 我來幫你解答吧。解1.你的web.xml裡應該有 struts2 org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter config resources context struts context.xm...

struts2的引數傳遞問題

手機使用者 他跟你的username或者password沒什麼關係,他關注的是你的get setusername和get setpassword方法,把賦值等操作放到這裡面,而在action中username或者passwword屬性名字沒關係 灰色8酷 yes。你可以詳細研究下你的action類的...

struts2的Action有多個方法,要讓驗證失敗後跳到各自的輸入頁面,該怎麼做

通過配置檔案 在action裡return success 跳到success.jsp return error 跳到failure.jsp jennia菊菊 四級說的正確,我補充幾點,在struts.xml中設乙個全域性跳轉,裡面兩個result,乙個是success,對應各個方法操作成功以後跳轉...