6 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
一、刪除已知名稱的Cookie(方案:重新建立同名立即刪除類型的Cookie)
Cookie newCookie=new Cookie(“username”,null); //假如要?jiǎng)h除名稱為username的Cookie
newCookie.setMaxAge(0); //立即刪除型
newCookie.setPath(“/”); //項(xiàng)目所有目錄均有效,這句很關(guān)鍵,否則不敢保證刪除
response.addCookie(newCookie); //重新寫入,將覆蓋之前的
二、刪除所有Cookie
Cookie[] cookies=request.getCookies();
for(Cookie cookie: cookies){
cookie.setMaxAge(0);
cookie.setPath(“/”);
response.addCookie(cookie);
}

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
1、你刪cookie的方式?jīng)]問(wèn)題
2、你是不是應(yīng)該調(diào)用session.invalidate 銷毀session,因?yàn)?br/>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)) {
//將用戶對(duì)象放入session中
}
}
}
你這段代碼是查用戶放到session 懷疑你又根據(jù)session中的數(shù)據(jù)判斷用戶是否登錄

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
刪除cookie的程序是沒(méi)有問(wèn)題的,估計(jì)是你每次登陸的時(shí)候并不是檢測(cè)cookie中是否存在改用戶,可能是檢測(cè)session了,你可以每次退出登陸是將session銷毀試試

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
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貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
點(diǎn)擊“退出”按鈕時(shí),關(guān)閉瀏覽器,再打開(kāi),首頁(yè)依然顯示該用戶為登錄狀
要確認(rèn)一下客戶端是否接收到了刪除cookie的命令,用firebug看看點(diǎn)擊退出時(shí),瀏覽器接收到的response中有沒(méi)有set cookie指令
添加回答
舉報(bào)