Создание HTTP-ответа
(Продолжительность занятия 15 минут)
Определив, что именно пользователь запрашивает в HTTP-запросе, Вы можете вернуть ему необходимую информацию с помощью свойств и методов объекта Response. На этом занятии Вы узнаете, как пользоваться объектом Response для создания ответа на HTTP-запрос.
Изучив материал этого занятия,
Вы сможете:
- перечислить и описать общие свойства и методы объекта Response;
- используя метод Write
объекта Response, добавлять текст в HTTP-ответ; - использовать метод Redirect объекта Response для перехода на другую Web-страницу;
- буферизировать ответ
Объект Response
Объект Response позволяет манипулировать информацией, передаваемой пользователю в виде HTTP-ответа.
Свойства и методы
Объект Response снабжен свойствами и методами, предназначенными для отправки информации пользователю. Некоторые свойства объекта Response вкратце описаны в приведенной ниже таблице.
Свойство |
Описание |
Buffer | Указывает, буферизован ли ответ |
Expires | Указывает, как долго страница может храниться в кэше программы просмотра |
ExpiresAbsolute | Указывает дату и время, когда страница должна быть удалена из кэша программы просмотра (т.е. когда она будет считаться устаревшей) |
В следующей таблице перечислены некоторые методы объекта Response.
Метод |
Описание |
Clear | Очищает любые буферизованные ответы |
End | Останавливает обработку Web-страницы и возвращает информацию, полученную на этот момент |
Flush | Немедленно отправляет буферизованный ответ |
Redirect | Посылает пользователю сообщение о переадресовке, которое направит программу просмотра по другому URL |
Write | Записывает значение переменной в виде строки в текущий HTTP-ответ |
Объект Response также содержит набор Cookies, который Вы можете использовать для установки значения агента.
Синтаксис объекта Response
Синтаксис Для свойств и методов объекта Response применяется следующий синтаксис:
Response.свойство метод
Пример Здесь свойству
Expires объекта Response присваивается значение 0 — содержимое ответа,
возвращенного пользователю, будет считаться устаревшим сразу же после отправки:
<% Response.Expires = 0 %>
Если пользователь возвратится на эту Web-страницу, Web-сервер обновит ее содержимое перед отображением.
Метод Write
Метод Write добавляет текст в HTTP-ответ. Синтаксис Синтаксис метода Write таков:
Response.Write вариант
Здесь вариант — это любой тип данных (в том числе символы, строки и целые числа), который поддерживается выбранным по умолчанию языком создания
сценариев.
Вариант не может содержать комбинацию символов %>, так как она обозна-чает конец сценария. Если это необходимо, воспользуйтесь escape-последователь-ностью %\>, которую Web-сервер преобразует при обработке сценария.
Примечание Если в качестве
языка создания сценариев по умолчанию Вы при-меняете VBScript, вариант
не может содержать более 1 022 символов.
Пример Здесь метод
Write используется в цикле для вывода значений каждого стандартного элемента
управления HTML формы, присланной в HTTP-запросе:
<%For Each Item In Request.Form
Response.Write Item
Next %>
Пример Здесь тэг HTML
добавляется на Web-страницу. Строка, возвращаемая методом Write, не может
содержать символы %> в тэге HTML, поэтому вместо них используется escape-последовательность
%\>:
<% Response.Write "<TABLE WIDTH = 100%\>" %>
Метод Redirect
Метод Redirect применяется для переадресации на другую Web-страницу.
В качестве аргумента метода Redirect объекта Response задается указатель ресурса новой страницы.
Синтаксис Для метода Redirect применяется следующий синтаксис:
Response.Redirect URL
Здесь URL — абсолютный или относительный указатель ресурса, куда перенаправляется программа просмотра.
Примечание Применив
метод Redirect после отправки информации пользователю, Вы получите сообщение
об ошибке.
Пример Здесь метод
Redirect используется для отображения страницы в разных разрешениях в зависимости
от параметров экрана компьютера-клиента:
<%
If Request.ServerVariables("HTTP_UA_PIXELS") = "640х480" Then
Response.Redirect "lo_res.htm"
Else
Response.Redirect "hi_res.htm"
End If
Помещение значений в форму
Средствами активных страниц можно разрабатывать формы, размещающие значения в ASP-файле. Для этого нужно разделить ASP-файл на две части: первая выводит форму, а вторая — хранит заполненную форму.
Чтобы выяснить, заполнена ли форма, проверьте, содержат ли элементы управления HTML какие-нибудь значения. Если нет — пользователь еще не заполнял форму, и поэтому Вам нужно отобразить ее пустой бланк.
Пример Здесь выводится
пустая форма:
<% If IsEmpty (Request("txtName")) Then
'Вывести форму
Else
'Форма была отправлена
End If %>
Буферизация ответа
Чтобы Web-сервер не отправлял HTTP-ответ пользователю, пока не будут обработаны все серверные сценарии активной страницы, применяется буферизация содержимого ответного сообщения.
Примечание Ожидание
завершения обработки сервером всех сценариев иногда значительно задерживает ответ.
Отправлять ответ пользователю по частям, не дожидаясь конца обработки, позволяет
метод Flush объекта Response.
А теперь запустите видеоролик Chap10b.exe, который находится на прилагаемом к книге компакт-диске. Он познакомит Вас с применением буферизации в IIS.
Установка свойства Buffer
Чтобы включить режим буферизации, присвойте свойству Buffer значение True. Свойство Buffer нельзя устанавливать после того, как сервер отправил ответ пользователю, поэтому лучше всего задавать его в первой строке ASP-файла.
Пример Здесь свойству
Buffer присваивается значение True:
Response.Buffer = Tru
Обработка ошибок в режиме буферизации
Если во время обработки активной страницы в режиме буферизации возникла ошибка, примените метод Redirect объекта Response, предварительно очистив буфер методом Clear.
Пример Чтобы при возникновении
ошибки очистить буфер и направить пользователя на страницу, сообщающую об ошибке,
введите следующий код:
Response.Buffer = True
On Error Resume Next
'Код, который может вызвать фатальную ошибку,
'например, невозможность подключиться к данным If Err.number <> 0 Then
Response.Clear
Response.Redirect "error.him"
End If
Резюме
Выяснив, какую информацию запрашивает пользователь, Вы можете создать ответ средствами объекта Response. Свойства и методы объекта Response позволяют оперировать информацией, передаваемой клиенту. Чаще всего применяются следующие свойства этого объекта: Buffer, Expires и ExpiresAbsolute. Наиболее популярные методы объекта Response — Clear, End, Flush, Redirect и Write.
Метод Write добавляет текст в HTTP-ответ, а метод Redirect обеспечивает переход к другому ресурсу. Свойство Buffer позволяет предотвратить отправку Web-сервером HTTP-ответа пользователю до завершения обработки всех серверных сценариев данной активной страницы.