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指令
添加回答
舉報