在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; }