Информационные технологииStfw.Ru 🔍

Описание объекта Session

🕛 26.09.2006, 15:16

Вы можете использовать данный объект для хранения информации о (и для) пользовательских сессий. Переменные, хранящиеся в объекте 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

ASP   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