Класс HttpResponse
Класс HttpResponse инкапсулирует информацию ответа, полученного по протоколу передачи гипертекстовых файлов HTTP, притом информация содержится в операции ASP.NET. Каркас Framework использует данный класс при формировании ответа клиенту. Формирование ответа включает запись элементов управления сервера для отправки клиенту. Созданный вами код сервера может также использовать метод Write (Запись) объекта Response (Ответ). Использование метода Response::Write (Ответ::Запись) иллюстрировалось уже несколько раз.
Метод Redirect (Переадресовать)
Класс HttpResponse имеет полезный метод Redirect (Переадресовать). Благодаря этому методу сервер может переадресовать запрос, передаваемый по протоколу передачи гипертекстовых файлов HTTP на другой унифицированный указатель информационного ресурса (URL). Простая переадресация, без передачи каких-либо данных, является тривиальной задачей. Все что для этого нужно сделать– это вызвать метод Redirect (Переадресовать) и передать ему требуемый унифицированный указатель информационного ресурса (URL).
Примером ситуации, когда используется метод Redirect (Переадресовать), служит реорганизация Web-узла. В процессе реорганизации некоторые страницы могут содержать недостоверную информацию. Кроме того, содержимое Web-узла может быть перемещено. Чтобы сохранить доступ к старым страницам, достаточно просто переадресовать трафик.
Обратите внимание, что при переадресации запроса всегда используется метод GET (Получить) протокола передачи гипертекстовых файлов HTTP. Это подобно установлению связи по указанному унифицированному указателю информационного ресурса (URL) (Метод POST (Отправить почтовое сообщение) может использоваться, если данные отсылаются из формы, – тогда можно указать одно из двух действий – GET (Получить) или POST (Отправить почтовое сообщение)). Более интересный случай представляет передача данных на новую страницу. Один из способов передачи данных состоит в том, что передаваемая информация кодируется в строке запроса.
При кодировании строки запроса следует придерживаться общепринятых соглашений для протокола передачи гипертекстовых файлов HTTP. Класс HttpUtility имеет метод UrlEncode, который корректно кодирует отдельные составляющие элементы строки запроса. Вам нужно самостоятельно написать код, который отделяет унифицированный указатель информационного ресурса (URL) от строки запроса при помощи символа "знак вопроса" (?), а также разделяет отдельные составляющие элементы строки запроса при помощи символа "амперсанд" (&).
В папке Hotel (Гостиница) имеется простое Web-приложение, где иллюстрируется использование этого метода передачи данных при переадресации запроса. Файл default.aspx содержит форму, при помощи которой собираются данные, необходимые для бронирования мест в гостинице. Само бронирование выполняется на странице Reservationl.aspx. Чтобы получить доступ к начальной странице default.aspx, используйте унифицированный указатель информационного ресурса (URL)http://localhost/NetCpp/Hotel/.
Как обычно, ссылка на эту страницу содержится на начальной странице с примерами программ. На рис. 10.14 показана начальная страница нашего приложения, которое бронирует место в гостинице.
Рис. 10.14. Начальная страница для бронирования места в гостинице