會話標示未更新問題

2021-08-31 12:05:01 字數 1123 閱讀 8372

/***接下來是對使用者進行認證的*****/

······

/***使用者認證**結束***/

後來我找了好久才發現,之所以將會話invalidate沒有用,是因為invalidate方法不是真正的將session銷毀,只是將session中的內容清空,所以當我invalidate以後再新建session,新建的session其實不是新的,是將之前的session重新啟用了。於是session的id不變就不奇怪了。

要怎麼才能真正的將session銷毀掉呢?看看下面的辦法:

在登入頁面上加上一段**:

request.getsession().invalidate();//清空session

cookie cookie = request.getcookies()[0];//獲取cookie

cookie.setmaxage(0);//讓cookie過期

然後使用者再輸入資訊登入時,就會產生乙個新的session了。

雖然我的系統裡面沒有使用cookie,但是只要是web系統就離不開cookie。系統裡面沒有使用cookie是我沒有用cookie來儲存資料、標示使用者等等。但是伺服器跟蹤會話狀態就是用的cookie。既然cookie是伺服器用來跟蹤會話狀態的,那麼如果cookie過期了,會怎麼樣?--不用解釋了吧。回答了這個問題,怎麼讓會話真正被銷毀也就不難回答了。

我在登陸頁面上加的那段**的作用就是,將使用者進入登陸頁面時所產生的會話也就是session清空,然後讓跟蹤這個會話的cookie過期,這樣伺服器就不再掌握有關這個會話的任何資訊了。要想與伺服器繼續通訊,就要產生乙個新的會話才行。於是會話標示就更新了!

問題就是這麼解決的。

總結起來,其實軟體開發中的所有問題都不難,關鍵是找到問題的根源

解決shiro會話標識未更新問題

要解決會話標識未更新的安全問題,就需要在做登入驗證時生成新的session,所以需要先將原來的session失效。一般的解決方法如下 但是,如果使用了shiro框架,這樣做會報錯 session already invalidated。原因是shiro對httpsession進行了一層包裝,你直接讓...

hcharts更新問題

顯示 hcharts的顯示這裡就不多說了,基本官網上的例子都有 需要說明一點的是,在柱狀圖中表示時,可以使用座標的方式指定表示的橫座標,而不是只能像官網上一樣全部寫完 data可以寫成 1,5 2,8 其中1代表橫座標,5代表縱座標 更新 hcharts更新時series不會自動增加或減少,需要我們...

pip更新問題

更新命令 requirement already up to date 在pycharm的虛擬環境中,特別容易出現執行更新pip的命令後,提示要求己經更新,但實際上檢視版本還是沒更新成功的情況 直接使用pip install upgrade pip 這簡直是死迴圈了,使用python m pip i...