cookie实现自动登录,无法删除

ldl123292 发布于 2012/10/14 15:51
阅读 1K+
收藏 0

使用cookie实现自动登录,登录后

if(getAutologin().equals("on")){
				Cookie usernamecookie = new Cookie("usernamecookies", getUsername().trim());
				usernamecookie.setMaxAge(60*60*24*7); // 设置Cookie有效期为
				response.addCookie(usernamecookie);  
				Cookie passwordcookie = new Cookie("passwordcookies", MD5.MD5Password(getPasswd()).trim());   
				passwordcookie.setMaxAge(60*60*24*7);  
				response.addCookie(passwordcookie);  
			}

产生2个cookie,

点击退出时,清空cookie

Cookie cookies[] = request.getCookies() ;
		
		logger.info(cookies.length);
		
       Cookie c = null ;
      for(int i=0;i<cookies.length;i++){
           c = cookies[i] ;
           if(c.getName().equals("usernamecookies")){
        	   
        	  c.setMaxAge(0) ;
              response.addCookie(c) ;     //修改后,要更新到浏览器中    
           }
           if(c.getName().equals("passwordcookies")){
         	  	c.setMaxAge(0) ;
               response.addCookie(c) ;     //修改后,要更新到浏览器中    
           }
    	   
    	   
       }

删除完之后,cookie并没有清空,还是可以自动登录,并且cookie的个数还是2个,而这样

 if(c.getName().equals("passwordcookies")){
              Cookie cookie = new ("passwordcookies",null);
              cookie.setMaxAge(0);
               response.addCookie(cookie) ;     //修改后,要更新到浏览器中    
           }

也没有用

怎么回事

加载中
0
陶邦仁
陶邦仁

简单看了下你的代码,在删除Cookie时,代码无误,你确定下你的浏览器设置,或者客户端代码,也可以查看下你本地Cookie的保存信息。平时我也不怎么用关于Cookie方面的知识,就在网上搜集了下这方面的资料,以供参考:http://my.oschina.net/xianggao/blog/83032

Cavalier
Cavalier
同意,加入cookie的作用域
陶邦仁
陶邦仁
回复 @ldl123292 : 嗯,那就好,估计是你的登录URL和登出的URL不一致导致,所以才不能删除登录URL下的Cookie。
ldl123292
ldl123292
加上 xxx.setPath()这个就好了
0
matrixcd90123456
matrixcd90123456
设置一个同名 cookie 进去,然后把过期时间设置为 0
返回顶部
顶部