Работа со служебными объектами ASP.NET.
Исходные условия
Подготовленный веб-сервер согласно "Подготовка среды исполнения веб-приложений на платформе Microsoft ASP.NET." .
Задание 1. Обработка HTTP-запроса
Обработка текущего HTTP-запроса и извлечение параметров HTTP-запроса.
Для работы с параметрами HTTP-запроса существует служебный объект ASP.NET, который называется HttpRequest. Для доступа к этому объекту используется текущий контекст, который представлен объектом HttpContext.
- Для начала следует создать новое приложение ASP.NET и добавить на него элемент управления Label. Впоследствии этот элемент управления будет содержать информацию из HTTP-запроса.
- Перейдите в режим редактирования программного кода страницы и используйте обработчик события "Page_Load" для дальнейших действий.
- Для отображения IP-адреса клиента используйте объект HttpRequest и его свойство UserHostAddress. Результат можно отобразить в созданной метке Label.
- Аналогичным образом можно отобразить содержимое всех заголовков HTTP-запроса. Для этого нужно построить цикл поверх объектов коллекции Headers и сохранить все значения в строковой переменной. После обработки всех элементов можно вывести результат на форму.
- Подобным образом можно обрабатывать любые данные, которые содержаться в HTTP-запросе. Например, аналогичным образом можно обработать POST- или GET- параметры запроса, текущие параметры серверного окружения, название и параметры браузера пользователя и т.д.
Задание 2. Работа с HTTP-ответом
Работа с HTTP-ответом, получение его параметров и его изменение.
Для работы с параметрами HTTP-ответа существует служебный объект ASP.NET, который называется HttpResponse. Для доступа к этому объекту используется текущий контекст, который представлен объектом HttpContext.
- Создайте новое приложение ASP.NET и добавьте на страницу элемент управления Label. Впоследствии этот элемент управления будет содержать информацию из HTTP-запроса.
- Перейдите в режим редактирования программного кода страницы и используйте обработчик события "Page_Load" для дальнейших действий.
- Например, можно отобразить на странице тип содержимого, который будет передан клиенту. Для этого необходимо использовать свойство ContentType объекта HttpResponse.
- Также можно использовать объект HttpResponse для того, чтобы управлять заголовками HTTP-ответа. Для этого используется коллекция Headers. Для добавления нового заголовка в HTTP-ответ следует написать следующий код
- Другим вариантом использования объекта HttpResponse является установка кода возврата при обработке HTTP-запроса. Например, если вы хотите сообщить пользователю об отсутствии ресурса следует установить статусный код 404 и прекратить дальнейшую обработку HTTP-запроса.
- Подобным образом можно получать и изменять любые данные, которые содержаться в HTTP-ответе. Например, аналогичным образом можно устанавливать тип содержимого, записывать или фильтровать содержимое выходного потока, задавать политики кэширования HTTP-запроса и т.д.
Задание 3. Работа с серверным окружением
Работа с серверным окружением используя объект HttpServerUtility.
Для работы с серверным окружением существует служебный объект ASP.NET, который называется HttpServerUtility. Для доступа к этому объекту используется текущий контекст, который представлен объектом HttpContext и его свойство Server.
- Создайте новое приложение ASP.NET и добавьте на страницу элемент управления Label. Впоследствии этот элемент управления будет содержать информацию из объекта HttpServerUtility.
- Перейдите в режим редактирования программного кода страницы и используйте обработчик события "Page_Load" для дальнейших действий.
- Обратитесь к объекту HttpServerUtility посредством свойства Server текущего контекста и выведете на страницу имя текущего компьютера.
- Используйте объект HttpServerUtility для преобразования относительных путей в абсолютные пути в файловой системе.
- Аналогичным образом можно использовать и другие возможности объекта HttpServerUtility. Например, кодировать и декодировать HTML, кодировать и декодировать данные для передаче в составе URL, извлекать информацию о последней ошибке и др.
Задание 4. Трассировка и отладка запроса
Работа с серверным объектом Trace.
В процессе разработки приложений, в некоторых ситуациях логика приложения может работать не так, как предполагалось. Поэтому в ряде случаев возникает потребность в дополнительных средствах отладки. Для этих целей используется объект TraceContext, который доступен в рамках текущего контекста запроса через свойство Trace.
- Создайте новое приложение ASP.NET и добавьте на страницу элемент управления Label. Впоследствии этот элемент управления будет содержать информацию из объекта HttpServerUtility.
- Перейдите в режим редактирования программного кода страницы и используйте обработчик события "Page_Load" для написания кода.
- Обратитесь к объекту TraceContext с целью выяснения, включена ли трассировка в данный момент.
- Если трассировка не включена, то ее следует включить. Для этого необходимо перейти в режим разметки страницы и установить свойство Trace в значение "True".
- При обращении к странице со включенной трассировкой на странице появится отладочная информация.
- Можно использовать объект TraceContext для отслеживания работы приложения. Для этого используются методы Write и Warn. Каждый из этих методов позволяет сделать запись в журнале трассировки. Их отличие состоит только в том, что Warn выделяет запись красным шрифтом.
- После обращения к странице, на которой используется трассировка подобным образом, в журнале трассировки появится соответствующая запись.