Java: Веб-технологии
2026-02-26 16:58 Diff

Сессия – это абстракция, созданная для удобной работы с индивидуальными пользователями. Она используется для идентификации пользователей и позволяет отличать их друг от друга. Например, аутентификация на сайтах построена поверх механизма сессии. В этом уроке мы обсудим сессии в контексте Java.

Как работают сессии

Сессия использует куки для своей работы. Для каждого пользователя создается своя кука со специальным идентификатором, который сложно подобрать. Это происходит во время первого обращения к сессии. Больше кука никак не используется, все данные записываются в память рабочего приложения:

Принцип работы с данными сессии очень похож на то, как идет работа с куками. Мы можем добавить данные в сессию и прочитать их:

Добавленные данные хранятся в сессии до тех пор, пока не произойдет одно из следующих событий:

  • Кука будет удалена
  • Закончится время жизни куки
  • Данные сессии будут удалены на бэкенде

Данные внутри сессии хранятся в текстовом виде, поэтому их придется преобразовывать в строки:

Как использовать сессии

Реализуем упрощенный пример аутентификации на сайте. Для этого создадим SessionsController с тремя маршрутами:

Контроллер:

Шаблон:

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

Ниже вы видите код вывода блока на главной странице для залогиненных пользователей: