Серия лекций ASP (7) Использование компонентов и объектов
Автор:Eve Cole
Время обновления:2009-05-30 19:59:15
Компоненты ActiveX являются ключом к созданию мощных веб-приложений. Компоненты предоставляют объекты, которые используются в сценариях для выполнения задач. ASP также предоставляет встроенные объекты, которые можно использовать в сценариях. В этом разделе обсуждается, как использовать объекты, предоставляемые компонентами, а также встроенные объекты, предоставляемые непосредственно Active Server Pages.
О компонентах
Компонент ActiveX — это файл, содержащий код, выполняющий задачу или набор задач. Компоненты могут выполнять общие задачи, поэтому вам не придется создавать код для выполнения этих задач самостоятельно. Например, компонент тикера может отображать последние котировки акций на веб-странице. ASP поставляется с готовыми к использованию компонентами, такими как компонент доступа к базе данных. Получите дополнительные компоненты от сторонних разработчиков. Или вы можете написать свой собственный компонент.
Вы можете использовать компоненты в качестве основных строительных блоков для сценариев и веб-приложений. Просто знайте, как получить доступ к объекту, предоставляемому компонентом. Даже начинающий скриптер может писать скрипты, не понимая, как работают компоненты. Подводя итог, можно сказать, что компоненты позволяют вам писать мощные сценарии без обучения программированию.
Если вы разработчик веб-приложений, вы можете инкапсулировать бизнес-логику, написав компоненты. Например, вы можете написать компонент для расчета налога с продаж продукта. Этот компонент затем можно вызывать в сценариях, обрабатывающих заказы на продажу. Самостоятельный расчет налоговых ставок при обработке заказа позволяет обновлять только компонент, когда где-то меняется налог, без необходимости менять весь процесс обработки. Компоненты могут быть написаны на любом языке, поддерживающем объектную модель компонентов (COM), например C, C++, Java или Visual Basic. Если вы знакомы с COM-программированием, то компонент ActiveX — это сервер автоматизации. Для работы на веб-сервере компоненты ActiveX не могут иметь элементы графического пользовательского интерфейса, такие как функция MsgBox в Visual Basic.
Компоненты можно использовать повторно. После установки компонента на веб-сервере его можно вызвать из сценария ASP, приложения ISAPI, другого компонента на сервере или программы, написанной на другом COM-совместимом языке.
Компонент экземпляра, создающий объект компонента, представляет собой исполняемый код, содержащийся в динамической библиотеке (.dll) или исполняемом файле (.exe). Компонент может предоставлять один или несколько объектов, их методы и свойства. Чтобы использовать объект, предоставленный компонентом, создайте экземпляр объекта и присвойте этому новому экземпляру имя переменной. Экземпляры объектов можно создавать с помощью метода ASP Server.CreateObject. Затем используйте инструкции по присвоению переменных языка сценариев, чтобы присвоить имя экземпляру объекта. При создании экземпляра объекта необходимо указать зарегистрированное имя (PROGID) экземпляра. Для базовых компонентов, предоставляемых ASP, PROGID объекта можно получить на справочной странице.
Например, компонент Ad Rotator ASP циклически обрабатывает графические объявления. Компонент Ad Rotator предоставляет объект под названием Ad Rotator, PROGID которого — «MSWC.AdRotator». Чтобы создать экземпляр объекта Ad Rotator, используйте следующую команду:
VBScript:
<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>
JScript:
<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>
Если вы уже хорошо знакомы с VBScript или JScript, вы заметите, что в языке сценариев нет функций для создания новых экземпляров объектов, таких как CreateObject в VBScript или New в JScript. Вы должны использовать метод ASP Server.CreateObject, иначе ASP не сможет отслеживать использование объектов на языках сценариев.
Экземпляры объектов также можно создавать с помощью HTML-тега <OBJECT>. Вы должны указать значение сервера для атрибута RUNAT, а также указать группу атрибутов ID для имени переменной, которая будет использоваться в языке сценариев. Объект можно идентифицировать по регистрационному имени (PROGID) или регистрационному номеру (CLSID). В следующем примере создается экземпляр объекта Ad Rotator с использованием зарегистрированного имени (PROGID):
<OBJECT RUNAT=Идентификатор сервера=MyAd PROGID="MSWC.AdRotator"></OBJECT>
В следующем примере создается экземпляр объекта Ad Rotator с использованием регистрационного номера (CLSID):
<OBJECT RUNAT=Идентификатор сервера=MyAd
CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT>
Создание объекта из класса Java Компоненты ActiveX, написанные на языке Java, могут быть представлены как классы Java вместо DLL. Чтобы использовать Server.CreateObject для создания экземпляра объекта класса Java, класс необходимо зарегистрировать как COM-компонент с помощью программы Javareg. Затем вы можете использовать Server.CreateObject с PROGID или CLSID.
Если экземпляру объекта не требуется доступ к встроенным объектам ASP и участие в транзакциях, он может напрямую вызывать класс Java, используя более простой механизм, предоставляемый монитором Java. Для использования монитора Java необходимо использовать виртуальную машину Microsoft для Java 2.0 (входит в комплект поставки Internet Information Server и Personal Web Server).
Если вы хотите использовать монитор для создания экземпляра объекта, вы должны использовать команду VBScript или JScript GetObject и указать полное имя класса Java в форме java:имякласса. Следующий пример VBScript создает экземпляр объекта Java Date.
<%
Тусклая дата
Установить дату = GetObject("java:java.util.Date")
%>
<p> Дата: <%= date.toString() %>
Объекты, созданные путем вызова GetObject вместо Server.CreateObject, не могут получить доступ к встроенным объектам ASP и не могут участвовать в транзакциях.
Использование встроенных объектов ASP
ASP предоставляет встроенные объекты, выполняющие задачи. Например, объект Request хранит ссылки из таблиц HTML.
Вызов методов объекта Методы — это действия, которые можно выполнять с объектом или с его использованием. Общий синтаксис вызова метода:
Параметры объекта.Метод
Параметры варьируются от метода к методу.
Например, вы можете использовать метод Write встроенного объекта Response для отправки информации в браузер, выполнив следующие инструкции:
<% Response.Напишите «Hello World» %>
Обратите внимание, что некоторые скриптовые языки не поддерживают синтаксис Object.Method. Если используемый вами язык не поддерживает этот синтаксис, вам необходимо внести запись в реестр, чтобы использовать этот язык в качестве основного языка сценариев.
Настройка свойств объекта Свойства — это характерные значения, описывающие объект. Свойства определяют характеристики объекта (например, тип объекта) или состояние объекта (например, включен или отключен). Общий синтаксис:
Объект.Свойство
Значения свойств можно читать и устанавливать. Для некоторых объектов также можно добавить новые свойства.
Например, компонент Ad Rotator имеет свойство Border, которое определяет, имеет ли объявление рамку и ее толщину. Следующее выражение не указывает границу:
<%MyAds.Border = 0 %>
Вы можете использовать директиву вывода ASP для отображения текущих значений определенных свойств. Например, следующая команда вернет TRUE, если браузер все еще подключен к серверу:
<%= Response.IsClientConnected %>