爲什麼當清除緩存時會話丟失或結束。雖然會話在服務器上提及。我是java開發人員,我從HttpServletRequest
對象獲得了會話。爲什麼在清除緩存時會話結束
我們管理服務器端的會話。那麼它如何與瀏覽器和客戶端相關?緩存清除時爲什麼我們的網站被註銷?
我用我的Gmail帳戶試了一下。當我關閉瀏覽器,並再次打開Gmail或當我清除緩存它顯示我註銷。我做了谷歌,但無法得到滿意的答案。任何人都可以清除它嗎?
爲什麼當清除緩存時會話丟失或結束。雖然會話在服務器上提及。我是java開發人員,我從HttpServletRequest
對象獲得了會話。爲什麼在清除緩存時會話結束
我們管理服務器端的會話。那麼它如何與瀏覽器和客戶端相關?緩存清除時爲什麼我們的網站被註銷?
我用我的Gmail帳戶試了一下。當我關閉瀏覽器,並再次打開Gmail或當我清除緩存它顯示我註銷。我做了谷歌,但無法得到滿意的答案。任何人都可以清除它嗎?
服務器上的Session對象只是表示形式。會話信息默認由瀏覽器中的cookie維護,cookie名爲JSESSIONID
。你可以找到更多here,請參閱BalusC的答案。
在瀏覽器上禁用cookie的情況下JSESSIONID
必須作爲參數附加到URL。這意味着在重定向的情況下,您必須致電HttpServletResponse#encodeRedirectURL或使用c:url
標記來查看頁面中的鏈接。
謝謝爲您的時間和支持。從你的帖子和你的鏈接我認爲,當我們在服務器上創建我們的會話時,一個cookie隱式地在瀏覽器上創建。我正確的方向嗎?如果我是對的,那麼如果用戶在客戶端禁用cookie,會發生什麼? –
當cookie被禁用時,我改變了對情況的回答。 – partlov
您的服務器端框架正在客戶機上使用cookie來跟蹤會話。當消失時,它會丟失會話上下文。
我假設你說的是「緩存清除」時你正在談論你的瀏覽器緩存。
如果是這樣,當您清除緩存時,您正在執行的操作之一是刪除您訪問的網站設置的所有cookies。 Cookie是持有網站(例如GMail)用來確定您是否是早先登錄爲「Abhendra Singh」的同一人的標識符。
跟蹤會話的標準機制是一個cookie。清理瀏覽器的緩存,因此還有Cookie,當請求發生時,會導致沒有會話ID被髮送到服務器,所以它只能開始一個新的會話。
餅乾是答案,但我建議你通過http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading獲取更詳細的知識 – AurA