Вам не нужно управлять сессиями самостоятельно. Сервлетконтейнер сделает это за вас прозрачно, со вкусом HttpSession
. Обычно вы используете HttpSession#setAttribute()
для сохранения объекта в области сеанса и HttpSession#getAttribute()
для получения объекта из области сеанса. Вы можете использовать HttpServletRequest#getSession()
, чтобы получить ссылку на HttpSession
.
например. в сервлете входа в систему:
User user = userDAO.find(username, password);
if (user != null) {
request.getSession().setAttribute("user", user);
} else {
// Show error?
}
Вы можете получить его позже в любом сервлете или фильтре в том же сеансе
User user = (User) request.getSession().getAttribute("user");
if (user != null) {
// User is logged in.
} else {
// User is not logged in!
}
Вы даже можете получить к нему доступ по EL в JSP:
<p>Welcome, ${user.username}!
(при условии, что существует метод Javabean getUsername()
)