Обзор объектов и компонентов ASP
Механизм активных серверных страниц включает в себя пять встроенных объектов и ряд серверных компонентов, обеспечивающих серверные страницы всей функциональностью, c возможностью использования в сценариях, выполняемых на сервере. Рассмотрим сначала встроенные объекты. Эти объекты перечислены в таблице.
Объект Application используется для обмена информацией между пользователями данного приложения. Этот объект имеет два метода: Lock и Unlock - и может реагировать на два события - OnStart и OnEnd. Метод Lock блокирует изменения свойства объекта Application, метод Unlock отменяет данный запрет. Объект Application может хранить переменные. Использование объектов OnStart и OnEndтребует размещения соответствующего программного кода в глобальном файле GLOBAL.ASA.
Объект | Назначение |
Application / Приложение | Используется для обмена информацией между пользователями данного приложения. |
Request / Запрос | Используется для получения значений параметров запроса, посланного клиентом. |
Response / Ответ | Используется для посылки информации клиенту. |
Server / Сервер | Обеспечивает доступ к методам и свойствам сервера. |
Session / Сеанс | Используется для хранения информации в течение сеанса. |
Объект Request содержит только один тип атрибутов - коллекция:
Атрибут | Описание |
ClientCertificate | Возвращает значения, хранящиеся в клиентском сертификате, посланном на сервер. |
Cookies | Возвращает cookie-значения , посланные в HTTP-запросе. |
Form | Возвращает значения элементов формы, посланные на сервер. |
QueryString | Возвращает значения строки запроса, посланной в URL на сервер. |
ServerVariables | Возвращает значения серверных переменных. |
Объект Response используется для посылки информации клиенту. Рассмотрим набор атрибутов объекта Response:
Тип атрибута | Атрибут | Описание |
Коллекция | Cookies | Позволяет установить cookie-значения. |
Свойство | Buffer | Показывает, забуферизирована ли выходная HTML-страница. |
Свойство | ContentType | Определяет тип HTTP-содержания для ответа клиенту. |
Свойство | Expires | Определяет временную задержку перед кэшированием страницы после окончания сеанса связи. |
Свойство | ExpiresAbsolute | Определяет дату/время кэширования страницы после окончания сеанса связи. |
Свойство | Status | Значение строки состояния, возвращаемой сервером. |
Метод | AddHeader | Устанавливает HTML-заголовок. |
Метод | AppendToLog | Добавляет строку в конец журнала изменений сервера |
Метод | BinaryWrite | Записывает в выходной поток HTTP без перевода в символы. |
Метод | Clear | Стирает любой выходной буфер HTML. |
Метод | End | Останавливает процесс выполнения ASP и возвращает текущие данные. |
Метод | Flush | Немедленно посылает клиенту данные из выходного буфера. |
Метод | Redirect | Служит для переадресации на другую станцию, заданную в формате URL. |
Метод | Write | Записывает строку данных в выходной поток HTTP. |
Объект Server обеспечивает доступ к методам и свойствам сервера. Он обладает четырьмя методами: CreateObject, HTMLEncode, MapPath и URLEncode. Метод CreateObject служит для создания экземпляров серверных компонентов. Метод HTMLEncode используется для вывода на экран тегов языка HTML. Метод MapPath предназначен для преобразования относительных или виртуальных маршрутов в каталоги на сервере. Метод URLEncodeслужит для преобразования адресов в формате URL.
Объект Session используется для хранения переменных в течение одного сеанса работы с сервером. Данный объект включает следующие атрибуты:
Тип атрибута | Атрибут | Описание |
Свойство | SessionID | Возвращает идентификатор сеанса для пользователя. |
Свойство | Timeout | Определяет период простоя состояния сеанса для приложения (в минутах) |
Метод | Abandon | Уничтожает объект Session и освобождает его источник. |
Событие | Session_onStart | Это событие активизируется в начале сеанса. |
Событие | Session_onEnd | Это событие активизируется в конце сеанса. |
Как было сказано выше, помимо встроенных объектов можно использовать серверные компоненты. Рассмотрим их основные характеристики:
Название компоненты | Описание |
AdRotator | Используется для замены изображений или видеороликов по заданному сценарию при каждом обращении на сервер. |
BrowserCapabilities | Используется для получения различной информации о клиентском броузере. |
DatabaseAccess | Обеспечивает доступ к базе данных и использует компонент ActiveXDataObjects (ADO). |
ContentLinking | Применяется для управления списком URL-адресов, которые являются ссылками на страницы, расположенные на Web-узле. |
FileAccess | Обеспечивает доступ к хранимым на сервере файлам. |
В рамках активных серверных страниц поддерживаются специальные включаемые файлы - Server-SideIncludes (SSI). Для этого используется специальная директива #INCLUDE, размещаемая в ASP-файле. Обычно она выглядит так:
<!- #INCLUDEVIRTUAL="/scripts/samples/foo.asp" ->
и указывает на то, что к данному ASP-файлу подключается файл foo.asp, который находится в виртуальном каталоге сервера (опция VIRTUAL) /scripts/samples/. Как правило, во включаемых файлах размещается код, общий для всех страниц. Это может быть сборник подпрограмм, выполняемых на большинстве серверных страниц.
Встроенные объекты
Как было сказано выше существует пять встроенных объектов, используемых в программах сценариев: Application, Request, Response, Server иSession.
Объект Application служит для обмена информацией между пользователями данного приложения. Например, можно реализовать простой счетчик обращений к серверу:
<%
Application.Lock
Application ("HitCount") = Application("HitCount") + 1
Application.Unlock
%>
Методы Lock и Unlock используются для блокирования изменений свойств объекта и для отмены этого запрета соответственно. Также объект Application может реагировать на два события - OnStart и OnEnd. Эти методы используются путем написания соответствующего кода в глобальном файле GLOBAL.ASA. Об этом будет рассказано в разделе "Глобальный файл".
Рассмотрим использование объекта Request на примере традиционной задачи - формы, заполняемой пользователем. Для начала необходимо создать форму. В качестве значения атрибута ACTION тега <FORM> нужно указать имя ASP-файла, например, formdemo.asp, и установить метод передачи данных POST. Пусть форма состоит из четырех текстовых полей ввода с именами UserName, UserAddress, UserEMail и UserComm. Пользователь заполняет форму и нажатием кнопки Submit отсылает ее на сервер. Что происходит на сервере? Получая команду SUBMIT, объект Request готов к обработке полей формы, то есть к отображению содержимого полей формы, сохранению их в файле или базе данных. Для отображения полей записи файл formdemo.asp может выглядеть следующим образом:
<HTML>
<BODYBGCOLOR=greenTEXT=white>
<%IfRequest.Form("UserName")= "" Then %>
<H4>
Форма заполнена некорректно.
Для исправления нажмите кнопку Back.
</H4>
<%Else%>
Получена следующая информация:<BR>
<PFONTSIZE=3>
Имя: <% =Request.Form("UserName") %><BR>
Адрес: <% =Request.Form("UserAddress") %><BR>
E-Mail: <% =Request.Form("UserEMail") %><BR>
Комментарии:<% =Request.Form("UserComm") %><BR>
</P>
<%EndIf%>
</BODY>
</HTML>
Существует ряд других методов объекта Request, на которые можно обратить внимание. Например с помощью коллекции ServerVariables можно получать доступ к серверным переменным:
'адрес, с которого пришел запрос
<%Response.WriteRequest.ServerVariables("REMOTE_ADDR")%>
'поддерживаемые клиентом языки
<%Response.WriteRequest.ServerVariables("HTTP_ACCEPT_LANGUAGE")%>
И еще один полезный пример. В нем показано, как можно получить все посланные пользователем значения полей формы:
<% ForEachxInRequest.Form %>
Request.Form(<% =x %> = <% =Request.Form(x) %> <BR>
<% Nextx %>
Объект Responseиспользуется для посылки информации пользователю. Метод Redirect этого объекта служит для переключения на другую страницу, как локальную, так и удаленную, адрес которой задается в формате URL:
<% Response.Redirect ("URL") %>
Метод Write является одним из базовых методов объекта Response. С его помощью информация посылается непосредственно клиенту. Например, если мы хотим вывести текущие дату и время, можно использовать следующий код:
<% Response.Write "Локальное время: <B>" & Now & "</B> %>
Объект Serverимеет четыре метода: CreateObject, HTMLEncode, MapPath и URLEncode. Метод CreateObject служит для создания экземпляров серверных компонентов. Примеры использования рассматриваются ниже. Метод HTMLEncode используется для вывода на экран тегов языка HTML. Например, вызов этого метода:
<%
Response.WriteServer.HTMLEncode("Для выделения текста используются теги <B> и </B>")
%>
приведет к появлению следующего текста в окне броузера:
Для выделения текста используются теги <B> и </B>
При этом, если посмотреть на исходный текст, то можно увидеть, что вместо тегов используются специальные символы:
Для выделения текста используются теги <B> и </Bgt;
Метод MapPath предназначен для преобразования относительных и виртуальных маршрутов в каталоги на сервере. Вот пример использования этого метода:
LogFile=Server.MapPath ("/Login") & "\input\logfile.txt"
SetOutStreamFileObject.CreаteTextFile (Logfile, True, False)
Метод URLEncode предназначен для преобразования адресов в формате URL. Например, вызов этого метода:
<%
Response.WriteServer.URLEncode("www.cpress.ru")
%>
приведет к появлению в окне броузера следующей строчки:
www%2Ecpress%2Eru
С помощью свойства ScriptTimeout объекта Server можно задать время выполнения сценария.
Объект Session используется для хранения переменных в течение одной сессии работы с сервером. Методы для обработки событий OnStart и OnEnd помещаются в глобальный файл GLOBAL.ASA. Соответствующие примеры использования указаны в разделе "Глобальный файл".
Дата добавления: 2015-12-26; просмотров: 1083;