Gymterview
junior

Какие области видимости переменных существуют в JSP

В JSP существуют четыре области видимости (scope), определяющие время жизни и доступность объектов. Область задаётся атрибутом scope при создании объекта.

Scope Время жизни Доступность Использование
page Текущая JSP-страница Только на странице, где создан Временные переменные
request Один HTTP-запрос Текущая страница + forward/include Передача данных от контроллера к view
session Сессия пользователя Все страницы для данного пользователя Корзина, профиль, предпочтения
application Всё время работы приложения Все страницы для всех пользователей Глобальные настройки, счётчики
Пример
<jsp:useBean id="myBean" class="ru.example.MyBean" scope="session"/>

По умолчанию используется page scope. В EL-выражениях контейнер ищет атрибут последовательно: page -> request -> session -> application. Для явного указания scope используются неявные объекты EL: ${requestScope.data}, ${sessionScope.user}.

На собеседовании: перечислите четыре scope в порядке от узкого к широкому. Частая ошибка — хранить данные, специфичные для запроса, в session scope (утечка памяти).