2013-01-25 45 views
0

爲什麼當清除緩存時會話丟失或結束。雖然會話在服務器上提及。我是java開發人員,我從HttpServletRequest對象獲得了會話。爲什麼在清除緩存時會話結束

我們管理服務器端的會話。那麼它如何與瀏覽器和客戶端相關?緩存清除時爲什麼我們的網站被註銷?

我用我的Gmail帳戶試了一下。當我關閉瀏覽器,並再次打開Gmail或當我清除緩存它顯示我註銷。我做了谷歌,但無法得到滿意的答案。任何人都可以清除它嗎?

+1

餅乾是答案,但我建議你通過http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading獲取更詳細的知識 – AurA

回答

0

服務器上的Session對象只是表示形式。會話信息默認由瀏覽器中的cookie維護,cookie名爲JSESSIONID。你可以找到更多here,請參閱BalusC的答案。

在瀏覽器上禁用cookie的情況下JSESSIONID必須作爲參數附加到URL。這意味着在重定向的情況下,您必須致電HttpServletResponse#encodeRedirectURL或使用c:url標記來查看頁面中的鏈接。

+0

謝謝爲您的時間和支持。從你的帖子和你的鏈接我認爲,當我們在服務器上創建我們的會話時,一個cookie隱式地在瀏覽器上創建。我正確的方向嗎?如果我是對的,那麼如果用戶在客戶端禁用cookie,會發生什麼? –

+0

當cookie被禁用時,我改變了對情況的回答。 – partlov

0

您的服務器端框架正在客戶機上使用cookie來跟蹤會話。當消失時,它會丟失會話上下文。

0

我假設你說的是「緩存清除」時你正在談論你的瀏覽器緩存。

如果是這樣,當您清除緩存時,您正在執行的操作之一是刪除您訪問的網站設置的所有cookies。 Cookie是持有網站(例如GMail)用來確定您是否是早先登錄爲「Abhendra Singh」的同一人的標識符。

1

跟蹤會話的標準機制是一個cookie。清理瀏覽器的緩存,因此還有Cookie,當請求發生時,會導致沒有會話ID被髮送到服務器,所以它只能開始一個新的會話。

相關問題