在java中获取cookie值

我在我的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将具有相同的名称,但对于不同的用户访问时间具有不同的值

问题1 – 解决了,

在my.java我用过

 String fpath = request.getParameter("thecookie").toString(); 

在my.java页面中获取loc,但这显示null我的错误是什么?

答:我在这里找到了访问cookie的正确方法

问题2,

在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[] 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,只需将其停用即可。

 Cookie[] cookies = request.getCookies(); int i = 0; for (Cookie cookie : cookies ) { Sytem.out.println(cookies[i].getName()); Sytem.out.println(cookies[i].getValue()); i++; } 

准备使用通用方法:

 public static Cookie getCookie(HttpServletRequest request, String name) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(name)) { return cookie; } } } return null; }