Описание объекта Session
Вы можете использовать данный объект для хранения информации о (и для) пользовательских сессий. Переменные, хранящиеся в объекте Session не уничтожаются когда пользователь осуществляет переходы между страницами в приложении, а хранятся на протяжении существования данной сессии.
Вэб сервер автоматически создает объект Session когда страница приложения востребуется пользователем, который до сих пор не имел сессию. Сервер разрушает объект Session когда время "существования" сессии истекает или же ссесия разрушается принудительно.
Основное использование данного объекта это хранение в нем пользовательских "персоналий". К примеру, если пользователь указывает на то, что ему не надо показывать графические изображения вы можете запомнить эту информацию в объекте Session. Для более подробной информации по данному объекту вы можете обратиться к разделу Управление Сессиями в разделе APS-приложенийй.
Замечание: Данный объект может быть смонтирован только для браузеров, поддерживающих cookies.
Коллекции:
- Session.Contents
- Session.StaticObjects
Методы:
- Session.Abandon
Свойства:
- Session.CodePage
- Session.LCID
- Session.SessionID
- Session.TimeOut
События:
- Session.Session_OnStart
- Session.Session_OnEnd
Коллекция Session.Contents |
Коллекция Contents содержит все элементы, которые были установлены для сессии без использования тэгов
Синтакс:
Session.Contents( ключ )
Параметры:
ключ
Имя свойства для получения его значения.
Замечание:
Вы можно использовать структуру управления циклом через ключи данной коллекции. Это демонстрируется в следующем примере:
<%
Dim sessitem
For each sessitem in Session.Contents
response.write(sessitem & " : " & Session.Contents(sessitem) & "
")
Next
%>
Коллекция Session.StaticObjects |
Коллекция StaticObjects содержит все объекты, созданные с помощью тэга
Синтакс:
Session.StaticObjects( ключ )
Параметры:
ключ
Название свойства, служащее для получения через него его значения.
Замечание:
Вы можете использовать структуру цикла через ключ для доступа к свойствам данной коллекции. Это демонстрирует следующий пример:
<%
Dim objprop
For each objprop in Session.StaticObjects
Response.write(objproperty & ":" & Session.StaticObjects(objprop) & "
")
Next
%>
Метод Session.Abandon |
Метод Abandon разрушает все объекты запомненные в объекте Session и высвобождаются занятые этим ресурсы. Если вы не вызываете данного метода, то сервер сам "разрушит" эти объекты когда истечет время "жизни" сессии, т.е. тайм аут.
Синтакс:
Session.Abandon
Замечание:
Когда метод Abandon вызывается, текущий объект Session ставится в очередь на удаление, но реально будет уничтожен только после того, как все команды данног скрипта будут обработаны.Это подразумевает, что можете еще воспользоватся обращением к переменным, запомненным в объекте Session в любом месте данной, но никакой другой страницы.
Пример:
Следующий пример демонстрирует вывод клиенту переменной Mary. Этот пример работает работает потому, что объект Session будет уничтожен только после обработки всего текущего скрипта.
<%
Session.Abandon
Session("MyName") = "Mary"
Response.Write(Session("MyName"))
%>Если вы обращаетесь к переменной MyName на другой странице, то она будет пуста.
Сервер создает новый объект Session когда вы открываете другую страницу вэб сервере (другой скрипт) после прерывания (Abandon) сессии. Вы можете запоминать переменные и объекты в этом новом объекте Session.
Свойство Session.CodePage |
Синтакс:
Session.CodePage ( =кодовая_страница )
Параметры
кодовая_страница
беззнаковое целое значение, представляющее корректный номер кодовой страницы для системы, в которой запущена ASP-машина.
Замечания:
Кодовая страница это набор символов. Различные языки могут использовать различные кодовые страницы. К примеру ANSI - кодовая страница 1252 используется для "Американского" английского языка и большинства европейских языков. Страница - 1251 - кириллица для русского языва в среде Windows.
Свойство Session.LCID |
Данное свойство определяет идентификатор расположения, который будет использован для вывода клиенту динамического содержимого.
Синтакс:
Session.LCID ( = LCID )
Параметры
LCID
корректный идентификатор месторасположениея.
Замечания:
Данное свойство указывает идентификатор расположения, который является стандартной мендународной аббривиатурой, которая уникальным образом идентифицирует одно предопределенное системой расположение.
Свойство Session.SessionID |
Свойство SessionID возвращает идентификатор сессии для данного пользователя. Каждая сессия имеет уникальный идентификатор, который создается сервером, когда сессия создается. Данный идентификатор возвращается как данные типа Long.
Синтакс:
Session.SessionID
Замечания:
Вы не должны использовать свойство SessionID для того, чтобы создать значение основного ключа в приложениях баз данных потому, что после рестарта Web-сервера, значения идентификатора сессии могут повторяться. Вместо этого вы можете использовать автоинкриментирующийся счетчик записей, к примеру IDENTITY, поддерживаемый MicrosoftR SQL server или в MicrosoftR Access - COUNTER.
Свойство Session.TimeOut |
Свойство TimeOut указывает на период времени в минутах, связанный с объектом Session для приложения. Если пользователь не обновить (refresh) или не запросить страницу у сервера в течение указанного периода времени - сессия будет завершена.
Синтакс:
Session.Timeout [ = минут ]
Параметры:
минут
указанное время в минутах, по истечении которого сервер закончит сессию автоматически.
Событие Session.Session_OnEnd |
Событие Session_OnEnd будет вызвано тогда,
когда сессия будет прервана принудительно или по
таймауту.
Синтакс:
Параметры:
язык_скрипта
Указывает на язык программирования, который будет использован для написания данной процедуры. Им может быть любой из поддерживаемых языков программирования - таких как VBScript или JScript. Если более одного события используют один и тотже язык программирования, то они могут быть объеденены между парой тэговПараметры:
язык_скрипта
Указывает на язык программирования, который будет использован для написания данной процедуры. Им может быть любой из поддерживаемых языков программирования - таких как VBScript или JScript. Если более одного события используют один и тотже язык программирования, то они могут быть объеденены между парой тэговПриведенный пример работает только с браузером, который поддерживает cookies. Браузер, не поддерживающий cookie не возвратит SessionID - идентификатор, сервер будет создавать новые сессии каждый раз, когда пользователь будет запрашивать страницы. И для каждого такого запроса сервер будет обрабатывать скрипт события Session_OnStart и перенаправлять пользователя на стартовую страницу. Если вы воспользуетесь примером ниже, то вам необходимо на начальной странице вашего приложения оповестить посетителей о том, что для просмотра вашего сервера необходим cookie-совместимый браузер.
Замечания:
Вы должны учитывать, что любой текст скрипта события Session_OnStart, следующий за методом Redirect выполняться не будет! Для того, что бы учитывать эту особенность вы должны поставить вызов метода Redirect последней командой вашего скрипта события. Это продемонстрировано в примере ниже:
В предыдущем примере метод Redirect вызывается последним в процедуре и следовательно все предшествующие ему команды будут корректно выполнены.Смотри также:
Session_OnEnd, Application_OnStart