
3к6с Современные технологии интернет-программирования / Лекции / JSP - управление сеансом
.pdf
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