Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

ВСТРОЕННЫЕ ОБЪЕКТЫ ASP

pony (pony@xakep.ru)

Спецвыпуск Xakep, номер #027, стр. 027-058-1


Я полагаю, что ты знаком с синтаксисом VBScript, знаешь, чем отличаются конструкции Do-Loop и While-Wend, и оператор ElseIf не ставит тебя в тупик. Ты пробовал писать asp-скрипты и знаешь, что программный блок должен быть заключен в теги <% и %>. Но у тебя нет опыта объектно-ориентированного программирования (ООП) и часто в скриптах лезут ошибки, смысл которых ты не можешь понять. Мы поможем тебе, старик :).

Основные проблемы возникают при использовании внутренних объектов ASP. Из общих принципов ООП известно, что для того чтобы воспользоваться каким-либо объектом, надо создать экземпляр объекта - как бы его копию. Для этого создается объектная переменная, которой и присваивается копия объекта. Процесс создания экземпляра объекта и называется инициализацией.

Внутренние объекты ASP не надо инициализировать, поэтому не всегда понятно, откуда они берутся. Эти объекты инициализируются при запуске сервера и живут своей жизнью до следующей перезагрузки. Они в любой момент готовы для использования на любой странице.

Внутренних объектов ASP всего 7 штук:

объект Response - выполняет пересылку информации клиенту,

объект Request - обрабатывает информацию, поступающую с запросом от клиента,

объект Server - обеспечивает взаимодействие с сервером,

объект Application - кэширует информацию о приложении,

объект Session - кэширует информацию о пользователе,

объект ObjectContext - используется для запуска транзакций и управления их выполнением,

объект ASPError - обеспечивает информацию об ошибках, возникающих в процессе обработки asp-сценария.

ОБЪЕКТ RESPONSE

Этот объект один из самых важных. Он позволяет из скрипта получить полный контроль над содержимым файла, пересылаемого клиенту. Не только к тому, что лежит между тегами <body> и </body>, но и к заголовку файла. Теперь обо всем по порядку.

Метод Response.Write позволяет выводить строку в любом месте документа. Например:

<% Response.Write "ASP - это круто!!!" %>

выведет в браузере строку "ASP - это круто!!!". Кстати, код:

<% str = "ASP - это круто!!!"

Response.Write str %>

выведет то же самое :).

Это самый распространенный метод. Несколько советов:

1) В циклах не надо накапливать результат выполнения операций (типа result = result & "еще какая-то строка"), надо сразу выводить результат методом Response.Write. Накопление конкретно отжирает память.

2) Для вывода кавычек используй двойные кавычки, например:

Response.Write "<table width=""100%"">". При этом в файл будет выведено <table width="100%">.

3) Используй вместе с Response.Write строковые константы (например, vbNewLine) и функию Chr(). Это позволит тебе создавать методом Response.Write читаемый html-код. В противном случае весь html-код, выведенный этим методом, будут размещен в одну строку.

Второй по важности метод - Response.Redirect. Команда <% Response.Redirect "http://www.microsoft.com" %> отправит тебя непосредственно в гости к дяде Биллу. При использовании команды, так же как и при модификации заголовка файла, следи, чтобы в начале страницы стояла команда <% Response.Buffer = true %>. Buffer является свойством объекта Response и определяет, будет ли кэшироваться файл до отправки его клиенту.

Содержание  Вперед на стр. 027-058-2