原來見過乙個專案,用了struts2,可是由於action裡邊用了類變數,仍然資料亂跳。
一般來說struts1,會出現資料亂跳,會認為正常,所以為了資料安全,struts1就不用類變數。
可是struts2,本來就是執行緒安全,用了也沒事呀。
究其根源,原來如下。
1.struts2為每個執行緒提供乙個action例項,多執行緒訪問時不會出現問題。當使用spring管理struts2的action例項物件時,scope必須配置為prototype或者session,若配置為 singleton則多執行緒訪問時會出現問題,多使用者訪問時有的使用者訪問到的是另乙個使用者的資料,資料會發生亂竄現象。 2.scope=「prototype」是為每個請求提供乙個action例項。
scope=「session」是為每個會話提供乙個action例項。 3.通常使用prototype,即讓spring容器為每個請求提供乙個action例項,好處是伺服器端不用維護使用者狀態資訊,否則使用session伺服器端必須儲存狀態資訊,使用者多時占用伺服器端記憶體過多。使用prototype時,必須自己在客戶端維護使用者的狀態,每次訪問服務端時將相應狀態資訊提交給伺服器。例如scope=「prototype」時,頁面一般< input name="id" type="hidden" value="$"/>用來儲存使用者的id資訊,訪問action時提交到server端供action中函式使用。而使用scope=「session」時,頁面不必使用hidden的物件隱藏id資訊,只要服務端獲取過使用者的id,action中的 id屬性即會儲存這個資訊。
Struts2與Spring的整合
struts2與spring的整合,是mvc和ioc的整合,必須充分利用他們的特性 1 整合的原理 struts2 攔截使用者請求後,需要將資訊通過struts.xml的配置檔案的內容傳遞到相應的action中,在這個時候就需要建立action例項,整合spring框架後,action例項交給spr...
Spring如何與struts2結合
1.struts2的action由spring來負責進行例項化 struts.xml 2.專案啟動時由裝載spring web.xml org.springframework.web.context.contextloaderlistener web inf teacher selectall.js...
Struts2與Spring的整合
今天倒騰了半天,終於是把這個兩個框架整合到一起了。還是要寫一下總結,同時給大家一些幫助。開發環境 myeclipse 9.0 不好用!tomcat6.0 1.準備工作 需要匯入的包 struts2與spring基本的包就不用說了,我用的是struts2.1 spring 3.0,尤其要注意 別少匯入...