我想要創建一個JSP來刪除適用於當前頁面的所有Cookie(因此,如果重置頁面駐留在網站www.dev.example.com上,它將獲得所有Cookie:www.dev.example.com
,.dev.example.com
,。example.com
)和服務器端,將它們全部刪除。使用JSP清除所有設置的Cookie
這是什麼代碼?
我想要創建一個JSP來刪除適用於當前頁面的所有Cookie(因此,如果重置頁面駐留在網站www.dev.example.com上,它將獲得所有Cookie:www.dev.example.com
,.dev.example.com
,。example.com
)和服務器端,將它們全部刪除。使用JSP清除所有設置的Cookie
這是什麼代碼?
參考RFC 2109,你只需要使用您的HTTP響應的Set-Cookie頭,並設置要被清除到一個空白value.Such作爲
Set-Cookie: ssid=
更新餅乾: 我我不熟悉JSP,所以我使用PHP和Javascript爲例,假設您的Cookie中沒有HttpOnly屬性。
我用這個PHP代碼來設置cookie的,你可以上傳PHP腳本到Web服務器,www.yourserver.com/setcookie.php
<?php
setcookie('name', 'li');
?>
我使用this HTML文件清除Cookie再次,如果你不想刪除比其他替代這個HTML文件上傳到您的Web服務器,www.yourserver.com/clearcookie.html
<script>
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
deleteAllCookies();
</script>
是將它們存儲爲持續性的cookie
set MaxAge = -1
MaxAge of -1表示您希望Cookie在會話期間持續存在。您想要將MaxAge設置爲0。
A negative value means that the cookie is not stored persistently and
will be deleted when the Web browser exits. A zero value causes the cookie
to be deleted.
另一個是
Iterate all cookies in servlet/Scriptlet and set all Cookies Value NULL .
還一個是
use javascript code to remove all cookies.
那麼實際的JSP代碼會做什麼呢? – artlung 2012-04-19 17:24:05
使用下面的代碼。
<body>
<%
if(request.getParameter("removeCookie") != null){
for(Cookie cookie : request.getCookies()){
if(!cookie.getName().equals("JSESSIONID")){
cookie.setMaxAge(0);
cookie.setValue("");
cookie.setPath("/");
response.addCookie(cookie);
}
}
}
%>
<form action="#" method="get">
<input type="submit" id="removeCookie" name="removeCookie" value="Remove cookie" >
</form>
</body>
正如你在你的其他答案中回答自己(爲什麼你發佈另一個答案,而不是編輯最初的答案?),最大年齡-1是錯誤的。 – BalusC 2012-04-20 13:39:40
,因爲這是另一個答案,有問題,他問這樣做 和在評論中,他問的代碼,所以... – 2012-04-20 17:32:28
對,所以我需要先讀取所有當前設置的cookie,然後爲每個使用Set-Cookie標頭。我是否也需要爲每個域設置一個域?那麼這個功能是什麼樣的?有沒有這樣做,作爲一個庫 - 迭代當前的cookie並取消設置? – artlung 2012-04-19 01:28:20