小程式與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 了!!!!
完畢!