Учебники

ASP.NET — серверная часть

Мы изучили жизненный цикл страницы и то, как страница содержит различные элементы управления. Сама страница создается как объект управления. Все веб-формы в основном являются экземплярами класса 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())
   }
}

Запустите страницу, чтобы увидеть следующий результат: