2009-11-25 82 views
4

我想知道,如何管理會話,如果客戶端瀏覽器禁用了Cookie功能..管理會話時broswer有禁用cookie

如果我要實現它在簡單的JSP - Servlet的,那麼怎麼可以去做 ?

在此先感謝...

回答

3

沒有Cookie,你有兩個選擇。首先是通過Url傳遞sessionId。這需要在服務器上進行大量工作,因爲您發回的每個url都必須附加一個sessionId(通常以查詢字符串參數的形式)。例如:

/路徑/到/頁

成爲

/路徑/到/頁的SessionID = ASDFG-ASDFG-ASDFG-ASDFG-ASDFG

你會另一種選擇?可以將你通過http獲得的信息合併爲一個「唯一」鍵並創建自己的會話存儲桶。通過組合Http UserAgent,RemoteIp和RemoteXfip,您可以接近唯一地識別用戶,但不能保證此密鑰是100%唯一的。

+0

如果我在我的瀏覽器中按F5第二個選項會發生什麼? – YOU 2009-11-25 10:33:21

+0

由於用戶代理,remoteIp和remoteXfip都在所有請求中發送到服務器,因此您可以創建相同的「唯一」密鑰並查找您的會話存儲桶。這就是第二種解決方案的優點,它不需要對網站結構或網址結構進行任何更改 – LorenVS 2009-11-25 11:51:41

2

每個URL必須使用response.encodeURL("page.jsp")

這將增加會話ID到每個URL的末尾,以便餅乾不必啓用不進行編碼。

請注意,您必須手動爲每個網址執行此操作才能使其工作。

有關更多信息,請參見this link