Занятие 4. Создание HTTP-ответа
(Продолжительность занятия 15 минут)
Определив, что именно пользователь запрашивает в HTTP-запросе, Вы можете вернуть ему необходимую информацию с помощью свойств и методов объекта Response. На этом занятии Вы узнаете, как пользоваться объектом Response для создания ответа на HTTP-запрос.
Объект Response
Объект Response позволяет манипулировать информацией, передаваемой пользователю в виде HTTP-ответа.
Свойства и методы
Объект Response снабжен свойствами и методами, предназначенными для отправки информации пользователю. Некоторые свойства объекта Response вкратце описаны в приведенной ниже таблице.
Свойство |
Описание |
Buffer |
Указывает, буферизован ли ответ |
Expires |
Указывает, как долго страница может храниться в кэше программы просмотра |
ExpiresAbsolute |
Указывает дату и время, когда страница должна быть удалена из кэша программы просмотра (т.е. когда она будет считаться устаревшей) |
В следующей таблице перечислены некоторые методы объекта Response.
Метод |
Описание |
Clear |
Очищает любые буферизованные ответы |
End |
Останавливает обработку Web-страницы и возвращает информацию, полученную на этот момент |
Flush |
Немедленно отправляет буферизованный ответ |
Redirect |
Посылает пользователю сообщение о переадресовке, которое направит программу просмотра по другому URL |
Write |
Записывает значение переменной в виде строки в текущий HTTP-ответ |
Объект Response также содержит набор Cookies, который Вы можете использовать для установки значения агента.
Синтаксис объекта Response
Синтаксис Для свойств и методов объекта Response применяется следующий синтаксис:
Response.свойство метод
<% Response.Expires = 0 %>
Если пользователь возвратится на эту Web-страницу, Web-сервер обновит ее содержимое перед отображением.
Метод Write
Метод Write добавляет текст в HTTP-ответ. Синтаксис Синтаксис метода Write таков:
Response.Write вариант
Здесь вариант — это любой тип данных (в том числе символы, строки и целые числа), который поддерживается выбранным по умолчанию языком создания
сценариев.
Вариант не может содержать комбинацию символов %>, так как она обозна-чает конец сценария. Если это необходимо, воспользуйтесь escape-последователь-ностью %\>, которую Web-сервер преобразует при обработке сценария.
<%For Each Item In Request.Form
Response.Write Item
Next %>
<% Response.Write "<TABLE WIDTH = 100%\>" %>
Метод Redirect
Метод Redirect применяется для переадресации на другую Web-страницу.
В качестве аргумента метода Redirect объекта Response задается указатель ресурса новой страницы.
Синтаксис Для метода Redirect применяется следующий синтаксис:
Response.Redirect URL
Здесь URL — абсолютный или относительный указатель ресурса, куда перенаправляется программа просмотра.
<%
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-ответ пользователю, пока не будут обработаны все серверные сценарии активной страницы, применяется буферизация содержимого ответного сообщения.
А теперь запустите видеоролик Chap10b.exe, который находится на прилагаемом к книге компакт-диске. Он познакомит Вас с применением буферизации в IIS.
Установка свойства Buffer
Чтобы включить режим буферизации, присвойте свойству Buffer значение True. Свойство Buffer нельзя устанавливать после того, как сервер отправил ответ пользователю, поэтому лучше всего задавать его в первой строке ASP-файла.
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-ответа пользователю до завершения обработки всех серверных сценариев данной активной страницы.