Java Web, сессии устанавливаются автоматически - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь создать фильтр входа в систему в своем веб-проекте Java.Проблема в том, что когда я вызываю request.getSession (false), возвращаемый объект сеанса не равен нулю, другими словами, сеанс активен.Но я уверен, что я не вызывал getSession () в любом другом месте моего кода.Даже если я удаляю этот фильтр, он не работает.Если я открою инструменты разработки своего браузера на вкладке сети, он покажет мне набор jsessionid.Это сессия устанавливается автоматически?

1 Ответ

0 голосов
/ 02 июня 2019

Если вы хотите отслеживать «вошедшего в систему пользователя», то я думаю, что вы ищете, чтобы отслеживать его с помощью HttpSession, например:

HttpSession session = request.getSession();
session.setAttribute("loggedInUser", userObject);

Ypu может получить его из сеансавсякий раз, когда вам это нужно, с помощью:

Object loggedInUser = session.getAttribute("loggedInUser");

И позже, когда пользователю необходимо «выйти», удалите сохраненного пользователя из сеанса:

session.removeAttribute("loggedInUser");

Чтобы ответить на ваш вопрос вкомментарии What's the point to have a HttpSession class/api if i have to implement everything by myself?: a HttpSession представляют беседу с конкретным клиентом, так что последующие запросы от того же клиента могут быть идентифицированы и обработаны должным образом.Он не представляет собой «вошедшего в систему пользователя», что является специфическим требованием домена - не все службы требуют аутентификации.

Наконец, если вам нужно больше подробностей о том, когда создается файл cookie JSESSIONID, прочитайте этот вопрос .

...