Готовый перевод Key Technologies Primer / Apache Struts. Учебник для начинающих по ключевым технологиям.: Sessions

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «идёт перевод»

Одна из ключевых характеристик HTTP - отсутствие состояния. Другими словами, отсутствует что-либо, встроенное в HTTP, что связывало бы последующий и предыдущий запрос одного и того же пользователя. Это делает несколько затруднительным разработку приложения, обменивающегося с пользователем посредством некоторого количества запросов.

Чтобы нивелировать эти сложности, API сервлета предоставляет программную концепцию под названием сессия, представляющую собой объект реализованный интерфейсом javax.servlet.http.HttpSession. Контейнер сервлета будет использовать один из двух методов (cookie или перезапись URL) чтобы гарантировать, что следующий запрос от того же пользователя включал идентификатор сессии, поэтому информация о состоянии, сохраненная в сессии, может быть привязана к нескольким запросам. Информация о состоянии сохраняется в атрибутах сессии (в JSP они называются "компоненты области определения сессии").

Чтобы избежать блокировки ресурсов, когда пользователю не удается завершить итерацию, у сессий есть настраиваемый интервал ожидания. Если временной промежуток между двумя запросами превышает этот интервал, у сессии истечет время ожидания и все атрибуты сессии будут удалены. Вы определяете время ожидания сессии по умолчанию для вашего веб-приложения используя дескриптор и вы можете динамически изменять его для конкретной сессии через вызов метода setMaxInactiveInterval().

В отличии от запросов, вы должны позаботиться о потоковой безопасности для ваших атрибутов сессии (обеспечивается методами этих компонентов, а не методами getAttribute() и setAttribute() самой сессии). Удивительно легко сделать несколько параллельных запросов от одного пользователя, которые из-за этого получат доступ к одной сессии.

Также требует внимания то, что атрибуты сессии занимают место на вашем сервере между запросами. Это может оказать влияние на количество одновременно обслуживаемых вашим приложением пользователей. Если требования вашего приложения включают очень большое количество одновременно работающих пользователей, вам вероятно понадобиться минимизировать ваше использование атрибутов сессии в стремлении контролировать общее количество памяти, используемого вашим приложением.

Для подробной информации о сессиях см.:
- Сохранение состояния клиента в руководстве по J2EE.
- javax.servlet.http.HttpSession

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод

Переведено на Нотабеноиде
http://notabenoid.org/book/35262/124884

Переводчики: denderov

Настройки

Готово:

100.00% КП = 1.0