jsessionid игнорируется - PullRequest
       23

jsessionid игнорируется

2 голосов
/ 12 сентября 2011

Я использую URL с jsessionid, например.

http://localhost:8080/myservlet;jsessionid=123

Тем не менее, когда я читаю идентификатор сеанса в HttpServletRequest, значение никогда не равно 123, а вместо сгенерированногоидентификатор сеанса, напримерB663A96D3FBC84B4A427C0810EAB9073.

Почему мой jsessionid игнорируется?

Ответы [ 2 ]

5 голосов
/ 12 сентября 2011

Это потому, что вы указали идентификатор сеанса, для которого в памяти сервера нет конкретного объекта HttpSession.Другими словами, данный идентификатор сеанса неизвестен / недействителен.Вам нужно указать идентификатор сеанса, который ссылается на действительный и существующий объект HttpSession в памяти сервера.

Предполагая, что у вас действительно действительный HttpSession с идентификатором B663A96D3FBC84B4A427C0810EAB9073, который в настоящее время находится впамяти сервера, тогда будет работать следующая ссылка, которая даст конечному пользователю доступ именно к этому HttpSession:

http://localhost:8080/myservlet;jsessionid=B663A96D3FBC84B4A427C0810EAB9073

0 голосов
/ 12 сентября 2011

Я полагаю, что в настоящее время большинство серверов приложений по умолчанию используют файлы cookie для отслеживания сеансов, а не для перезаписи URL. Таким образом, если ваш запрос содержит в файле как сессионный cookie-файл, так и JSESSIONID, он, вероятно, будет использовать файл из cookie-файла. Обратитесь к документации вашего сервера приложений, чтобы узнать, как это настроить.

...