Журнал LinuxFormat - перейти на главную

LXF91:Java EE

Материал из Linuxformat
Перейти к: навигация, поиск

ЧАСТЬ 3 Каждый линусоид знает, что система уровня предприятия должна обеспечивать разграничение доступа. Антон Черноусов расскажет, что может предложить здесь Java EE.

Содержание

В прошлый раз вы, под чутки руководством Александра, разобрались с JSP и переписали "Телефонную книгу" с учетом этой технологии. Сегодня мы двинемся дальше и поговорим об авторизации, сессиях, фильтрах и использовании разделяемых объектов в web-приложениях.

Процесс передачи информации

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

  • Пользователь (набирает номер): Алло, это приложение?
  • Приложение: Да, это приложение.
  • (Пользователь кладет трубку)
  • Пользователь (набирает номер): Меня зовут Георг.
  • Приложение: Да, Георг, мы вас внимательно слушаем.
  • (Пользователь кладет трубку)
  • Пользователь (набирает номер): Дайте мне, пожалуйста, всю информацию.
  • Приложение: Возьмите...

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

  • перезапись URL;
  • скрытые поля;
  • cookie;
  • сессионный объект.

Из всех представленных методов наиболее простым и в тоже время можным является сессионный объект (Session), реализованный в Java посредством интерфейса javax.servlet.http.Session. Ранее, чтобы получить данные от пользователя или обеспечить возможность их транспортировки внутри приложения, мы использовали объект типа HttpServletRequest. Основное отличие HttpSession заключается во времени жизни, схематично изображенном на Рис.1. Объект типа HttpServletRequest предназначен для передачи запроса (и необходимых данных) от браузера к web-приложению и существует только между запросом и ответом, в то время как объект HttpSession обеспечивает средства для хранения и доступа к данным пользователя на протяжениии всего периода работы с приложением. )(Рис.1) Время жизни объектов HttpServletRequest и HttpSession. Следует, однако, иметь в виду, что отследить момент, когда пользователь перестает работать с приложением, не всегда возможно. Поэтому в настройках сервера устанавливается некоторое предельное время существования объекта HttpSession после получения последнего запроса.

Персональные инструменты
купить
подписаться
Яндекс.Метрика