« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
    Популярное
Установка переключателей в файле конфигурации

Функция EnableMenuItem

Функция AccessResource

Инструкция repeat

JavaScript - полезные функции часть 4

Внутри менеджера памяти. Выбор, подходы и реализация методов динамического выделения памяти

Свойства

Delphi: Тест для Большого Дяди на все 100! Или пишем свою прогу для тестирования...

Уменьшаем размер EXE в 40 раз, или Вся правда о консольных приложениях

ТОП 10 самых раздражающих факторов для программиста




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 233
Пользователей: 0

Статьи:: .NET Framework :: Asp.Net и Web Forms :: Класс HttpRequest



отправить ссылку другу версия для печати  Обсудить на форуме

Класс HttpRequest

Пространство имен System: :Web (Система Сеть) содержит потезнын класс HttpRequest. Данный класс используется для считывания различных значении, которые клиент отсылает в запросе по протоколу передачи гипертекстовых фантов HTTP Эти значения, принимаемые по протоколу передачи гипертекстовых фантов HTTP, затем будут использованы классическими (те использующими общий шлюзовой ишер-фейс CGI (Common Gateway Interface)) программами или программами, использующими интерфейс прикладного программирования Internet-сервера ISAPI (Internet Server API), которые обрабатывают Web-запрос.



На этой основе строится обработка данных на более высоком уровне. В табл. 10.1 приведены некоторые наиболее часто используемые свои-ства класса HttpRequest. Если вы знакомы с протоколом передачи гипертекстовые файлов HTTP, смысл этих свойств должен быть вам понятен Исчерпывающая инфор мация об этих и других свойствах класса HttpRequest содержится в документации по .NET Framework.

Свойство Request (Запрос) класса Page (Страница) возвращае! объект 'tt; quest. Из свойств объекта HttpRequest можно извлечь любую необходимую информацию. Например, следующий код (этот код не содержится ни в одном примере) определяет длину (в байтах) содержимого, отосланного клиентом, и записывает поточенную информацию в объект Response (Ответ). Затем эта информация отображается в окне-броузера.
Таблица 10.1. Общедоступные свойства экземпляра класса HttpReguest

Свойство Смысл
AcceptTypes Строковый массив принимаемых клиентом MIME-типов
Browser (Броузер) Информация о возможностях броузера клиента
ContentLength Длина (в байтах) содержимого, отосланного клиентом
Cookies (Небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя) Коллекция небольших фрагментов данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемых сервером на машине пользователя (cookies), отосланных клиентом
Form (Форма) Коллекция переменных формы
Headers (Заголовки) Коллекция заголовков для протокола передачи гипертекстовых файлов HTTP
HttpMethod Метод передачи по протоколу передачи гипертекстовых файлов HTTP, используемый клиентом (например, СЕТ (Получить) или POST (Отправить почтовое сообщение))
Params Объединенная коллекция, которая состоит из элементов Querystnng, Form (Форма), Server-Variables И Cookies (Небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя)
Path (Путь) Виртуальный запрос текущего пути
OueryString Коллекция строковых переменных запроса, посылаемого по протоколу передачи гипертекстовых файлов HTTP
ServerVanables Коллекция переменных Web-сервера

Page *p = dynamic_cast<Page *>(sender);
// Страница *р = dynamic_cast <Страница *> (отправитель);
HttpRequest *request = p->get_Request();
int length = request->ContentLength; // длина
HttpResponse *response = p->get_Response();
response->Write(String::Format( // ответ-> Запись (Строка:: Формат
"ContentLength = {0}<br>", _box(length))); // длина

Коллекции

Многие полезные коллекции представлены как свойства объекта HttpRequest. Эти коллекции принадлежат типу NamedValueCollection (в пространстве имен System: :Collections: :Specialized (Система::Коллекции::Специализированное пространство имен)). Получить значение переменной из коллекции можно при помощи строкового ключа. Например, следующий код извлекает из коллекции ServerVan-ables значение переменных сервера QUERY_STRING и HTTP_USER_AGENT.

