Восстановить сеанс браузера после перезапуска браузера (проблема с дублирующимся файлом cookie) - PullRequest
0 голосов
/ 15 мая 2018

Я хочу, чтобы браузер восстановил сеанс моего веб-приложения после перезапуска браузера. Для этого я использую следующий код:

HttpSession browserSession = request.getSession();
Cookie cookie = new Cookie("SESSION", browserSession.getId());
cookie.setMaxAge(Integer.MAX_VALUE);
response.addCookie(cookie);

Перед созданием вышеуказанного файла cookie SESSION при запуске приложения уже существует файл cookie SESSION.

Сеанс браузера восстанавливается только в том случае, если я называю его «СЕССИЯ», если я называю его другим именем, тогда создается файл cookie, и он сохраняется даже после перезапуска браузера, но сеанс приложения не возобновляется.

Изначально я пытался извлечь и установить существующее значение cookie "SESSION" и максимальный возраст, но это не сработало. Я могу возобновить сеанс браузера, если использую приведенный выше код, но имеется 2 файла cookie "SESSION". Есть ли способ сохранить только 1 файл cookie "SESSION"? Или мой подход неверен?

1 Ответ

0 голосов
/ 15 мая 2018

Ваш подход правильный. Не беспокойтесь о дублирующих куки, потому что они будут автоматически удалены во время сеанса браузера. А другой (которому вы установили возраст Integer.MAX_VALUE) останется в базе данных cookie.

При повторном посещении сайта после перезапуска браузера у него будет только 1 файл cookie СЕССИИ, и сервер определенно выделит конкретный сеанс с указанным идентификатором.

Протестировано в Apache Tomcat 8.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...