У меня есть страница индекса jsp, которая содержит 3 кнопки (войдите как пользователь, зарегистрируйтесь, войдите как менеджер). Всякий раз, когда пользователь выбрал один из этих вариантов. он будет перенаправлен в loginservlet (через http FORM) и из loginServlet я могу проверить данные для входа и начать новый сеанс, если данные действительны. Однако, когда я использую SessionListener, чтобы проверить, создан ли новый сеанс, когда новый пользователь зарегистрирован или вошел в систему, я всегда получаю один и тот же идентификатор сеанса.
вот функция в loginServlet
private void initSession(HttpServletRequest request, HttpServletResponse response, String sessionsTyp) {
// https://www.studytonight.com/servlet/httpsession.php
// Create Session if user-login or manager-login success
HttpSession session = request.getSession();
if (sessionsTyp.equals("userLogin") || sessionsTyp.equals("managerLogin")) {
if (sessionsTyp.equals("managerLogin")) {
session.setMaxInactiveInterval(10);
}
} else { // Create Session if registry success
session = request.getSession(true);
}
// Storing user information in an attribute of Session. Username is unique therefore use username as sessionid
if (this.username != null) {
session.setAttribute(Constants.SESSION_USER_KEY, username);
} else {
session.setAttribute(Constants.SESSION_MANAGER_KEY, session.getId());
}
}
когда я открываю новую страницу index.jsp для входа или регистрации, я не получаю новый сеанс (я вижу его в журнале). И я не могу понять одну вещь: когда я запускаю сервер, я сразу же получаю новый идентификатор сессии.
Я новичок в сервлете. пожалуйста, помогите мне.
Спасибо