程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 為什麼整合Spring與Struts2的時候,必須定義Struts2 Bean的Scope

為什麼整合Spring與Struts2的時候,必須定義Struts2 Bean的Scope

編輯:關於JSP

Struts2 本身是線程安全的,在默認的情況下會為每一個請求創建一個實例對象,這在一定程度上解決了servlet帶來的線程安全的問題。 Struts2的Bean在交給Spring IOC管理後,默認使用的是單例,所有請求使用同一Action,當Action中定義一些變量以接受參數時,或者進行驗證時,往往會出現線程安全問題。 比如:          Struts2的Action是單例,其中的FieldError,actionerror中的錯誤信息會累加, 即使再次輸入了正確的信息,也過不了驗證。         Action中定義了User對象,請求A提交表單,填充User對象,請求B判斷Action中User對象是否為空,不為空則加載(此時B請求所對應的User對象並未加載)         等等等等....   所以在Spring 整合Struts2的時候,記得將Struts2 Bean 的Scope設置成prototype哦 [java]   @Controller   @Scope(BeanDefinition.SCOPE_PROTOTYPE)   public class UserAction extends ActionSupport {    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved