Gymterview
junior

Всегда ли создается объект сессии на JSP странице

По умолчанию JSP-страница автоматически создаёт объект HttpSession при обработке запроса. Это поведение можно отключить через директиву page:

Пример
<%@ page session="false" %>

При session="false" неявный объект session становится недоступным на этой JSP-странице, и контейнер не создаёт новую сессию автоматически. Если сессия уже была создана ранее (другим сервлетом или JSP), она продолжит существовать, но доступ к ней через неявный объект будет закрыт.

Отключение автоматического создания сессии рекомендуется для:

  • Статических страниц (главная страница, справка, о компании)
  • Страниц, не требующих пользовательского состояния
  • Повышения производительности — создание и хранение сессии потребляет память сервера

В высоконагруженных приложениях ненужные сессии создают значительную нагрузку на сервер (каждая сессия ~20-50 КБ в памяти), поэтому отключение session на страницах, не требующих его, — хорошая практика.

На собеседовании: по умолчанию — да, сессия создаётся. Отключить: <%@ page session="false" %>. Это повышает производительность для stateless-страниц.