struts2 session不一致問題

2021-06-19 10:54:24 字數 476 閱讀 3223

比如說有如下場景:

第乙個ajax請求到伺服器用來儲存使用者 session.setattribute("user",userobj);

然後第二個ajax請求到伺服器來獲取使用者,這時候拿到的userobj為null. 怎麼回事呢?

取到使用者物件為null肯定是session物件不一致,session物件不一致肯定頁面的sessionid不一樣(用火狐firebug檢視一下就能發現)

那麼我們就可以推斷出ajax提交請求的方式不一樣了

第乙個ajax請求是非同步形式

第二個ajax請求是同步形式

這樣就會出現問題

解決方法是統一用同步的方式

在做專案中也需要權衡什麼時候用非同步,什麼時候用同步

一般是讀取資料的時候用非同步,提交資料的時候用同步

下面是jquery的非同步同步提交方式:

$.ajax(

});

Struts2獲取Session方法

struts2裡面有三種方法可以獲取request,最好使用servletrequestaware介面通過ioc機制注入request物件。方法1 ioc方式 action類實現sessionaware介面,並建立乙個map物件session public class userloginaction...

Struts2中Session的使用

在struts2裡,如果需要在action中使用session,可以通過下面兩種方式得到 1.通過actioncontext class中的方法getsession得到 2 action實現org.apache.struts2.interceptor.sessionaware介面的方式來對sessi...

struts2 跟蹤使用者狀態session

使用者登陸時,為使用者名稱設定session execute方法中用actioncontext物件訪問web應用的session actioncontext.getcontext getsession put user getusername 在jsp頁面上面 歡迎,您已經登入!從乙個action跳...