1. 程式人生 > >瀏覽器禁用Cookie,基於Cookie的會話跟蹤機制失效的解決辦法

瀏覽器禁用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,不管驗證是否正確都不會跳轉,仍停留在當前登入介面。