今天我在做短信驗證碼的時候,需要一個RequestMapping獲取驗證碼,還需要一個RequestMapping驗證用戶輸入驗證碼和發送驗證碼是否正確。但是我怎么傳遞隨機驗證碼和驗證的電話號碼呢?我一開始采用了私有成員變量,但是我突然覺得這個數據並不安全,假如多人同時請求這個controller,那么數據安全無法保證,於是我做了一個測試,發現真的會串改數據。
於是我改用了session來存放數據,這樣就ok了。但是我覺得我需要深入去了解一番,於是我使用了@Scope("prototype"),這個是可以多線程的,每次為一個線程分配一個action。於是我把私有變量設置成了static,發現不會被串改,相互不影響。
但是,最好不要使用私有成員變量,這樣很不安全,假如一定要使用,必須加上@Scope("prototype")的注解。假如沒有私有成員變量,controller單例也是安全的,它自身具有多線程的功能。