Всегда ли создается объект сессии на JSP странице
По умолчанию JSP-страница автоматически создаёт объект HttpSession при обработке запроса. Это поведение можно отключить через директиву page:
Пример
<%@ page session="false" %>
При session="false" неявный объект session становится недоступным на этой JSP-странице, и контейнер не создаёт новую сессию автоматически. Если сессия уже была создана ранее (другим сервлетом или JSP), она продолжит существовать, но доступ к ней через неявный объект будет закрыт.
Отключение автоматического создания сессии рекомендуется для:
- Статических страниц (главная страница, справка, о компании)
- Страниц, не требующих пользовательского состояния
- Повышения производительности — создание и хранение сессии потребляет память сервера
В высоконагруженных приложениях ненужные сессии создают значительную нагрузку на сервер (каждая сессия ~20-50 КБ в памяти), поэтому отключение session на страницах, не требующих его, — хорошая практика.
На собеседовании: по умолчанию — да, сессия создаётся. Отключить:
<%@ page session="false" %>. Это повышает производительность для stateless-страниц.