Области видимости Session scope и Request scope в Spring MVC. Работа с объектами

Обзор различных областей видимости объектов — session scope и request scope в Spring MVC. Работа с объектами.

Обзор приложения Spring MVC + AngularJS + Bootstrap + HTML5
Используемые технологии и библиотеки
  • Spring MVC 4.2.4.Release
  • Maven 3.2.5
  • IntelliJ IDEA 15.0.2

1. Описание задачи

Рассмотреть на примере как сохранять объекты в различных областях видимости приложения Spring MVC: Request scope, Session Scope. Рассмотреть часто встречающуюся задачу — как сохранить объект в сессии приложения Spring MVC.

2. Структура проекта

sessionScopePrStructure

Как и в предыдущих частях здесь используется пара java класс-контроллер и его представление. В классе ScopeController будет записываться объект, который будет доступен либо на протяжении жизни сессии, либо только запроса. Там же предусмотрен метод сброса сессии. В представлении scope.jsp будет виден результат работы контроллера.

3. Файлы конфигурации Spring

Для темы данной статьи нет необходимости менять какую-либо конфигурацию или добавлять зависимости. Поэтому все настройки можете посмотреть в предыдущих частях или скачать исходный код в конце страницы.

4. ScopeController

В первом методе в качестве аргумента передается HttpSession session. В нее записываем объект с именем sessionObject и временем жизни 1 час. Далее метод возвращает адрес для поиска представления (переход к scope.jsp).

Второй метод аннулирует сессию.

Следующий метод аналогичен первому, но пишет объект в область видимости request.

5. Представление scope.jsp

scope.jsp:

Объекты из разных областей видимости вызываются с помощью такой записи:

Объект в области видимости request будет обновляться при каждом новом запросе (например просто обновив страницу). Для того, чтобы проверить сохранение объекта в сессии в конце страницы была добавлена ссылка на переход к другому представлению (file.jsp), где так же вызывается ${sessionScope.sessionObject}.

file.jsp:

6. Запуск приложения

Запустим приложение и посмотрим результат сохранения объектов.

sessionScopeRun

Как видите объект в сессии доступен на разных страницах для одного и того же пользователя.
Работа с объектами в других областях видимости строится аналогично.

Можеть быть интересно

На сайте есть еще одна по теме как сохранить объект в сессии, в которой описан другой подход к работе с объектами.

Исходные коды

MVC_AngularJS_Html5 full project — полный проект Spring MVC + AngularJS + Bootstrap + HTML5.

12. Session and Request scopes — код для этой части

Обзор приложения Spring MVC + AngularJS + Bootstrap + HTML5
Share Button
5
16790 Total Views 3 Views Today

Добавить комментарий