1. 程式人生 > >小程式與java的session問題

小程式與java的session問題

一般web開發中,我們需要通過session將資料使用者重要資料儲存到session中,而由於html自帶cookie,能夠幫助我們儲存從伺服器端傳送jsessionid到客戶端瀏覽器,客戶端傳送請求的時候,順帶著這個jsessionid到伺服器端,我們通過request.getSession()獲取回session,並取到其中儲存的重要資訊,從而完成一個使用者是否登入的判斷。但是,微信小程式不支援request的cookie,即session要自己實現!!!

小程式開發的處理方式:wx.request 中有個header引數   java改成header: { 'content-type': 'application/x-www-form-urlencoded', 'Cookie': 'JSESSIONID=' + sessionid }

sessionid 或存入快取或存入app.js 中當一個全域性變數 都可以。記得及時更換和清除即可。

測試比較簡單   

伺服器端:request.getSession().getId()  獲取sessionid   通過你傳值的方式,傳到小程式並儲存。

客戶端:在wx.request 的時候,將header: { 'content-type': 'application/x-www-form-urlencoded', 'Cookie': 'JSESSIONID=' + sessionid } 帶上。

不過還有個坑

如果你使用了shiro 並且把jsessionid預設值改成 xxx.session.id 。那麼,你的header中的JSESSIONID就要改成 xxx.session.id

 就像這樣:header: { 'content-type': 'application/json', 'Cookie': 'site.session.id=' + app.globalData.sessionId},

然後你的服務端就能找到你的session 了!!!!

完畢!