У меня есть файл cookie, myCookie
, который содержит хэш-значение. Срок действия этого файла cookie истекает через год, и путь к нему равен «/». Мне нужно обновить этот файл cookie с новым значением хэша. Когда мой JSP-скрипт загружен, я извлекаю cookie следующим образом:
Cookie[] cookies = request.getCookies();
Cookie myCookie = null;
for (int i = 0; i < cookies.length; i += 1) {
if (cookies[i].getName().equals("myCookie")) {
myCookie = cookies[i];
break;
}
}
Определив, что значение файла cookie необходимо обновить, я делаю следующее, чтобы обновить его:
myCookie.setValue("my new value");
response.addCookie(myCookie);
Изучая результаты, у меня теперь есть два экземпляра myCookie
: исходная версия с правильными датой и путем истечения срока действия и старое, недопустимое значение; и новый файл cookie с именем «myCookie», срок действия которого истекает в конце сеанса, с правильным значением и путем к документу JSP.
Если я это сделаю:
myCookie.setValue("my new value");
myCookie.setPath(myCookie.getPath());
myCookie.setMaxAge(myCookie.getMaxAge());
response.addCookies(myCookie);
То же самое происходит . Я получаю два куки с одинаковым именем и разными свойствами.
Разве объект Cookie не сохраняет свойства с момента его получения? Как я могу обновить этот файл cookie?
Примечание: Я не хочу изменять путь или дату истечения срока действия. Я только хочу обновить значение уже установленного cookie.