同一瀏覽器下sessionid互相覆蓋的問題

2021-09-26 07:20:52 字數 749 閱讀 9261

問題描述:

在一台機器上安裝多個tomcat,埠不一樣,這裡姑且分別稱為tomcat1 和 tomcat2,在兩個不同的tomcat上部署了a和b兩個專案,兩個專案的**都是一樣的,只有專案名稱不同。啟動兩個tomcat後,使用同乙個瀏覽器分別訪問不同的tomcat,出現sessionid互相覆蓋的情況。例如,訪問tomcat1時獲取的sessionid是123456,此時再去訪問tomcat2時會發現sessionid也是123456,但是tomcat2上並沒有這個sessionid,結果又返回乙個新的sessionid回來,又進行了乙個覆蓋,如此迴圈。

解決方案:

方法二:在tomcat的conf目錄下,修改catalina.properties配置。在catalina.properties加上一句 ,這樣sessionid的名稱就是mysessionid了:

org.apache.catalina.session_cookie_name=mysessionid

方法三:自己手動編寫**去生成sessionid,不去使用tomcat生成的,但是這個生成的sessionid必須是唯一的,最簡單的方式就是使用uuid之類的。

方法四:使用cookie的方式來儲存sessionid,然後使用redis之類的儲存session資料,之後就根據cookie裡存的sessionid去讀取資料即可,這也是分布式集群環境下,實現單點登入、保持sessionid一致的一種方法

同一瀏覽器下多個頁面sessionid覆蓋

現在的大多瀏覽器都是共享sessionid的,因此,在使用乙個tomcat並且在乙個瀏覽器下開啟多個session的時候,新的內容會把原來的同key內容覆蓋。1.使用多個tomcat 多個瀏覽器。2.修改conf檔案,製造出localhost1 locaohost2等。3.在前端的httpsessi...

關閉瀏覽器,儲存sessionId的方法

server在預設情況下,將sessionid儲存在cookie中,此cookie預設為關閉瀏覽器即刪除。所以當重啟瀏覽器,訪問server就找不到原有的session了。如果想使使用者重啟瀏覽器依然能訪問之前的session資訊,就需要自己建cookie儲存sessionid,然後設定此cooki...

html http 瀏覽器(一)

答 http是超文字傳輸協議,用於客戶端與伺服器之間傳遞傳輸文字,https協議可以說為http的加密版本,在應用層http協議和傳輸層之間新增加了ssl層,用於文字的加密以及客戶端和服務端的身份驗證,相對比與http協議更加安全,在網頁中多用於賬號密碼登入和保密性質較高的網頁。主要區別 就是除了以...