如何按值删除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 ??
答案 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();