我已经在我的JSP中初始化了Cooke,

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 thecookie = new Cookie("thecookie", loc);
thecookie.setMaxAge(60*60*24);
response.addCookie(thecookie);

因此,所有创建的cookie将具有相同的名称,但对于不同的用户访问时间,其值将不同。

在Java Servlet的末尾,我想停用/杀死在Java Servlet的开头传递的cookie,并说如果他们是5个同时使用系统的用户,我将如何知道最后要为哪个用户停用哪个cookie my.java?

例如,考虑
User 1 : cookie name `thecookie` value `AAA`
User 2 : cookie name `thecookie` value `BBB`
User 3 : cookie name `thecookie` value `CCC`
User 4 : cookie name `thecookie` value `DDD`
User 5 : cookie name `thecookie` value `EEE`

现在,在my.java servlet的末尾,我想停用在my.java开头已分配的值CCC的cookie,而又不影响其他cookie值,该怎么做?

最佳答案

您正在使用错误的方法来读取cookie。

Cookie[] cookies = request.getCookies();

if (cookies != null) {
 for (Cookie cookie : cookies) {
   if (cookie.getName().equals("cookieName")) {
     //do something
     //value can be retrieved using #cookie.getValue()
    }
  }
}

用这个。无需检测特定用户的Cookie,只需停用它即可。

09-27 00:08