iteye_8786 2012-12-10 11:57
浏览 229
已采纳

Java 关于Cookie的蛋疼问题

最近让做一个自动登录的功能,于是google,学习了下他人的代码,感觉不是很难;但还是遇到了一些小挫折,很叫人蛋疼!也没法搞定了,只能发帖呼救了~

我所实现的自动登录功能也就三步:

①在登录方法的判断密码的if分支中,创建cookie如下:

 

 

Cookie cookie = new Cookie("usr", username);
cookie.setMaxAge(24*60*60*15);
response.addCookie(cookie);
Cookie cookie = new Cookie("pw", pwEncrypt);
cookie.setMaxAge(24*60*60*15);
response.addCookie(cookie);

 ②在访问首页的方法中,搜索cookie如下:

 

 

String username = "";
String password = "";
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("usr".equals(cookie.getName())) {
            username = cookie.getValue();
        }
        if ("pw".equals(cookie.getName())) {
            password = cookie.getValue();
        }
        if (!"".equals(username) && !"".equals(password)) {
            //将用户对象放入session中
        }
    }
}

 ③退出方法中,删除cookie如下:

 

 

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("urs".equals(cookie.getName())) {
            cookie.setValue("");
            cookie.setMaxAge(0);
            response.addCookie(cookie);
        }
        if ("pw".equals(cookie.getName())) {
            cookie.setValue("");
            cookie.setMaxAge(0);
            response.addCookie(cookie);
        }
    }
}

其中,①②步都木问题,问题就出在第③步,无论怎样都无法删除cookie(最后也只能在ie的Internet选项中删了)。点击“退出”按钮时,关闭浏览器,再打开,首页依然显示该用户为登录状态,很是纠结!!是代码问题,还是我浏览器设置问题?或者是其他什么原因?

 

  • 写回答

6条回答 默认 最新

  • _1_1_7_ 2012-12-10 13:56
    关注

    [quote]一、删除已知名称的Cookie(方案:重新建立同名立即删除类型的Cookie)

    Cookie newCookie=new Cookie(“username”,null); //假如要删除名称为username的Cookie

    newCookie.setMaxAge(0); //立即删除型

    newCookie.setPath(“/”); //项目所有目录均有效,这句很关键,否则不敢保证删除

    response.addCookie(newCookie); //重新写入,将覆盖之前的

      二、删除所有Cookie

    Cookie[] cookies=request.getCookies();

    for(Cookie cookie: cookies){

    cookie.setMaxAge(0);

    cookie.setPath(“/”);

    response.addCookie(cookie);

    }
    [/quote]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决