Скачать презентацию SESSIONS COOKIES Предназначение сессий Протокол HTTP stateless Скачать презентацию SESSIONS COOKIES Предназначение сессий Протокол HTTP stateless

12_session.pptx

  • Количество слайдов: 13

SESSIONS COOKIES SESSIONS COOKIES

Предназначение сессий Протокол HTTP stateless каждый запрос не зависит от предыдущих HTTP сессия ассоциирует Предназначение сессий Протокол HTTP stateless каждый запрос не зависит от предыдущих HTTP сессия ассоциирует информацию, храняющуюся на сервере с конкретным клиентом Если сессия на сервере для клиента существует, то клиент будет идентифицирован сервером при запросе. Kolesnikov D. O. SED KNURE 2

Получение сессии Сессию можно получить вызвав на объекте Http. Session. Request метод get. Session: Получение сессии Сессию можно получить вызвав на объекте Http. Session. Request метод get. Session: Http. Session s = request. get. Session(); Если сессия не существует, то она будет автоматически создана. Kolesnikov D. O. SED KNURE 3

Интерфейс Http. Session javax. servlet. http. Http. Session Некоторые методы интерфейса: boolean is. New() Интерфейс Http. Session javax. servlet. http. Http. Session Некоторые методы интерфейса: boolean is. New() long get. Creation. Time() String get. Id() long get. Last. Accessed. Time() int get. Max. Inactive. Interval() void set. Max. Inactive. Interval(int interval); get. Servlet. Context() Kolesnikov D. O. SED KNURE 4

Инвалидирование сессии Сессия может быть инвалидирована в двух случаях: с момента последнего посещения клиентом Инвалидирование сессии Сессия может быть инвалидирована в двух случаях: с момента последнего посещения клиентом сервера прошло время, которое превышает время жизни сессии принудительное инвалидирование с помощью метода invalidate() Kolesnikov D. O. SED KNURE 5

Проверка существования сессии Http. Session get. Session(boolean create) Метод возвращает сессию, которая связана с Проверка существования сессии Http. Session get. Session(boolean create) Метод возвращает сессию, которая связана с запросом. Если сесси нет: create =true создаст и вернет новую сессию create =false вернет null Kolesnikov D. O. SED KNURE 6

Атрибуты Атрибут - именованный объект. Любой объект можно сохранить как атрибут в одном из Атрибуты Атрибут - именованный объект. Любой объект можно сохранить как атрибут в одном из контейнеров видимости: Сервлетный контекст (servet context) Сессия (session) Запрос (request) Kolesnikov D. O. SED KNURE 7

Методы set/get. Attribute Метод set. Attribute(String name, Object value) сохраняет атрибут value под именем Методы set/get. Attribute Метод set. Attribute(String name, Object value) сохраняет атрибут value под именем name. Метод Object get. Attribute(String name) возвращает атрибут по имени Kolesnikov D. O. SED KNURE 8

HTTP cookie Именованная информации, кот. может быть сохранена на стороне клиента. запрос клиента GET HTTP cookie Именованная информации, кот. может быть сохранена на стороне клиента. запрос клиента GET /Cookies. Demo/My. Servlet HTTP/1. 1 ответ сервера HTTP/1. 1 200 OK Set-Cookie: JSESSIONID=DE. . . 308 E запрос клиента GET /Cookies. Demo/My. Servlet HTTP/1. 1 Cookie: JSESSIONID=Set-Cookie: JSESSIONID=DE. . . 308 E Kolesnikov D. O. SED KNURE 9

Управление cookie Методы для работы с cookies Cookies[] request. get. Cookies() response. add. Cookie(Cookie) Управление cookie Методы для работы с cookies Cookies[] request. get. Cookies() response. add. Cookie(Cookie) Публичные методы класса Cookie void set. Max. Age(int) int get. Max. Age() void set. Value(String) String get. Value() Kolesnikov D. O. SED KNURE 10

Управление сессиями Сессиями (как объектами) управляет сервер. Когда клиент делает запрос в рамках сессии Управление сессиями Сессиями (как объектами) управляет сервер. Когда клиент делает запрос в рамках сессии (как сеанса) с его стороны должна поступить информация, которая позволяет серверу ассоциировать существующую сессию (в виде объекта) с данным запросом. Kolesnikov D. O. SED KNURE 11

Идентификатор сессии Каждая сессия имеет идентификатор. Http. Session#get. Id String get. Id() Kolesnikov D. Идентификатор сессии Каждая сессия имеет идентификатор. Http. Session#get. Id String get. Id() Kolesnikov D. O. SED KNURE 12

Идентификация сессий Два базовых механизма на основе которых сервер ассоциирует сессию с запросом клиента: Идентификация сессий Два базовых механизма на основе которых сервер ассоциирует сессию с запросом клиента: Cookie (с именем JSESSIONID) URL rewriting Если клиентская сторона не принимает cookies, то может быть использовано переписывание URL (URL rewriting). Kolesnikov D. O. SED KNURE 13