現在のページに適用されるすべての Cookie を削除する JSP を作成したい (したがって、リセットされたページが www.dev.example.com のサイトにある場合、すべての Cookie を取得します: www.dev.example.com
, .dev.example.com
, . example.com
) 。それらをすべて削除します。
これのコードは何でしょうか?
別の方法よりも削除したくない場合は、永続的なCookieとして保存します
set MaxAge = -1
MaxAgeが-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 .
また、1つは
use javascript code to remove all cookies.
RFC 2109を参照すると、HTTP 応答で Set-Cookie ヘッダーを使用し、クリアする Cookie を空白の値に設定するだけで済みます。
Set-Cookie: ssid=
更新: 私は JSP に詳しくないので、たとえば PHP と Javascript を使用します。Cookie にHttpOnlyプロパティがないと仮定します。
この PHP コードを使用して Cookie を設定します。この PHP スクリプトを Web サーバー www.yourserver.com/setcookie.php にアップロードできます。
<?php
setcookie('name', 'li');
?>
この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>
次のコードを使用します。
<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>