Page *p = dynamic_cast<Page *>(sender);
// Страница *р = dynamic_cast <Страница *> (отправитель);
HttpRequest *request = p->get_Request();
HttpResponse *response = p->get_Response();
String *strQuery = // Строка
request->ServerVariables->get_Item( // запрос
"QUERY_STRING");
response->Write(String::Format( // ответ-> Запись (Строка:: Формат (
"QUERY_STRING = {0}<br>",strQuery));

String *strAgent = // Строка
request->ServerVariables->get_Item( // запрос
"HTTP_USER_AGENT");
response->Write(String::Format( // ответ-> Запись (
Строка:: Формат ( "HTTP_USER_AGENT = {0}<br>",
strAgent));

Если вслед за унифицированным указателем информационного ресурса (URL) соответствующего .aspx-файла ввести строку запроса ?foo=3, приведенный выше код отобразит в окне броузера что-то примерно следующее:

QUERY_STRING = foo=3
HTTP_USER_AGENT = Mozilla/4.0

Подобные переменные при программировании классического (т.е основанного на общем шлюзовом интерфейсе CGI (Common Gateway Interface)) Web-сервера играют решающую роль. Используя переменные среды, Web-сервер передает информацию CGI-скрипту или программе. На всякий случай ASP.NET обеспечивает доступ и к этой низкоуровневой информации.
Стандартная задача состоит в том, чтобы извлечь информацию из элементов управления формы. В HTML-коде элементы управления идентифицируются атрибутом name (имя). Этот атрибут сервер использует для определения соответствующего значения. Способ передачи данных из формы серверу зависит от того, какой метод использует форма в протоколе передачи гипертекстовых файлов HTTP: GET (Получить) или POST (Отправить почтовое сообщение).
Если используется метод GET (Получить), данные, введенные в форму, кодируются как часть строки запроса. Чтобы затем извлечь нужные значения, используется коллекция QueryString Если же используется метод POST (Отправить почтовое сообщение), данные, введенные в форму, передаются как содержимое после заголовка протокола передачи гипертекстовых файлов HTTP. В этом случае для извлечения значения элементов управления используется коллекция Forms (Формы). Чтобы узнать, какую коллекцию следует использовать, нужно определить значение (GET (Получить) или POST (Отправить почтовое сообщение)) переменной сервера REQUEST_METHOD. (Если переменная REQUEST_METHOD имеет значение GET (Получить), используется коллекция QueryString Если же ее значение равно POST (Отправить почтовое сообщение), используется коллекция Forms (Формы))
Если вы используете ASP NET, тогда вам не стоит волноваться о том, какой метод протокола передачи гипертекстовых файлов HTTP использовался при запросе В ASP NET имеется коллекция Params, которая представляет собой объединение (в математическом смысле) коллекций ServerVariables, QueryString, Forms (Формы) и Cookies (Небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя)

Пример программы

Идеи, о которых мы рассказали выше, проиллюстрируем на примере простой страницы Squares. aspx Эта страница отображает столбец с квадратами натуральных чисел Числа, квадраты которых будут выведены, ограничиваются значением, вводимым в форме Страница GetSquares aspx отсылает запрос, используя метод GET (Получить), а страница PostSquares.aspx отсылает запрос, используя метод POST (Отправить почтовое сообщение) Пользовательский интерфейс обоих приложений тождественен (рис. 10.11)

11.gif

Рис. 10.11. Форма, запрашивающая столбец квадратов чисел

Ниже приведен HTML-код страницы GetSquares.aspx Обратите внимание, что мы используем чистый HTML-код И, за исключением директивы Page (Страница), которая используется для включения режима трассировки, признаки использования ASP NET отсутствуют

<! - - GetSquares.aspx - ->
<%@ Page Trace = "false" %>
<!—- Трассировка Страницы --->
<html> <head> </head>
<body> <!-— тело -—>
<P>This program will print a column of square numbers</P>
<!--- Эта программа будет печатать столбец квадратов чисел --->
<form method="get" action = Squares.aspx>
<!--- метод формы = "получить" действие = Squares aspx -->
How many
<!—- Сколько -->
<INPUT type=text size=2 value=5 name=txtCount>
<P></P>
<INPUT type=submit value=Squares name=cmdSquares>
</form>
</body> <!— тело -->
</html>

Тэг form (форма) имеет атрибуты, при помощи которых указывается метод (в данном случае GET (Получить), а не POST (Отправить почтовое сообщение)) и действие (запрос на страницу Squares aspx) Элементы управления имеют атрибут name (имя), с помощью которого сервер извлекает нужное значение
Запустите страницу GetSquares aspx и щелкните на кнопке "Squares" ("Квадраты чисел") Будет отображена некоторая служебная информация, относящаяся к протоколу передачи гипертекстовых файлов HTTP За ней последует столбец с квадратами чисел Поскольку режим трассировки включен, то ASP NET отображает на странице также и подробности запроса На рис 1012 приведены результаты выполнения запроса, в котором используется метод GET (Получить)

12.gif

Рис. 10.12. Вывод, полученный в результате запроса GET (Получить)

Можно видеть, что данные, введенные в форму, закодированы как часть строки запроса Длина содержимого равна нулю, поскольку используется метод GET (Получить), а не POST (Отправить почтовое сообщение) Если прокрутить трассировочную информацию дальше, можно увидеть еще много интересных сведений Например, там приводится коллекция QueryString
А теперь давайте рассмотрим страницу PostSquares aspx Обратите внимание, — в этот раз тэг form (форма) указывает, что используется метод POST (Отправить почтовое сообщение) Остальные параметры такие же, как и в случае страницы GetSquares . aspx

<!-- postSquares.aspx -->
<%@ Page Trace = "false" %>
<html>
<head>
</head>
<body> <!— тело —>
<P>This program will print a column of squares</P>
<!— Эта программа будет печатать столбец квадратов —>
<form method="post" action = Squares.aspx> How many:
<!— Сколько: —>
<INPUT type=text size=2 value=5 name=txtCount> <P></P>
<INPUT type=submit value=Squares name=cmdSquares> </form>
</body> <i— тело —> </html>

Запустите страницу PostSquares.aspx и щелкните на кнопке Squares (Квадраты чисел) Снова будет отображена некоторая информация, относящаяся к протоколу передачи гипертекстовых файлов HTTP. За ней последует столбец, содержащий квадраты чисел Поскольку режим трассировки включен, то ASP.NET отображает на странице также и подробности запроса. На рис. 10.13 приведены результаты выполнения запроса POST (Отправить почтовое сообщение).

13.gif

Рис. 10.13. Вывод, полученный в результате запроса POST (Отправить почтовое сообщение)

Поскольку используется метод POST (Отправить почтовое сообщение), то строка запроса пуста Длина содержимого равна 29. Данные, введенные в форму, передаются в текстовом виде вслед за заголовком протокола передачи гипертекстовых файлов HTTP.
Если прокрутить трассировочную информацию дальше, то теперь можно увидеть коллекцию Form (Форма) Именно с помощью этой коллекции ASP.NET обеспечивает доступ к данным, введенным в форме в случае использования метода POST (Отправить почтовое сообщение)




Рубрика: Asp.Net и Web Forms




HTML 5: пять вещей вызывающих особый интер....

Html

HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.


Подробнее... | Рубрика: Html | Добавлено: 22.12.2008

asp.net: ListView с разных сторон.

.NET компоненты

Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.


Подробнее... | Рубрика: .NET компоненты | Добавлено: 22.12.2008

Создание кросс-таб отчета в Stimulsoft Rep....

.NET компоненты

Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.


Подробнее... | Рубрика: .NET компоненты | Добавлено: 22.12.2008

Остальные статьи:

VivaMP - инструмент для OpenMP
Создаем контекстно-зависимое WPF-приложени...
Windows Vista SP2: что внутри и что важно?
Вышел MySQL 5.1.30, первый стабильный рели...
Тестирование параллельных программ
Архитектура AMD64 (EM64T)
Платформа 2009. Определяя будущее
Windows Vista Bridge Sample Library - упра...
Оптимизация 64-битных программ
Подгрузка через AJAX HTML-кода, содержащег...
Обзор нового релиза самой мощной Ajax библ...
Firebug 1.3 и 1.4 alpha — что нового и инт...
Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия