關(guān)于Action傳參問(wèn)題
如果使用 private String username 這種方式傳參數(shù)
我的理解是: 多個(gè)用戶訪問(wèn)時(shí)共用一個(gè) Action ?, ?此時(shí)會(huì)不會(huì)對(duì) username這個(gè)變量產(chǎn)生 多線程的競(jìng)態(tài)呢?
如果使用 private String username 這種方式傳參數(shù)
我的理解是: 多個(gè)用戶訪問(wèn)時(shí)共用一個(gè) Action ?, ?此時(shí)會(huì)不會(huì)對(duì) username這個(gè)變量產(chǎn)生 多線程的競(jìng)態(tài)呢?
2015-08-15
舉報(bào)
2015-08-19
?Struts 2 的 Action 對(duì)象為每一個(gè)請(qǐng)求產(chǎn)生一個(gè)實(shí)例,因此,雖然在Action中定義了很多全局變量,也不存在線程安全問(wèn)題。Struts 2框架在處理每一個(gè)用戶請(qǐng)求的時(shí)候,都建立一個(gè)單獨(dú)的線程進(jìn)行處理,值棧ValueStack也是伴隨著局部線程而存在的。在該線程存在過(guò)程中,可以隨意訪問(wèn)值棧,這就保證了值棧的安全性。在Struts 2中,ActionContext是一個(gè)局部線程,這就意味著每個(gè)線程中的ActionContext內(nèi)容都是唯一的。所以開(kāi)發(fā)者不用擔(dān)心Action的線程安全。