登錄時不一樣瀏覽器獲取session存在的相關疑問?

問題1:在同一個電腦上,登錄成功後,將登錄信息存放到session域中後,使用另外一個瀏覽器訪問時,可否獲取這個session域中的值?
 request.getSession().setAttribute(Config.USER_KEY,user);
 User user = (User) request.getSession().getAttribute(Config.USER_KEY);

網上解答:
web服務
器爲每個瀏覽器實例對應一個session。
這個session有本身的一個獨立id,這個id保存在瀏覽器的cookie中(這個cookie貌似隨着這個瀏覽器實例的關閉而清除),
訪問web服務器的時候,web服務會根據你cookie中的sessionId來決定從新建立一個session仍是使用已經存在的session

若是使用桌面的ie圖標打開一個IE窗口,這個窗口屬於一個新的瀏覽器實例(其中不包含sessionid信息),
這時候用這個IE訪問web服務器的時候web服務器會爲這個瀏覽器實例新建立一個httpsession,sessionId也是新的(sessionId保存到本地的cookie中),
不會對你之前打開的窗口中的session產生覆蓋,關閉ie窗口的時候cookie中的信息也就清除掉了。

若是是在打開的ie窗口中按「ctrl+n」打開一個ie窗口,這個窗口於剛纔的窗口是同一個實例,
與剛纔的窗口共用session,全部的同一個ie實例的窗口都關掉後,會清除掉sessionId。

補充一點,能夠經過人爲的輸入參數sessionId通知web服務器你使用的是哪一個session(若是服務器存在這個session的話)
結論:事實證實是獲取不到的

問題2:何時session域中的信息會被覆蓋
①同一個瀏覽器上,在第一次登錄成功後,將信息存放在session中,再用同一個瀏覽器登錄其餘帳號時,session的信息會被覆蓋 ②使用ie瀏覽器時
相關文章
相關標籤/搜索