В предыдущей статье автор подробно представил, как использовать встроенный ASP-ответ объект.
В дополнение к объектам, используемым для отправки, получения и обработки данных, существуют также некоторые очень практичные объекты, представляющие приложения Active Server и отдельную информацию пользователя в ASP.
Давайте сначала посмотрим на объект приложения. Все файлы .asp в одном и том же виртуальном каталоге и его подкаталогах составляют приложение ASP. Вместо использования объектов приложения мы можем поделиться информацией между всеми пользователями данного приложения и постоянно сохранять данные во время работы сервера. Кроме того, у объекта приложения также есть методы контроля доступа к данным и событиям на уровне приложения, которые можно использовать для запуска процесса, когда приложение запускается и останавливается.
Давайте узнаем об объектах приложения вместе.
1. Атрибуты
Хотя объект приложения не обладает встроенными свойствами, мы можем установить пользовательские свойства, используя следующий синтаксис, который также можно назвать коллекциями.
Приложение (свойство/имя коллекции) = значение
Мы можем объявить и создавать свойства объекта приложения, используя следующий сценарий.
< %
Приложение (myvar) = Привет
Установить приложение (myobj) = server.createObject (myComponent)
%>
Как только мы назначаем свойства объекта приложения, он сохраняется до тех пор, пока служба веб -сервера не будет выключена, чтобы приложение остановилось. Поскольку значения, хранящиеся в объекте приложения, могут быть прочитаны всеми пользователями приложения, свойства объекта приложения особенно подходят для передачи информации между пользователями приложения.2. Метод
Объекты приложения имеют два метода, оба из которых используются для обработки нескольких пользователей, написанных данных, хранящиеся в приложении
1. Метод блокировки запрещает другим клиентам изменять свойства объекта приложения.
Метод блокировки не позволяет другим клиентам изменять переменные, хранящиеся в объекте приложения, чтобы гарантировать, что только один клиент может изменять и получить доступ к переменным приложения одновременно. Если пользователь явно не вызывает метод разблокировки, сервер разблокирует объект приложения после того, как файл .asp заканчивается или время.
Давайте посмотрим на следующую программу, которая использует приложение для записи количества доступа к странице:< %
Dim umvisitsnumvisits = 0
Application.lockapplication (numvisits) = Application (numvisits) + 1
Application.unlock
%>
Добро пожаловать на эту страницу, вы являетесь посетителем < %= Application (Numvisits) %> на этой странице!
Сохраните приведенный выше скрипт в вашем файле .asp и легко добавьте счетчик на вашу страницу.
2. В отличие от метода блокировки, метод разблокировки позволяет другим клиентам изменять свойства объекта приложения.
В приведенном выше примере в приведенном выше примере метод разблокировки разблокирует объект, чтобы следующий клиент мог увеличить значение numvisits.
III
1. Application_onstart
Событие Application_onstart происходит перед первым созданием нового сеанса (то есть событие session_onstart). Событие Application_onstart запускается при запуске веб -сервера и позволяет запросам в файлы, содержащиеся в приложении. Обработка события Application_onstart должна быть записана в файле Global.asa.Синтаксис события Application_onstart заключается в следующем:
<Script language = scriptlanguage runat = server>
Sub Application_onstart.
Конец суб
< /Script>
2. Applicati
on_onend
Событие Application_onend происходит после события Session_onend, когда приложение выходит.
Давайте посмотрим на некоторые вещи, на которые вы должны обратить внимание при использовании объектов приложения.
Встроенные объекты ASP не могут храниться в объектах приложения. Например, каждая строка ниже возвращает ошибку.
< %
Установить приложение (var1) = сеанс
Установить приложение (var2) = запрос
Установить приложение (var3) = ответ
Установить приложение (var4) = сервер
Установить приложение (var5) = приложение
Установить приложение (var6) = objectContext
%>
Если вы храните массив в объекте приложения, не изменяйте элементы, хранящиеся в массиве напрямую. Например, следующий сценарий не может работать.
< % Приложение (StoredArray) (3) = Новое значение %>
Это потому, что объект приложения реализован как коллекция. Массив элемента Storedarray (3) Не было получено нового назначения. Это значение будет включено в сбор объектов приложения и будет перезаписать любую информацию, ранее хранящуюся в этом месте. Рекомендуется получить копию массива перед тем, как получить или изменять объекты в массиве при хранении массива в объекте приложения. При работе на массиве вы должны хранить все массивы в объекте приложения, чтобы любые изменения, которые вы вносят, будут храниться. Следующий сценарий демонстрирует это.
--- asp8a.asp ---
< %
Dim myarray ()
Redim myarray (5)
Myarray (0) = Привет
Myarray (1) = какая -то другая строка
Application.lock
Приложение (StoredArray) = myarray
Application.unlock
Response.redirect asp8b.asp
%>
--- asp8b.asp ---
< %
LocalArray = Приложение (StoreDarray)
LocalArray (1) = там
Response.write localarray (0) и localarray (1)
Application.lock
Приложение (StoredArray) = LocalArray
Application.unlock
%>
Другим очень практичным встроенным объектом ASP, который имеет аналогичные функции с объектами приложения, является сеанс. Мы можем использовать объект сеанса для хранения информации, необходимой для конкретного сеанса пользователя. Когда пользователь прыгает между страницами приложения, переменные, хранящиеся в объекте сеанса, не очищаются, и эти переменные всегда существуют, когда пользователь обращается к странице в приложении. Когда пользователь запрашивает веб -страницу из приложения, если у пользователя не было сеанса, веб -сервер автоматически создаст объект сеанса. Когда сеанс истекает или заброшен, сервер завершает сеанс.
Объекты сеанса на сервере можно управлять, отправив уникальные файлы cookie в клиентскую программу. Когда пользователь запрашивает страницу в приложении ASP в первый раз, ASP необходимо проверить информацию о заголовке HTTP, чтобы увидеть, есть ли в сообщении файл cookie с именем AspsessionId. Глобально уникальное значение для сеанса и отправьте это значение клиенту как значение нового файла cookie AspsessionId. Наиболее распространенной функцией объекта сеанса является хранение пользовательских предпочтений. Например, если пользователь указывает, что он не любит просматривать графику, он может хранить информацию в объекте сеанса. Кроме того, он часто используется в программах, которые идентифицируют клиентов. Следует отметить, что статус сеанса сохраняется только в браузерах, которые поддерживают файлы cookie, и если клиент отключает опцию cookie, сеанс не будет работать.
1. Атрибуты
1. SessionId
Сеса
Свойство Sionid возвращает идентификацию сеанса пользователя. При создании сеанса сервер генерирует отдельную идентичность для каждого сеанса. Идентификатор сеанса возвращается в виде удлиненного типа данных. Во многих случаях SessionID может использоваться для статистики регистрации веб -страниц.
2. Тайм -аут
Свойство тайм -аута указывает ограничение временного времени для объекта сеанса приложения за минуты. Если пользователь не обновляет и не запросит веб -страницу в течение этого периода времени, сеанс завершится.
2. Метод
Существует только один метод для объекта сеанса, который остается. Если вы не вызовуте метод AFDON, сервер удалит эти объекты после того, как сеанс Когда сервер завершил обработку текущей страницы, в следующем примере выпускается состояние сеанса.
< %Session.abandon %>
III
Объект сеанса имеет два события, которые можно использовать, когда объект сеанса запускается и выпущен.
1. Событие SESSION_ONSTART происходит, когда сервер создает новый сеанс. Сервер обрабатывает скрипт перед выполнением запрошенной страницы. Событие session_onstart - лучшее время для установки переменных сеанса, потому что они устанавливаются перед доступом к любым страницам.
Хотя объект сеанса остается, когда событие session_onstart содержит вызов метода перенаправления или конечного, сервер прекращает обработку файла Global.asa и запускает скрипт в файле, который запускает событие session_onstart.
Чтобы убедиться, что пользователь всегда запускает сеанс при открытии конкретной веб -страницы, метод перенаправления можно вызвать в событии Session_onstart. Когда пользователь входит в приложение, сервер создает сеанс для пользователя и обрабатывает скрипт события session_onstart. Вы можете включить сценарий в этом событии, чтобы проверить, является ли страница, открываемая пользователем, является страницей запуска, и если нет, указать пользователю позвонить в метод ответа. Redirect для запуска веб -страницы. Процедура заключается в следующем:
<Script runat = language = vbscript>
Sub session_onstart
startPage = /myApp/starthere.asp
CurrentPage = request.servervariables (script_name)
Если strComp (CurrentPage, StartPage, 1) Then
Response.redirect (Startpage)
конец, если
Конец суб
< /Script>
Приведенные выше программы могут работать только в браузерах, которые поддерживают файлы cookie. Поскольку браузеры, которые не поддерживают файлы cookie, не могут возвращать файлы cookie SessionId, сервер создает новый сеанс всякий раз, когда пользователь запрашивает веб -страницу. Таким образом, для каждого запрашивающего сервера будет обработан скрипт session_onstart, а пользователь будет перенаправлен на страницу запуска.
2. Событие session_onend происходит или истекло во время сеанса.
Что следует отметить об использовании объектов сеанса.
Сессия может быть запущена следующими тремя способами:
1. Новый пользователь запрашивает доступ к URL -адресу, который идентифицирует файл .asp в приложении, а файл Global.asa приложения содержит процесс session_onstart.
2. Пользователь хранит значение в объекте сеанса.
3. Пользователь запросил файл .asp приложения, а файл приложения Global.asa использует тег <object> для создания экземпляра объекта с объемом сеанса.
Если пользователь не запрашивает и не обновляет какие -либо страницы в приложении в течение указанного времени, сеанс автоматически закончится. Значение по умолчанию за этот период составляет 20 минут. Вы можете изменить настройки ограничения тайм -аута по умолчанию для приложения, установив свойство тайм -аута сеанса на странице свойств «Параметры приложения» в интернет -сервисной службе. Это значение должно быть установлено в соответствии с требованиями вашего веб -приложения и пространством памяти сервера. Например, если вы хотите, чтобы пользователи, которые хотят просмотреть ваше веб -приложение, оставаться на каждой странице всего на несколько минут, вы должны сократить значение тайм -аута по умолчанию для вашего сеанса. Чрезмерно длительное значение тайм -аута сеанса приведет к слишком много открытых сеансов и истощению ресурсов памяти вашего сервера. Для конкретного сеанса, если вы хотите установить значение тайм -аута, которое меньше значения тайм -аута по умолчанию, вы можете установить объект сеанса
Тайм -аут. Например, следующий скрипт устанавливает значение тайм -аута на 5 минут.
< %Session.timeout = 5 %>
Конечно, вы также можете установить значение тайм -аута, больше, чем настройка по умолчанию. Вы также можете явно положить конец сеансу с помощью метода Abandon объекта сеанса. Например, предоставьте кнопку выхода в таблице, установив параметр действия кнопки на URL -адрес файла .asp, содержащий следующие команды.
< %Session.abandon %>
Сегодня мы выучили два встроенных объекта, которые часто используют ASP на веб-страницах, особенно на веб-BBS или в чате. . Пожалуйста, обратите внимание на восемнадцать боевых искусств динамического дизайна веб-сайта-ASP (9).