Мы изучили жизненный цикл страницы и то, как страница содержит различные элементы управления. Сама страница создается как объект управления. Все веб-формы в основном являются экземплярами класса ASP.NET Page. Класс страницы имеет следующие чрезвычайно полезные свойства, которые соответствуют внутренним объектам:
- сессия
- заявка
- кэш
- Запрос
- отклик
- сервер
- пользователь
- след
Мы обсудим каждый из этих объектов в свое время. В этом уроке мы рассмотрим объект Server, объект Request и объект Response.
Объект сервера
Объект Server в Asp.NET является экземпляром класса System.Web.HttpServerUtility. Класс HttpServerUtility предоставляет многочисленные свойства и методы для выполнения различных заданий.
Свойства и методы объекта «Сервер»
Методы и свойства класса HttpServerUtility предоставляются через встроенный объект Server, предоставляемый ASP.NET.
В следующей таблице приведен список свойств:
Имущество | Описание |
---|---|
MachineName | Имя сервера компьютера |
ScriptTimeout | Получает и задает значение времени ожидания запроса в секундах. |
В следующей таблице приведен список некоторых важных методов:
метод | Описание |
---|---|
CreateObject (String) | Создает экземпляр COM-объекта, идентифицируемый его ProgID (Programmatic ID). |
CreateObject (Type) | Создает экземпляр COM-объекта, идентифицируемый его типом. |
Равно (Объект) | Определяет, равен ли указанный объект текущему объекту. |
Execute (String) | Выполняет обработчик для указанного виртуального пути в контексте текущего запроса. |
Execute (String, Boolean) | Выполняет обработчик для указанного виртуального пути в контексте текущего запроса и указывает, следует ли очищать коллекции QueryString и Form. |
GetLastError | Возвращает предыдущее исключение. |
GetType | Получает тип текущего экземпляра. |
HtmlEncode | Изменяет обычную строку в строку с допустимыми символами HTML. |
HtmlDecode | Преобразует HTML-строку в обычную строку. |
Нанизывать | Возвращает строку, которая представляет текущий объект. |
Передача (String) | Для текущего запроса прекращает выполнение текущей страницы и начинает выполнение новой страницы, используя указанный URL-путь страницы. |
UrlDecode | Преобразует строку URL в обычную строку. |
UrlEncodeToken | Работает так же, как UrlEncode, но в байтовом массиве, который содержит данные в кодировке Base64. |
UrlDecodeToken | Работает так же, как UrlDecode, но в байтовом массиве, который содержит данные в кодировке Base64. |
MapPath | Вернуть физический путь, который соответствует указанному пути виртуального файла на сервере. |
Перечислить | Переносит выполнение на другую веб-страницу в текущем приложении. |
Объект запроса
Объект запроса является экземпляром класса System.Web.HttpRequest. Он представляет значения и свойства HTTP-запроса, который загружает страницу в браузер.
Информация, представленная этим объектом, обернута абстракциями более высокого уровня (модель веб-управления). Однако этот объект помогает проверять некоторую информацию, такую как браузер клиента и файлы cookie.
Свойства и методы объекта запроса
В следующей таблице приведены некоторые заслуживающие внимания свойства объекта Request:
Имущество | Описание |
---|---|
AcceptTypes | Получает строковый массив поддерживаемых клиентом типов принятия MIME. |
ApplicationPath | Получает корневой путь виртуального приложения ASP.NET на сервере. |
браузер | Получает или задает информацию о возможностях браузера запрашивающего клиента. |
ContentEncoding | Получает или задает набор символов для тела объекта. |
ContentLength | Указывает длину в байтах содержимого, отправляемого клиентом. |
Тип содержимого | Получает или задает тип содержимого MIME входящего запроса. |
Печенье | Получает коллекцию файлов cookie, отправленных клиентом. |
Путь файла | Получает виртуальный путь текущего запроса. |
файлы | Получает коллекцию файлов, загруженных клиентом, в многочастном формате MIME. |
форма | Получает коллекцию переменных формы. |
Заголовки | Получает коллекцию заголовков HTTP. |
HTTPMethod | Получает метод передачи данных HTTP (например, GET, POST или HEAD), используемый клиентом. |
InputStream | Получает содержимое тела входящего HTTP-объекта. |
IsSecureConnection | Получает значение, указывающее, использует ли HTTP-соединение защищенные сокеты (то есть HTTPS). |
Строка запроса | Получает коллекцию переменных строки HTTP-запроса. |
RawUrl | Получает необработанный URL-адрес текущего запроса. |
Тип запроса | Получает или задает метод передачи данных HTTP (GET или POST), используемый клиентом. |
ServerVariables | Получает коллекцию переменных веб-сервера. |
TotalBytes | Получает количество байтов в текущем входном потоке. |
Веб-сайт | Получает информацию об URL текущего запроса. |
UrlReferrer | Получает информацию об URL предыдущего запроса клиента, который связан с текущим URL. |
UserAgent | Получает необработанную строку пользовательского агента клиентского браузера. |
UserHostAddress | Получает IP-адрес хоста удаленного клиента. |
UserHostName | Получает DNS-имя удаленного клиента. |
UserLanguages | Получает отсортированный строковый массив настроек языка клиента. |
В следующей таблице приведен список некоторых важных методов:
метод | Описание |
---|---|
BinaryRead | Выполняет двоичное чтение указанного количества байтов из текущего входного потока. |
Равно (Объект) | Определяет, равен ли указанный объект текущему объекту. (Унаследовано от объекта.) |
GetType | Получает тип текущего экземпляра. |
MapImageCoordinates | Сопоставляет входящий параметр формы поля изображения с соответствующими значениями x-координаты и y-координаты. |
MapPath (String) | Сопоставляет указанный виртуальный путь с физическим путем. |
Сохранить как | Сохраняет HTTP-запрос на диск. |
Нанизывать | Возвращает строку, которая представляет текущий объект. |
ValidateInput | Вызывает необходимость проверки для коллекций, доступ к которым осуществляется через свойства Cookies, Form и QueryString. |
Объект ответа
Объект Response представляет ответ сервера на запрос клиента. Это экземпляр класса System.Web.HttpResponse.
В ASP.NET объект ответа не играет существенной роли при отправке HTML-текста клиенту, поскольку серверные элементы управления имеют вложенные объектно-ориентированные методы для визуализации.
Однако объект HttpResponse по-прежнему предоставляет некоторые важные функции, такие как функция cookie и метод Redirect (). Метод Response.Redirect () позволяет переносить пользователя на другую страницу как внутри, так и снаружи приложения. Это требует поездки туда и обратно.
Свойства и методы объекта ответа
В следующей таблице приведены некоторые заслуживающие внимания свойства объекта Response:
Имущество | Описание |
---|---|
буфер | Получает или задает значение, указывающее, следует ли буферизовать выходные данные и отправить их после завершения обработки полного ответа. |
BufferOutput | Получает или задает значение, указывающее, следует ли буферизовать вывод и отправить его после завершения обработки всей страницы. |
Charset | Получает или задает набор символов HTTP выходного потока. |
ContentEncoding | Получает или задает набор символов HTTP выходного потока. |
Тип содержимого | Получает или задает тип HTTP MIME выходного потока. |
Печенье | Получает коллекцию файлов ответов. |
Истекает | Получает или задает количество минут до истечения срока действия страницы, кэшированной в браузере. |
ExpiresAbsolute | Получает или задает абсолютную дату и время для удаления кэшированной информации из кэша. |
HeaderEncoding | Получает или задает объект кодирования, представляющий кодировку для текущего потока вывода заголовка. |
Заголовки | Получает коллекцию заголовков ответов. |
IsClientConnected | Получает значение, указывающее, подключен ли клиент к серверу. |
Выход | Разрешает вывод текста в исходящий поток ответов HTTP. |
OutputStream | Включает двоичный вывод в тело исходящего содержимого HTTP. |
RedirectLocation | Получает или задает значение заголовка Http Location. |
Статус | Устанавливает строку состояния, которая возвращается клиенту. |
StatusCode | Получает или задает код состояния HTTP выходных данных, возвращаемых клиенту. |
StatusDescription | Получает или задает строку состояния HTTP выходных данных, возвращаемых клиенту. |
SubStatusCode | Получает или задает значение, определяющее код состояния ответа. |
SuppressContent | Получает или задает значение, указывающее, отправлять ли содержимое HTTP клиенту. |
В следующей таблице приведен список некоторых важных методов:
метод | Описание |
---|---|
AddHeader | Добавляет заголовок HTTP в выходной поток. AddHeader предоставляется для совместимости с более ранними версиями ASP. |
AppendCookie | Инфраструктура добавляет HTTP-файл cookie к внутренней коллекции файлов cookie. |
AppendHeader | Добавляет заголовок HTTP в выходной поток. |
AppendToLog | Добавляет настраиваемую информацию журнала в файл журнала служб IIS. |
BinaryWrite | Записывает строку двоичных символов в поток вывода HTTP. |
ClearContent | Очищает весь вывод содержимого из потока буфера. |
близко | Закрывает сокет подключения к клиенту. |
Конец | Отправляет весь текущий буферизованный вывод клиенту, останавливает выполнение страницы и вызывает событие EndRequest. |
Равно (Объект) | Определяет, равен ли указанный объект текущему объекту. |
Промывать | Посылает весь текущий буферизированный вывод клиенту. |
GetType | Получает тип текущего экземпляра. |
Pics | Добавляет заголовок HTTP PICS-Label к выходному потоку. |
Перенаправление (String) | Перенаправляет запрос на новый URL и указывает новый URL. |
Redirect (String, Boolean) | Перенаправляет клиента на новый URL. Указывает новый URL-адрес и следует ли прекратить выполнение текущей страницы. |
SetCookie | Обновляет существующий файл cookie в коллекции файлов cookie. |
Нанизывать | Возвращает строку, которая представляет текущий объект. |
TransmitFile (String) | Записывает указанный файл непосредственно в поток вывода ответа HTTP, не буферизуя его в памяти. |
Написать (Char) | Записывает символ в поток вывода ответа HTTP. |
Write (Object) | Записывает объект в поток ответов HTTP. |
Write (String) | Записывает строку в поток вывода ответа HTTP. |
WriteFile (String) | Записывает содержимое указанного файла непосредственно в поток вывода ответа HTTP в виде блока файла. |
WriteFile (String, Boolean) | Записывает содержимое указанного файла непосредственно в поток вывода ответа HTTP в виде блока памяти. |
пример
В следующем простом примере есть элемент управления текстовым полем, в котором пользователь может ввести имя, кнопка для отправки информации на сервер и элемент управления меткой для отображения URL-адреса клиентского компьютера.
Файл содержимого:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="server_side._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Enter your name: <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /> <br /> <asp:Label ID="Label1" runat="server"/> </div> </form> </body> </html>
Код позади Button1_Click:
protected void Button1_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(TextBox1.Text)) { // Access the HttpServerUtility methods through // the intrinsic Server object. Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ". <br/> The url is " + Server.UrlEncode(Request.Url.ToString()) } }
Запустите страницу, чтобы увидеть следующий результат: