Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
27.11.2024
Размер:
398.55 Кб
Скачать

Java Server Pages

Управление сеансом

Сеанс (Session) 1 из 3

Сеанс(сессия) может быть определен как

последовательность связанных между собой взаимодействий, которые

происходят в течение некоторого

интервала времени между клиентом и

сервером.

2

Сеанс (Session) 2 из 3

Сеанс инициализируется однократно, когда

пользователь входит на сайт. Сеанс существует до тех пор пока не будут

выполнены следующие действия:

Пользователь закрыл браузер

Пользователь выполнил процедуру выхода

В течение определенного времени (обычно

30 мин) пользователь не выполнил никаких действия.

3

Сеанс (Session) 3 из 3

1.Пользователь посылает HTTP-запрос на сайт.

2.На сервере создается объект session, у которого есть уникальный идентификатор sessionID.

3.Этот идентификатор сообщается пользователю.

4.В дальнейшем когда клиент выполняет запрос к ресурсам сервера, он сообщает серверу свой sessionID.

5.Используя sessionID, сервлеты и JSP-страницы могут получить объект, связанный с сеансом и извлечь любую хранящуюся в нем информацию.

4

Хранения информации 1 из 3

Сопровождение идентификатора сеанса на

сервере построено следующим образом:

Сервер хранит хэш-таблицу, которая

содержит значения sessionID в качестве

ключей таблицы. Количество записей соответствует количеству активных в

данный момент сеансов. В качестве

значений выступают также хэш-таблицы.

5

Хранения информации 2 из 3

Хэш-таблица на которую ссылается

идентификатор сеанса sessionID предназначен для хранения ключей

относящихся к данному сеансу и

связанных с ними объектов.

6

Хранения информации 3 из 3

Хэш-таблица 1

Главная хэш-таблица

Key

Value

SessionID 1

Hashtable 1

 

 

SessionID 2

Hashtable 2

 

 

 

 

SessionID N

Hashtable N

 

 

Key

Value

Key 1

Object 1

Key 2

Object 2

Key M

Object M

 

 

Хэш-таблица N

Key

Value

Key 1

Object 1

 

Key 2

Object 2

 

 

Key K

Object K

7

 

Хэш-таблицы

Хеш-таблица — это структура данных

реализующая позволяющая хранить пары (ключ, значение) и выполнять операции:

Операция добавления ADD(ключ,

значение)

Операция поиска FIND(ключ)

Операция удаления REMOVE(ключ)

ВJava есть класс реализующий хэш-

таблицу: java.util.Hashtable

8

Hashtable пример

 

 

 

public class Temp {

 

 

 

 

public static void main(String [ ] arg)

{

 

Hashtable h = new Hashtable();

 

 

h.put("title", "Это заголовок");

 

 

h.put("date", new Date());

 

 

h.put("number", Math.random());

 

 

System.out.println( h.containsKey("string")); System.out.println( h.containsKey("date")); System.out.println( h.get("title")); System.out.println( h.get("date")); h.remove("date");

System.out.println( h.containsKey("date"));

}

}

Вывод:

9

Наблюдение за сеансом

Для наблюдения за сеансом (session tracking) можно использовать:

информацию HTTP-протокола

скрытые поля HTML-форм

расширенную информация о пути и

перезаписывание URL

закладки (Cookie)

объекты сеанса

10