检查用户的Cookie设置

不要总是以为用户的浏览器可以接受cookies。这儿有一个可以帮你检查cookie是否可用的小技巧。
by Budi Kurniawan

尽管我所知道的浏览器都支持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.");
    }
  }
%>


关于作者:
Budi Kurniawan 是一个独立的咨询者并在Sydney大学教Java。Brainy Software出品的颇受欢迎的File Upload component的开发者就是他。他的Email地址是 budi@brainysoftware.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值