瀏覽器從新打開session失效解決方法


當瀏覽器執行

當瀏覽器執行request.getSession()時,瀏覽器會檢測是否有session存在,如果沒有就創建一個,有就返回當前這個。
request.getSession(
false);與上面不同的是,如果有就返回當前這個Session,沒有就返回null。

當session創建時,會向瀏覽器發送一個沒有設置有效時間帶有自己id的cookie。
瀏覽器帶着這個cookie訪問這個網站時,會告訴servlet該去找那個session。由於這個cookie沒有設置有效時間,所以瀏覽器關閉,這個cookie也就死了。
在打開瀏覽器servlet就不知道找那個session了,但是session還是存在的。
所以只需重寫這個cookie就行了。
HttpSession session =  request.getSession();
            session.setAttribute("user", user);
            String sessionid = session.getId(); //獲取sessionid
            Cookie cookie = new Cookie("JSESSIONID", sessionid); //new一個cookie,cookie的名字是JSESSIONID跟帶id的cookie一樣
            cookie.setPath(request.getContextPath()); //設置cookie應用范圍。getContextPath是獲取當前項目的名字。
            cookie.setMaxAge(60000); //設置有效時間
            response.addCookie(cookie);//用這個cookie把帶id的cookie覆蓋掉

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM