值棧ValueStack的原理和生命週期

2021-06-18 02:13:57 字數 668 閱讀 8581

①valuestack貫穿整個action的生命週期,儲存在request域中,所以valuestack的宣告週期和request的生命週期是一樣的。當struts2接受乙個請求時,會迅速建立actioncontext、action、valuestack,然後把action存放進valuestack中,所以action的例項變數可以被ognl表示式訪問。請求來的時候,action、valuestack的生命週期開始,請求結束時,action、valuestack的生命週期結束。

②action是多例的,和servlet不一樣,servlet是單例的。

③每個action都有乙個對應的值棧,值棧存放的資料型別是該action的例項以及該action中的例項變數,action物件預設儲存到棧頂。

④action物件其實就是個arraylist集合;

⑤關於contextmap,strust2會把一下的對映壓入contextmap中。

parametres:該map中包含當前請求的請求引數;

request:該map中包含當前request物件中的所有屬性;

session:該map中包含當前session物件中的所有屬性;

⑦注意:struts2中,ognl表示式需要配合struts2標籤才可以使用。

⑧在struts2的配置檔案中引用ognl表示式,引用值棧的值,此時使用「$」;

valuestack的工作原理

當訪問乙個action的時候,此時struts2會把整個action壓入valuestack的頂部,此時valuestack就乙個action物件 我們通常會寫stack.set key1,value1 或者statck.setvalue key2,value2 這兩個是有區別的,前者會在value...

valuestack的工作原理

今天在為同事解決問題的時候,發現了自己以前對valuestack的理解有點偏差,通過問題的解決,也體驗了一把溫故而知新 廢話少說,步入正題 當訪問乙個action的時候,此時struts2會把整個action壓入valuestack的頂部,此時valuestack就乙個action物件 我們通常會寫...

valuestack的工作原理

今天在為同事解決問題的時候,發現了自己以前對valuestack的理解有點偏差,通過問題的解決,也體驗了一把溫故而知新 廢話少說,步入正題 當訪問乙個action的時候,此時struts2會把整個action壓入valuestack的頂部,此時valuestack就乙個action物件 我們通常會寫...