В сервлете есть метод:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println(req.getSession(false));
req.getRequestDispatcher(indexPage).forward(req, resp);
}
При использовании apache-tomcat-8.5.15 при первом обращении получается следующий лог:
null
null
org.apache.catalina.session.StandardSessionFacade@5e21a333
Я всегда думал что существует возможность управлять процессом создания сессии при помощи getSession(true/false). Но выходит что сессия создается вне зависимости от моего желания? Так как же мне обеспечить что бы сессия не создавалась до тех пор, пока я сам не скажу getSession(true)? Хоть я false параметром и выставил, а все равно получил ее создание...
Помогите пожалуйста разобраться что произошло. Спасибо.
Ответ
Скорее всего в вашем приложении использовался JSP. По умолчанию сессия создается при обращении к произвольной JSP странице, если это в явном виде не отключено специальной директивой <%@ page session="false" %>
В остальном вы правы req.getSession(false) не приводит к созданию сессии, если она не была создана до этого.
Комментариев нет:
Отправить комментарий