Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Javax.servlet.http.HttpSession

Javax.servlet.http.HttpServletRequest

Этот интерфейс представляет абстракцию HTTP запроса. Через него доступны параметры HTTP запроса, HTTP заголовки, cookies, а так же сессия текущего пользователя (HTTP session).

 

6.2.3. javax.servlet.http.HttpServletResponse

Этот интерфейс представляет абстракцию HTTP ответа сервера. Через него разарботчик может установить cookies, HTTP заголовки, послать редирект на другой URL (например на другой Servlet), а так же сформировать ответ клиентскому брауезеру, получив Writer и записав в него HTML страницу.

 

Этот интерфейс абстрагирует доступ к HTTP сессии пользователя. Сессия пользователя – это вообще говоря некая область памяти, доступная три ассоциативного массива (пара «ключ-значение») для каждого отдельного клиента, при этом клиенты не могут видеть чужую сессию. Этим достигается изолированная работа клиентов. Протокол HTTP по своей природе – протокол без состояния (stateless), т.е. между запросами от одного и того же клиента, Servlet (или подобный модуль в технологии отличной от Java) не хранит никакой информации о пользователе и всю информацию берёт из текущего запроса. Для того чтобы обойти это ограничение было введено понятие HTTP сессии. Соотношение между конкретной сессией и конкретным клиентом задаётся либо с помощью cookies либо с помощью специального hidden поля (обычно называющегося jsessionid). В таком cookie или поле записывается зашифрованный уникальный идентификатор пользовательской сессии и web сервер, прозрачно для разработчика сервлета, подключает к текущему запросу соответствующую заранее созданную сессию клиента. Таким образом в сессии можно хранить различного рода данные. Однако, сессию не следует рассматривать как постоянное и надёжное хранилище данных, так как в случае отключения браузера и подключения заново (открыли браузер, зашли на страницу, закрыли, открыли по новой, зашли) – сессия будет утеряна – сервер не сохраняет сессию в БД или в файле. Кроме того, при большом размере пользовательских сессий и большом количестве пользователей, поддержка механизма сессий может оказаться слишком ресурсозатратной с точки зрения потребляемой памяти, что в свою очередь резко отрицательно сказывается на производительности и масштабируемости системы. Из этого следует, что объекты, которые необходимо сохранять в трибу не должны быть большими и не должны быть важными данными которые нельзя утерять. В последнем случае следует использовать сохранение таких объектов в БД. Дополнительные проблемы могут возникать с сессией и при использовании кластерных конфигураций, так как сессию приходиться реплицировать между узлами кластера, что при больших её объёмах опять таки может вызывать падение производительности.

 

<== предыдущая лекция | следующая лекция ==>
Javax.servlet.http.HttpServlet | Javax.servlet.Filter
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 287; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.05 сек.