盡管我所知道的瀏覽器都支持cookie的設置,不過用戶可以有意識的將它關閉,或者無意識的將它關閉。當你在你的servlets/JSP頁面中使用cookie時,你不能保證用戶的瀏覽器是否可以接受cookie--你需要先檢查一下。這兒有一個檢查用戶的瀏覽器的cookie是否有效的小技巧。
這個技巧很簡單。你從servlet或JSP向用戶的瀏覽器發出一個HTTP回應,強行使瀏覽器在第二次返回。在第一次的響應中,你發出一個cookie。當瀏覽器第二次返回的時候,檢查上一次發出的cookie。如果cookie存在,說明瀏覽器的cookie功能可用。否則說明用戶的瀏覽器太老,不支持cookie,或者瀏覽器的cookie功能被關閉。
JSP頁面用下面這段代碼檢查cookie是否有效。如果有效,那么頁面的返回字符串為“Cookie is on”.若無效則為“Cookie is off”:
<% if (request.getParameter("flag")==null) { // the first request Cookie cookie = new Cookie("cookieSetting", "on"); response.addCookie(cookie); String nextUrl = request.getRequestURI() + "?flag=1"; // force the browser to refresh out.println("<META HTTP-EQUIV=Refresh CONTENT=0;URL=" + nextUrl +">"); } else { // the second request Cookie[] cookies = request.getCookies(); boolean cookieFound = false; if (cookies!=null) { int length = cookies.length; for (int i=0; i<length; i++) { Cookie cookie = cookies[i]; if (cookie.getName().equals("cookieSetting") && cookie.getValue().equals("on")) { cookieFound = true; break; } } } if (cookieFound) { out.println("Cookie is on."); } else { out.println("Cookie is off."); } } %> |