Сейчас на сайте:
Пользователей: 0
Отсутствуют.
Роботов: 2
Googlebot, Yandex
Гостей: 73
Всех: 75
ВНИМАНИЕ! Конкурс по программированию!
Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.
Информация к новости
- Просмотров: 1807
- Автор: КазКиберГетик
Уроки ASP-технологий
Категория: WEB-программирование » ASP.NET
Объект Application
Теперь давайте рассмотрим объект Application. Он предназначен для хранения глобальных переменных ASP-приложения, то есть переменных, которые доступны каждому сеансу приложения. Эти переменные находятся в коллекции Contents, к которой обычно обращаются сокращенно. Например, запишем следующий код в файл default.asp.
| <% Application("name")="test" %> |
Затем создадим файл test.asp и наберем такой код:
| <% Response.Write Application("name") %> |
После этого исполним сценарий default.asp, а затем test.asp. Последний выведет строку test в окне браузера. Вообще, в какой бы сценарий приложения мы не вставили код test.asp, результат будет одним и тем же.
Объект Application предоставляет разработчикам два метода:
- Метод Lock
- Метод Unlock
Они предназначены для блокирования и разблокирования, соответственно, всего приложения. Например, чтобы избежать ситуации, когда в переменную уровня приложения записываются одновременно два значения, можно применить следующий код:
| <% Application.Lock Application(“MyVar”)=someValue Application.Unlock %> |
Кроме коллекций и свойств у объекта Application есть два события: Application_OnEnd и Application_OnStart, которые мы рассмотрим чуть позже.
Объект Session
Этот объект предназначен для управления сеансами. Он имеет четыре свойства:
- CodePage
- LCID
- SessionID
- TimeOut
Первые два свойства — это таблица кодировки и идентификатор локали. Их мы рассматривать не будем, так как они практически не используются.
Свойство SessionID доступно в режиме «только для чтения» и возвращает уникальный идентификатор сеанса. Использование:
| <% Response.Write Session.SessionID %> |
Свойство TimeOut отвечает за время, через которое движок ASP прервет сеанс и удалит всю связанную с ним информацию на сервере. Установка этого свойства не позволяет оставлять данные о конкретном пользователе на сервере после того, как он отключился. Принимает значения в минутах. Например:
| <% Session.Timeout = 10 %> |
Объект Session имеет один метод — Abandon, который позволяет принудительно прервать сеанс до истечения срока, указанного в свойстве TimeOut. Пример использования:
| <% Session.Abandon %> |
В объекте Session, как и в объекте Application, можно хранить данные. Для этого используются переменные уровня сессии. Например:
| <% Session(“Username”)=”petya” %> |
Кроме того, объект Session предоставляет разработчикам два события: Session_OnStart и Session_OnEnd, которые мы рассмотрим немного ниже.
Файл Global.asa
С чего начинается … нет, не Родина :-) — web-приложение? Ответ такой: с файла Global.asa. Он является главным файлом приложения. В этом файле могут существовать только следующие элементы:
- Четыре события: Application_OnStart, Application_OnEnd, Session_OnStart, Session_OnEnd;
- Тэги <OBJECT>, которые применяются для создания экземпляров ActiveX-компонентов.
- Специальные мета-тэги, которые применяются для подключения библиотеки типов DLL-компонентов.
Примечание: файл Global.asa не обязательно должен присутствовать в приложении, но если уж он задействован, то непременно должен быть одним на все приложение.
Итак, рассмотрим события, которые могут находится в файле global.asa.
Они возникают примерно в таком вот порядке:
- При первом вызове какого-либо сценария движок ASP пытается найти файл global.asa в корне вашего web-приложения, а в нем — обработчик события Application_OnStart.
- Если такой файл существует и есть обработчик события Application_OnStart, то код, содержащийся в нем, исполняется.
- Иначе движок пытается найти обработчик события Session_OnStart и исполнить код, содержащийся в нем.
- По завершении сеанса возникает событие Session_OnEnd.
Если разработчик изменил файл global.asa, а затем сохранил его, то приложение заканчивает работу и вызывается событие Application_OnEnd. Вообще, это событие возникает, когда приложение завершается (когда происходит перезапуск web-сервера, перезапуск компьютера и т. д.).
Создание экземпляров ActiveX-компонентов с помощью тэга <OBJECT> происходит следующим образом:
| <OBJECT RUNAT=Server SCOPE=Scope ID=Identifier PROGID="progID"|CLASSID="ClassID"> </OBJECT> |
Атрибут RUNAT всегда принимает значение Server. Атрибут SCOPE определяет область видимости компоненты (Application или Session). ID — это идентификатор, с помощью которого в дальнейшем можно будет получить доступ к объекту. Далее вы указываете PROGID или CLASSID, которые нужны, чтобы идентифицировать компонент.
Например, вы хотите создать экземпляр компонента BrowserCapabilities (он рассматривался выше), который был бы доступен каждому сеансу приложения. Для этого в файле global.asa необходимо написать примерно следующий код:
| <OBJECT RUNAT=Server SCOPE=Session ID=MyBrowser PROGID="MSWC.BrowserType"> </OBJECT> |
После этого вы получаете доступ к свойствам и методам данного компонента из любого сценария вашего приложения простым обращением к переменной MyBrowser. Например:
| <% Response.Write MyBrowser.cookies %> |
Также экземпляры ActiveX-компонентов можно создавать с помощью подключения библиотеки типов данной компоненты. Делается это следующим образом:
| <!--METADATA TYPE="TypeLib" FILE="file" UUID="uuid" VERSION="version" LCID="localeid" --> |
Атрибут TYPE всегда принимает значение TypeLib. В атрибуте FILE необходимо указать путь к библиотеке типов вашего компонента. UUID — это уникальный идентификатор этой библиотеки. Указывать можно либо FILE, либо UUID. VERSION — это, естественно, версия компоненты :-). Атрибут LCID отвечает за идентификатор локали.
Например, у вас есть библиотека динамической компоновки MyLib.dll, а у нее есть библиотека типов MyLib.lib. Вы можете подключить ее в файле global.asa вот таким способом:
| <!-- METADATA TYPE="TypeLib" FILE="Mylib.lib" --> |
Затем в любом сценарии приложения можно использовать этот компонент следующим образом:
| <% Dim MyVar Set MyVar = Server.CreateObject("Mylib.MyClass") … %> |
На сегодня это все.
Удачного дизайна!
Вернуться
Комментариев: 0
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.




