Файл Global.asa
Файл Global.asa является необязательным файл, который может содержать объявления объектов, переменных и методов, которые могут быть доступны для каждой страницы в приложении ASP.
Все действительные сценарии браузера (JavaScript, VBScript, JScript, PerlScript, etc.) могут быть использованы в Global.asa.
Файл Global.asa могут содержать только следующее:
- события приложений
- события сеансов
- <объект> декларации
- TypeLibrary декларации
- директива #include
Note: Файл Global.asa должен храниться в корневом каталоге приложения ASP, и каждое приложение может иметь только один файл Global.asa.
События в Global.asa
В Global.asa вы можете сказать приложение и сессии объектов, что делать, когда приложение / сессия начинается, и что делать, когда приложение / завершения сеанса. Код для этого помещается в обработчики событий. Файл Global.asa может содержать четыре типа событий:
Application_OnStart - Происходит , когда первый пользователь вызывает первую страницу в приложении ASP. Это событие происходит после того, как веб-сервер будет перезапущен или после того, как файл Global.asa редактируется. "Session_OnStart" событие происходит сразу же после этого события.Session_OnStart - Это событие происходит каждый раз , когда новый пользователь запрашивает свою первую страницу в приложении ASP.
Session_OnEnd - Это событие происходит каждый раз , когда пользователь заканчивает сеанс. Пользовательская сессия заканчивается после того, как страница не была запрошена пользователем в течение определенного времени (by default this is 20 minutes) .
Application_OnEnd - Это событие происходит после того, как последний пользователь закончил сеанс. Как правило, это событие происходит, когда останавливается веб-сервер. Эта процедура используется для очистки настроек после приложения останавливается, как удалять записи или записывать информацию в текстовые файлы.
Файл Global.asa может выглядеть следующим образом:
<script language="vbscript" runat="server">
sub Application_OnStart
' Note: Потому что мы не можем использовать разделители сценариев ASP (<% and %>) , чтобы вставить скрипты в файле Global.asa, мы помещаем подпрограммы внутри HTML <script> элемент.
<объект> Объявления
Можно создавать объекты с сессией или сферой применения в Global.asa с помощью <object> тега.
Note: <object> тег должен быть вне <script> тегов!
Синтаксис
<object runat="server" scope=" параметр Описание scope Устанавливает объем объекта (either Session or Application) id Указывает уникальный идентификатор для объекта ProgID Идентификатор, связанный с идентификатором класса. Формат для ProgID является [Поставщик.] Компонент [.Version] Либо ProgID или ClassID должен быть указан.
ClassID Указывает уникальный идентификатор для объекта COM класса. Либо ProgID или ClassID должен быть указан.
Примеры
Первый пример создает объект области сеанса с именем "MyAd" с помощью параметра ProgID:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object> Второй пример создает объект области приложения под названием "MyConnection" с помощью параметра ClassID:
<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object> Объекты, объявленные в файле Global.asa могут быть использованы любым сценарием в приложении:
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object>
You could reference the object "MyAd" from any page in the ASP application:
SOME .ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary Объявления
TypeLibrary является контейнером для содержимого файла DLL, соответствующих COM-объекта. В том числе призыв к TypeLibrary в файле Global.asa, константы объекта COM могут быть доступны, и ошибки могут быть лучше, сообщает код ASP. Если веб-приложение использует COM-объекты, заявившие тип данных в библиотеках типов, можно объявить библиотеки типов в Global.asa.
Синтаксис
<!--METADATA TYPE="TypeLib"
file=" параметр Описание file Задает абсолютный путь к библиотеке типов. Либо параметр файла или UUID параметр требуется
uuid Указывает уникальный идентификатор для библиотеки типов. Либо параметр файла или UUID параметр требуется
version Необязательный. Используется для выбора версии. Если запрашиваемая версия не найдена, то самая последняя версия используется lcid Необязательный. Локальный идентификатор, которые будут использоваться для библиотеки типов Значения ошибок
Сервер может возвращать одно из следующих сообщений об ошибке:
Код ошибки Описание ASP 0222 Недопустимый тип библиотеки спецификация ASP 0223 Тип библиотеки не найдены ASP 0224 Тип библиотека не может быть загружена ASP 0225 Библиотека Типа не может быть обернута
Note: МЕТАДАННЫЕ метки могут появляться в любом месте в файле Global.asa (both inside and outside <script> tags) , так (both inside and outside <script> tags) . Тем не менее, рекомендуется МЕТАДАННЫХ теги появляются в верхней части файла Global.asa.
ограничения
Ограничения на то, что вы можете включить в файл Global.asa:
- Вы не можете отобразить текст, написанный в файле Global.asa. Этот файл не может отображать информацию
- Вы можете использовать только объекты сервера и приложений в подпрограммах Application_OnStart и Application_OnEnd. В подпрограмме Session_OnEnd, вы можете использовать сервер, приложение и объекты Session. В подпрограмме Session_OnStart вы можете использовать любой встроенный объект
Как использовать Подпрограммы
Global.asa часто используется для инициализации переменных.
В приведенном ниже примере показано, как определить точное время, когда посетитель первый прибывающий на веб-сайте. Время хранится в переменной сеанса с именем "started" , а значение из "started" переменная может быть доступна из любой страницы ASP в приложении:
<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script> Global.asa также может быть использован для контроля доступа к странице.
В приведенном ниже примере показано , как перенаправить каждого нового посетителя на другую страницу, в этом случае на странице под названием "newpage.asp" :
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script> И вы можете включить функции в файле Global.asa.
В приведенном ниже примере подпрограммы Application_OnStart происходит при запуске веб-сервера. Затем подпрограмма Application_OnStart вызывает другую подпрограмму с именем "getcustomers" . "getcustomers" подпрограмма открывает базу данных и извлекает запись набора из "customers" таблицы. Набор записи присваивается массив, где можно получить доступ из любой страницы ASP без запросов к базе данных:
<script language="vbscript" runat="server">
sub Application_OnStart
getcustomers
end sub
sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub
</script>
Пример Global.asa
В этом примере мы создадим файл Global.asa, который подсчитывает количество посетителей.
- Application_OnStart устанавливает переменную Application "visitors" 0 при запуске сервера
- Подпрограмма Session_OnStart прибавляет к переменным "visitors" каждый раз , когда новый посетитель приходит
- Подпрограмма Session_OnEnd вычитает один из "visitors" каждый раз , когда эта подпрограмма запускается
Файл Global.asa:
<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
End Sub
Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub
</script> Для того, чтобы отобразить количество посетителей в файле ASP:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%>
online now!</p>
</body>
</html>