6 回答
TA贡献2012条经验 获得超12个赞
一、删除已知名称的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);
}
TA贡献1818条经验 获得超3个赞
1、你删cookie的方式没问题
2、你是不是应该调用session.invalidate 销毁session,因为
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中
}
}
}
你这段代码是查用户放到session 怀疑你又根据session中的数据判断用户是否登录
TA贡献1921条经验 获得超9个赞
删除cookie的程序是没有问题的,估计是你每次登陆的时候并不是检测cookie中是否存在改用户,可能是检测session了,你可以每次退出登陆是将session销毁试试
TA贡献1851条经验 获得超5个赞
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); } }
TA贡献1825条经验 获得超6个赞
点击“退出”按钮时,关闭浏览器,再打开,首页依然显示该用户为登录状
要确认一下客户端是否接收到了删除cookie的命令,用firebug看看点击退出时,浏览器接收到的response中有没有set cookie指令
添加回答
举报