瀏覽器禁用Cookie,基於Cookie的會話跟蹤機制失效的解決辦法

當瀏覽器禁用Cookies時,基於Cookie的會話跟蹤機制就會失效,解決辦法是利用URL重寫機制跟蹤用戶會話。



在使用URL重寫機制的時候需要注意,爲了保證會話跟蹤的正確性,所有的鏈接重定向語句中的URL都需要調用encodeURL()encodeRedirectURL()方法進行編碼。另外,由於附加在URL中的SessionID是動態產生的,對於每一個用戶都是不同的,所欲對於靜態頁面的相互跳轉,URL重寫機制就無能爲力了,但是,我們也可以通過將靜態頁面轉換爲動態頁面來解決這個問題。

在web開發程序的時候,如何去判斷客戶端是否禁用了Cookie,從而決定是否採用URL重寫的機制去跟蹤用戶的會話。實際上,客戶端時候禁用了Cookie,不需要我們去判斷的,Servlet容器會幫我們做這件事情。我們在開發Web應用程序的時候,只需要對所有的鏈接和重定向語句中的URL都調用encodeURL()和encodeRedirectURL()方法進行編碼就可以了。

        out.println("<form method=post action=loginchk>");
//<span style="white-space:pre">	</span>  這裏是鏈接,所以調用encodeURL()方法
//        out.println("<form method=post action=" + res.encodeURL("loginchk") + ">");


<span style="white-space:pre">	</span>res.sendRedirect("s_login");
//<span style="white-space:pre">	</span>  這裏是重定向語句,所以調用encodeRedirectURL()方法
//        res.sendRedirect(res.encodeRedirectURL("s_login"));


如果瀏覽器禁用了Cookie,不管驗證是否正確都不會跳轉,仍停留在當前登錄界面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章