В опубликованной серии мы обсудили два объекта ASP: объект приложения и объект сеанса, поэтому мы можем получить доступ к коллекциям, методам, свойствам и событиям, предоставленным объектом приложения и объектом сеанса. Этот раздел будет изучать эти два объекта с точки зрения программирования.
· Создайте объект приложения при загрузке ASP DLL, а первый запрос на веб -страницу ASP отвечает. Этот объект предоставляет место для хранения для хранения переменных и объектов, доступных для всех веб -страниц, открытых всеми посетителями.
· Когда посетитель впервые запрашивает страницу ASP с сайта, создайте для него объект сеанса и остается действительным до периода времени ожидания по умолчанию (или периода времени ожидания, определяемый сценарием). Объект предоставляет место для хранения для хранения переменных и объектов, доступных только для веб -страниц, открываемых посетителем во время деятельности сеанса.
связь
1. Обзор членов объекта ASP Application
В этом разделе описывается сбор, методы и события объектов приложения (объекты приложения не имеют свойств). Объект сеанса (со свойствами) объясняется в следующем разделе. Затем мы продолжим изучать задачи, выполненные с этими объектами, более подробно объясняя, как работает каждый член каждого объекта.
1 Сбор объектов приложения
Объект приложения предоставляет две коллекции, которые можно использовать для доступа к переменным и объектам, хранящимся в глобальном пространстве приложений. Коллекция и описание следующие:
Сбор и описание объектов приложения таблицы
| собирать | иллюстрировать |
| Содержимое | Нет набора всех переменных (и их значений), хранящихся в объекте приложения, определенного с использованием элемента <object>. Включает ссылки на массивы вариантов и экземпляры объектов варианта |
| Статические объятия | Коллекция всех переменных (и их значений), хранящихся в объекте приложения, определенного с использованием элемента <object> |
2 Методы объектов применения
Метод объекта приложения позволяет удалять значения в глобальном пространстве приложений, управляя параллельным доступом к переменным в этом пространстве. Методы и инструкции показаны в следующей таблице:
Методы и описания объектов приложения таблицы
| метод | иллюстрировать |
| Содержание.remove (variable_Name) | Удалить переменную с именем wariable_name из коллекции Application.content |
| Содержание.removeall () | Удалить все переменные из приложения. |
| Замок() | Заблокируйте объект приложения, чтобы только текущая страница ASP могла получить доступ к контенту. Используется для обеспечения одновременных операций, выполняемых методами, которые позволяют двум пользователям читать и изменять значение одновременно, не повреждают контент |
| Разблокировать () | Разблокировать веб -страницы ASP на объектах приложения |
Обратите внимание, что переменные не могут быть удалены из коллекции Application.staticObjects во время выполнения.
3 События объектов приложения
Объект приложения предоставляет два события, которые запускаются, когда он запускается и заканчивается, как показано в следующей таблице:
События и описания объектов приложения таблицы
| событие | иллюстрировать |
| Onstart | Запускается при запуске ASP, прежде чем пользователь запрашивает выполнение веб -страницы, и прежде чем какой -либо пользователь создаст объект сеанса. Используется для инициализации переменных, создания объектов или запуска другого кода |
| Onend | Запускается, когда приложение ASP заканчивается. Происходит после окончания последнего сеанса пользователя, и весь код в событии Onend этого сеанса был выполнен. В конце концов, все переменные, присутствующие в приложении, отменены |
Обзор участника объекта ASP
В этом разделе рассказывается о всех членах объекта сеанса.
1 Сбор объектов сеанса
Объект сеанса содержит два набора, которые можно использовать для доступа к переменным и объектам, хранящимся в локальном пространстве сеанса пользователя. Эти коллекции и описания показаны в следующей таблице:
Установить и описание объектов сеанса таблицы
| собирать | иллюстрировать |
| Содержимое | Коллекция всех переменных и их значений, хранящихся в этом конкретном объекте сеанса, и эти переменные и значения не определены с использованием элементов <object>. Включает ссылки на массивы вариантов и экземпляры объектов варианта |
| Статические объятия | Коллекция всех переменных, хранящихся в этом объекте сеанса, определенной с помощью элемента <object> |
2 Характеристики объектов сеанса
Объект сеанса обеспечивает четыре свойства. Эти свойства и описания показаны в следующей таблице:
Таблица 3-7 Свойства и описания объектов сеанса
| свойство | иллюстрировать |
| Код | Читать/написать. Целое число. Определяет кодовую страницу для отображения содержимого страницы в браузере. Страницы кода являются числовыми значениями набора символов, и разные кодовые страницы могут использоваться на разных языках и местах. Например, Code ANSI Code Page 1252 используется на американском английском и большинстве европейских языков. Code Page 932 используется для японских символов |
| Lcid | Читать/написать. Целое число. Определяет идентификатор области страницы (LCID), отправленный в браузер. LCID - это международная стандартная аббревиатура, которая уникально идентифицирует регион. LCID также может использоваться в формате и других операторах, если есть дополнительный параметр LCID. LCID также может быть установлен в инструкции по обработке ASP <%& hellip;%> и имеет приоритет над настройками в атрибуте LCID сеанса. В этой главе содержится список инструкций по обработке ASP |
| SessionId | Только для чтения. Длинная форма. Возвращает идентификатор сеанса для этого сеанса, который генерируется сервером при создании сеанса. Только уникальный в течение срока службы родительского объекта приложения, поэтому его можно использовать, когда начинается новое приложение |
| Тайм -аут | Читать/написать. Целое число. Определите период времени ожидания за минуты для этого сеанса. Если пользователь не обновляет и не запросит веб -страницу в течение периода времени, сеанс заканчивается. Вы можете изменить его по мере необходимости на каждой веб -странице. Значение по умолчанию составляет 10 минут. На этот раз должно быть короче на участках с высоким использованием |
3 Методы объектов сеанса
Объект сеанса позволяет удалять указанные значения из пространства сеанса пользователя и завершает сеанс по мере необходимости. Методы и описания объекта Seesion показаны в следующей таблице:
Методы и описания объектов сеанса таблицы
| метод | иллюстрировать |
| Содержание.remove (variable_Name) | Удалить переменную с именем wariable_name из сеанса.content Collection |
| Содержание.removeall () | Удалить все переменные из сеанса. |
| Покидать() | Когда выполнение веб -страницы завершено, текущий сеанс пользователя закончится, а текущий объект сеанса недокументирован. Но даже после того, как метод вызван, переменные текущего сеанса на странице все еще можно получить. Когда пользователь запрашивает следующую страницу, будет запущено новое сеанс, и будет создан новый объект сеанса (если она существует) Обратите внимание, что переменные не могут быть удалены из коллекции Session.StaticObjects во время выполнения. |
4 События объектов сеанса
Объект сеанса предоставляет два события, которые запускаются при запуске и конце, как показано в таблице 3-9:
Таблица 3-9 События и описания объектов сеанса
| событие | иллюстрировать |
| Onstart | Запускается при запуске сеанса пользователя ASP, прежде чем будет выполнена веб -страница пользователя. Используется для инициализации переменных, создания объектов или запуска другого кода. |
| Onend | Запускается, когда заканчивается сеанс пользователя ASP. Начиная с последней страницы пользователя в приложение, событие запускается, если превышен период времени ожидания сеанса. Когда сеанс заканчивается, отмените все переменные в этом сеансе. Это событие также запускается при использовании метода Abandon для прекращения сеанса пользователя ASP в коде |
События с использованием приложения и сеанса
Объекты приложения и сеанса ASP отражают функции, которые не имеют других встроенных объектов ASP. Однако, как видно из предыдущей таблицы членов объекта, это события, связанные с сеансом ASP и работой приложения.
1 Обработчики событий для приложения и сеанса
Всякий раз, когда приложение или сеанс запускается или заканчивается, ASP запускает событие. Эти события могут быть обнаружены и отвечены путем написания обычного кода скрипта в специальном файле, называемом Global.ASA, расположенном в корневом каталоге приложения (для веб -сайта по умолчанию /inetPub /wwwroot каталог или в виде папки, определенной как реальное приложение). Этот файл может содержать один или несколько элементов HTML <Object>, которые используются для создания экземпляров компонентов, которые будут использоваться в приложении или сеансе пользователя.
Следующий код является примером файла Global.ASA. Мы сосредоточены только на элементе <object> и тех строках кода, которые начинаются с ключевого слова SET:
| <!- объявить экземпляр компонента ASPCounter С областью приложения на уровне //-> < Идентификатор объекта = aspcounter runat = server scope = приложение Progid = mswc.counters > </объект > <!- объявить экземпляр компонента AspContentLimk С областью на уровне сеанса //-> < Идентификатор объекта = aspContentLink Runat = Server Scope = Session Progid = mswc.nextlink> </объект > < Script Language = VBScript Runat = Server > Sub application_onstart () 'Создайте экземпляр записей ADO с применением на уровне приложения Установить Application (AdoConnection) = server.createObject (adodb.connection) Dim vararray (3) 'Создайте вариант массива и заполните его Vararray (0) = это Vararray (1) = вариант массивы Vararray (2) = хранится в Vararray (3) = объект приложения Application (variant_array) = vararray'tory в приложении Application (start_time) = cstr (теперь) 'хранить дату/время в качестве строки Application (vist_count) = 0 'Установите переменную счетчика в ноль Конец суб Sub application_onend () Установить приложение (AdoConnection) = ничего Конец суб Sub sesson_onstart () 'Создайте экземпляр компонента Adrotator с применением уровня сеанса SET SESSION (aspadrotator) = server.createObject (mswc.adrotator) Dim vararray (3) 'Создайте вариант Arry и заполните его Vararray (0) = это Vararray (1) = вариант массивы Vararray (2) = хранится в Vararray (3) = объект сеанса Session (variant_array) = vararray 'хранить его в сеансе Session (start_time) = cstr (теперь) 'хранить дату/время в качестве строки 'Мы можем получить доступ к содержимому запроса и ответа в session_onstart 'Обработчик событий для страницы, которая инициировала сеанс. «Разместите, что контекст страницы ASP доступен как этот. 'В качестве примера мы можем получить IP -адрес пользователя: Session (your_ip_address) = request.servervariables (remote_addr) Application.lock IntVisits = Application (VITED_COUNT) +1 Application (visit_count) = intvisits Application.unlock Конец суб Sub session_onend () SET SESSION (Aspadrotator) = ничего Конец суб </Сценарий > |
Поскольку этот файл Global.ASA используется на странице примеров в этой главе, необходимо будет поместить файл в корневой каталог веб -сайта или в каталог, настроенный в качестве виртуального приложения, и включить каталог других образцов файлов Полем
Читать и хранить значения
Обратите внимание на примере, как прочитать переменные приложения и сеанса, так же, как вы принимаете в сборку объектов запроса и ответа. Установите значения этих переменных:
| Application (variable_name) = variable_value Application (variable_name) = variable_array_variable_name SET APPLICE (variable_Name) = Object_Reference |
Получите значения этих переменных:
| variable_value = Application (variable_name) variant_array_variable = Application (variable_name) Set object_reference = application (variable_name) |
Конечно, тот же подход может быть принят для объектов сеанса.
Вы можете увидеть, как заблокировать и разблокировать объект приложения при обращении к процессору событий сеанса; Это не требуется при доступе к значениям в объектах приложения, используя код в событиях приложений. Это связано с тем, что в любом приложении существует только один экземпляр объекта приложения, а код его обработчика событий выполняется только тогда, когда нет активного сеанса пользователя.
Вы также можете увидеть, как реализован базовый счетчик сеанса пользователя. Вот переменная приложения vitive_count, которая автоматически увеличивается при запуске нового сеанса. Как правило, он не ограничивается просто сохранять значения в объектах приложения или сеанса. Например, веб -сайт веб -разработчика имеет соответствующий файл Global.asa на http://webdev.wrox.co.uk получены из коллекции запроса. Это обеспечивает базовый метод подсчета количества посетителей и собрать некоторую основную информацию о посетителях.