Получить значение cookie в java

Я инициализировал Кук, как это в моем JSP,

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);

таким образом, все созданные куки будут иметь одно и то же имя, но разные значения для разных пользователей времени доступа

Вопрос 1-Решено,

в моем.java я использовал

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

чтобы получить loc в моем.java-страница, но это отображается null, в чем моя ошибка?

ответ : я нашел здесь правильный способ доступа к cookie

Вопрос 2,

В конце Java-сервлета я хочу деактивировать / убить cookie, который был передан в начале Java-сервлета, и сказать, если они 5 пользователей, использующих систему параллельно, как я узнаю, какой cookie деактивировать для какого пользователя в последнем из моих.Ява?

рассмотрим, например,

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`

Теперь, в конце моего.Java servlet я хочу деактивировать cookie со значением CCC, которое было назначено в начале моего.Java без беспокойство другие значения cookie, как это сделать?

3 ответов


вы используете неправильный метод для чтения файлов 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;
}