使用JSP清除所有设置的cookie

时间:2012-04-19 01:17:11

标签: jsp cookies

我想创建一个JSP,删除所有适用于当前页面的cookie(因此,如果重置页面位于网站上是www.dev.example.com,它将获得所有cookie:www.dev.example.com,{ {1}},。.dev.example.com)和服务器端将它们全部删除。

这个代码是什么?

3 个答案:

答案 0 :(得分:0)

引用RFC 2109,您只需要在HTTP响应中使用Set-Cookie标头,并将要清除的cookie设置为空值。例如

Set-Cookie: ssid=

更新: 我不熟悉JSP,所以我使用PHP和Javascript,假设你的cookie中没有HttpOnly属性。

我使用此PHP代码设置cookie,您可以将此PHP脚本上传到您的Web服务器,www.yourserver.com / setupcookie.php

<?php
setcookie('name', 'li');
?>

我使用this HTML文件清除您的Cookie,再次将此HTML文件上传到您的网络服务器,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>

答案 1 :(得分:0)

如果您不想删除,则将其存储为持久性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 .

也是一个

use javascript code to remove all cookies.

答案 2 :(得分:0)

使用以下代码。

<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>