Struts 1 和 Struts 2 的執行緒安全

2021-09-01 08:15:12 字數 445 閱讀 4576

昨天人問我struts 2是怎麼保證全域性變數的執行緒安全的,跟struts 1有什麼區別,我一時懵了一下,沒給解釋清,發現自己也不是特別清楚,就google了一下,打算今天做個筆記,結果今沒等google呢,就聽說google走了,可惜了了啊!

還是說說 struts 執行緒安全的事吧。

總的來說,struts1 的 action 是單例模式,因此開發者必須保證它是執行緒安全的或是同步的,因為struts 1中每個action僅有乙個例項來處理所有的請求。

struts 2框架在處理每乙個使用者請求的時候,都建立乙個單獨的執行緒進行處理,值棧valuestack也是伴隨著區域性執行緒而存在的。在該執行緒存在過程中,可以隨意訪問值棧,這就保證了值棧的安全性。

在struts 2中,actioncontext是乙個區域性執行緒,這就意味著每個執行緒中的actioncontext內容都是唯一的。所以開發者不用擔心action的執行緒安全。

struts1和struts2的區別

1 struts1必須要繼承乙個抽象基類 dispatchaction struts2 只要是乙個有execute方法的pojo就可以,不用一定繼承 但是,struts2一般繼承乙個com.opensymphany.xwork2.actionsupport來實現一些常用方法。3 表示式 struts...

Struts1和struts2的區別

struts2是從struts1發展而來,但實際上struts2與struts1在框架的設計思想上面還是有很大的區別,stuts1有個核心控制器,但是只提供了乙個介面,也就是execute,還要配置actionform之類的,很麻煩,所以依賴性比較強 而stuts2是針對 開發的,也就是所謂的aop...

Struts1和Struts2的區別

1 從action類上分析 struts1要求action類繼承乙個抽象基類。struts1的乙個普遍問題是使用抽象類程式設計而不是介面 struts2 action提供乙個actionsupport基類去實現常用的介面。action介面不是必須的,任何有execute標識的pojo物件都可以用作s...