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

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

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

denderov 07.12.12 в 09:30

0

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

denderov 07.12.12 в 09:39

0

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

denderov 07.12.12 в 09:46

0

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

denderov 07.12.12 в 10:01

0

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

denderov 07.12.12 в 10:06

0

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

denderov 07.12.12 в 10:07

0
Минутку...