按值删除cookie

时间:2014-04-01 10:29:43

标签: java jsp cookies

如何按值删除Cookie?

在my.jsp页面中,我正在设置cookie

String timeStamp = new SimpleDateFormat("dd:MM:yyyy_HH:mm:ss:SSS").format(Calendar.getInstance().getTime());
timeStamp = timeStamp + ":" + System.nanoTime();
String loc = "/u/poolla/workspace/FirstServlet/WebContent/WEB-INF/"+timeStamp;
Cookie cookie = new Cookie("path", loc);

多个用户将拥有相同名称但不同的loc值的Cookie, 那么,我如何在servlet.java中获取cookie值并删除特定的loca值cookie ??

3 个答案:

答案 0 :(得分:0)

您需要在请求中调用getCookies()并循环访问它们,直到找到您正在寻找的那个。

答案 1 :(得分:0)

每个用户的

Cookies都不相同。通常,cookie与访问JSP /应用程序的客户端/用户/浏览器相关联,并且每个客户端都可以拥有自己的cookie值。

当您删除cookie时,您只需为已向您的应用程序发出请求的客户端删除它。其余的客户仍然拥有自己的cookie,对价值没有任何影响。因此,您无需担心删除cookie可能会影响多个用户。

要删除cookie,请先从请求中获取所有Cookie,然后删除具有特定名称/值的Cookie。

public void delete(MyType instance) {
    Cookie[] cookies = request.getCookies();
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals("test")) {
                cookie.setValue(null);
                cookie.setMaxAge(0);
                cookie.setPath(theSamePathAsYouUsedBeforeIfAny);
                response.addCookie(cookie);
            }
        }
    }
}

答案 2 :(得分:-3)

这是一个可以帮助你的简单例子

//declaring a cookie 
Cookie cookie = new Cookie(name, value);
//getting the cookie name 
String name = cookie.getName()
//getting the cookie value
String value= cookie.getValue();