Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASP - Объект Session

Объект Session

Объект Session может быть использован для хранения сведений о сеансе конкретного пользователя. Переменные, хранимые в объекте Session, не уничтожаются при переходе пользователя с одной страницы приложения на другую; значения этих переменных сохраняются на протяжении всего времени сеанса пользователя.

Веб-сервер автоматически создает объект Session, когда веб-страница из приложения запрашивается пользователем, еще не начавшим сеанс. Сервер уничтожает объект Session по истечению срока действия сеанса или при завершении сеанса.

Наиболее часто объект Session используется для хранения предпочтений пользователя. Например, если пользователь показывает, что он не хочет просматривать графику, эти сведения могут быть сохранены в объекте Session. Дополнительные сведения об использовании объекта Session см. в подразделе Управление сеансами раздела «Приложения ASP».

Примечание.   Состояние сеанса сохраняется только для обозревателей, поддерживающих модули настройки.

Синтаксис

Session.семейство|свойство|метод

 

Семейства

Contents Содержит элементы, добавленные к сеансу командами сценария.
StaticObjects Содержит объекты, созданные с помощью тега <OBJECT> и имеющие сеанс областью определения.

Свойства

CodePage Кодовая страница, используемая для сопоставления символов.
LCID Локальный идентификатор.
SessionID Возвращает идентификатор сеанса для пользователя.
Timeout Время ожидания для состояния сеанса данного приложения (в минутах).

Методы

Abandon Этот метод уничтожает объект Session и освобождает его ресурсы.
Contents.Remove Этот метод удаляет элемент из семейства Contents.
Contents.RemoveAll Этот метод удаляет все элементы из семейства Contents.

События

Сценарии для всех перечисленных выше событий описываются в файле Global.asa.

Session_OnEnd
Session_OnStart

Дополнительные сведения об этих событиях и файле Global.asa см. в Справочнике Global.asa.

Примечания

Можно хранить значения в объекте Session. Сведения, хранимые в объекте Session, доступны во время сеанса и имеют сеанс в качестве области определения. Приведенный ниже сценарий демонстрирует хранение двух типов переменных.

<%

Session("username") = "Janine"

Session("age") = 24

%>

 

Однако если объект хранится в объекте Session и основным языком сценария является VBScript, необходимо использовать ключевое слово Set. Это иллюстрируется приведенным ниже сценарием.

<% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %>

 

На последующих веб-страницах можно использовать методы и свойства, присущие MyComponent.class1, используя приведенную ниже синтаксическую конструкцию.

<% Session("Obj1").MyMethod %>

 

Или извлекая локальную копию объекта и используя приведенный ниже фрагмент сценария.

<%

Set MyLocalObj1 = Session("Obj1")

MyLocalObj1.MyObjMethod

%>

 

Другой способ создания объекта, имеющего в качестве области определения приложение, состоит в использовании тегов <OBJECT> в файле Global.asa.

Встроенные объекты, однако, не могут быть сохранены в объекте Session. Например, каждая из приведенных ниже строк будет возвращать ошибку.

<%

Set Session("var1") = Session

Set Session("var2") = Request

Set Session("var3") = Response

Set Session("var4") = Server

Set Session("var5") = Application

%>

 

Перед сохранением объекта в объекте Session следует узнать потоковую модель, используемую им. Только объекты, имеющие двойную потоковую модель, могут быть сохранены в объекте Session, не замыкая сеанс в один поток. Дополнительные сведения см. в пакете SDK операционной системы.

Если массив хранится в объекте Session, не следует пытаться непосредственно изменить элементы хранимого массива. Например, следующий сценарий не будет работать:

<% Session("StoredArray")(3) = "new value" %>

 

Это происходит из-за того, что объект Session реализован как семейство. Элемент массива StoredArray(3) не получает нового значения. Вместо этого значение индексируется в семействе, перезаписывая любую информацию, хранящуюся в этом месте.

При хранении массива в объекте Session настоятельно рекомендуется извлекать копию массива перед извлечением или изменением любых элементов массива. Когда изменение массива закончено, следует снова сохранить массив в объекте Session, чтобы сохранить все внесенные изменения. Это показано в приведенном ниже примере:

---file1.asp---

<%

'Creating and initializing the array

Dim MyArray()

Redim MyArray(5)

MyArray(0) = "hello"

MyArray(1) = "some other string"

'Storing the array in the Session object.

Session("StoredArray") = MyArray

Response.Redirect("file2.asp")

%>

---file2.asp---

<%

'Retrieving the array from the Session Object

'and modifying its second element.

LocalArray = Session("StoredArray")

LocalArray(1) = " there"

'Printing out the string "hello there."

Response.Write(LocalArray(0)&LocalArray(1))

'Re-storing the array in the Session object.

'This overwrites the values in StoredArray with the new values.

Session("StoredArray") = LocalArray

%>

 

Пример

Приведенная ниже программа назначает строку MyName переменной сеанса name, назначает значение переменной сеанса year и назначает экземпляр компонента some.Obj переменной с именем myObj.

Session("name") = "MyName"

Session("year") = 96

Set Session("myObj") = Server.CreateObject("someObj")

 %>

 

Дополнительные сведения см. в разделе Управление сеансами.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог