Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практические работы по WEB-программирование / Byilyshkina_Programmirovanie_v_internet_MY_k_PR_i_LB__compressed

.pdf
Скачиваний:
10
Добавлен:
28.12.2023
Размер:
2.07 Mб
Скачать

Рисунок 21Отображение обработчиков в приложении IIS Manager

При выполнении приложения Web Forms ASP.NET в командной строке запрашивается страница с расширением aspх. ASP.NET обрабатывает этот запрос с помощью стандартного (входящего в состав ASP.NET) HTTPобработчика, который и управляет всем жизненным циклом приложения.

Разработка HTTP-обработчиков считается низкоуровневым программированием ASP.NET и применяется для решения специфических задач: например, для скачивания с сервера файла, считывания видео или аудио потоков.

Сточки зрения программиста HTTP-обработчик — это класс, реализующий интерфейс IHttpHandler. На рис. 4.2 представлен пример простейшего HTTP-обработчика.

Рисунок 22Пример HTTP-обработчика

Интерфейс IHttpHandler предполагает реализацию свойства IsReusable

и метода ProcessRequest.

Свойство IsReusable принимает два логических значения: истина или ложь. Истинное значение указывает на возможность повторного применения экземпляра класса обработчика в другом потоке. В альтернативном случае для каждого потока будет создаваться собственный экземпляр класса обработчика.

73

Связь классов-обработчиков с методами HTTP-запроса и расширениями запрашиваемой страницы описывается в разделе handlers конфигурационного файла Web.config приложения (рис. 4.3).

Рисунок 23Фрагмент файла Web.config, описывающий HTTP-обработчики

Два тега add описывают два HTTP-обработчика, реализованных как классы FirstHandler и TwoHandler, расположенные в пространстве имен Lib4 (атрибут type). Для каждого обработчика указывается HTTP-метод (verb), расширение, запрашиваемой страницы (patch), а также имя (name), отображаемое приложением IIS Manager в окне «Сопоставление обработчиков» (рис. 4.1).

Разработка HTTP клиента, взаимодействующего с HTTP обработчиком ASP.NET

В простейшем случае GET-запрос HTTP-обработчику может быть отправлен с помощью браузера. Для этого достаточно в адресной строке браузера правильно набрать соответствующий обработчику URL. Для формирования POST-запроса, следует разработать web форму, содержащую тег form со значением POST в атрибуте method и правильным URL в атрибуте action. На рис. 4.4 приведен пример web-формы, формирующая POST-запрос.

Рисунок 24Web-форма, формирующая POST-запрос

В том случае, если запрос необходимо сформировать в приложении на языке C# следует воспользоваться возможностями предоставляемыми встроенным классом System.Net.WebClient. На рис. 4.5. представлен пример применения класса WebClient для формирования POST-запроса,

74

пересылающего серверу (HTTP-обработчику) файл с клиентского компьютера.

Рисунок 25Пример применения встроенного класса WebClient

Задания

Задание 9. Разработка HTTP обработчика ASP.NET:

1.разработайте HTTP-обработчик, реагирующий на GET-запросстраниц с расширением bstu; HTTP-обработчик должен принимать значения двух параметров: faculty и course; в результате выполнения в окне браузера должна отобразиться следующая строка:

GET: bstu, faculty = val_parm1, course = val_parm2, где val_parm1 и val_parm2 – значения первого

ивторого параметров.

2.разработайте HTTP-обработчик, реагирующий на POST-запросстраниц с расширением bstu; HTTP-обработчик должен принимать значения двух параметров: faculty и course; в результате выполнения в окне браузера должна отобразиться следующая строка:

POST: bstu, faculty = val_parm1, course= val_parm2, где val_parm1 и val_parm1 – значения первого

ивторого параметров.

3.опубликуйте HTTP-обработчики на IIS;

4.с помощью приложения IIS Manager отобразите окно «сопоставление обработчиков», найдите разработанные в предыдущих пунктах задания обработчики, сформируйте скриншот и поместите его в отчет по контрольной работе;

5.с помощью браузера выполните GET-запрос к HTTP-обработ-чику и убедитесь в его работоспособности;

6.разработайте web-форму, формирующую POST-запрос к HTTP обработчику; опубликуйте эту web-форму IIS; выполните с помощью браузера запрос к форме, сформируйте POST-запрос и убедитесь в работоспособности обработчика; текст разработанной web-формы поместите в отчет по контрольной работе;

7.поместите исходные коды HTTP-обработчиков в отчет по контрольной работе.

Задание 10. Разработка клиента, взаимодействующего с HTTP обработчиком ASP.NET:

1.разработайте консольное приложение на языке C#, формирующее GET и POST-запросы к HTTP-обработчикам, разработанным в задании 9; приложение должно отображать ответ, оправленный обработчиками в окне консоли;

75

2.выполните приложение, разработанное в предыдущем пункте задания; убедитесь в работоспособности приложения и HTTP обработчиков; сформируйте скриншот, отражающий результат выполнения приложения; поместите скриншот и исходный код приложения в отчет по контрольной работе.

Задание 11. Контрольные вопросы:

1.поясните понятие «HTTP-обработчик ASP.NET»;

2.каким образом можно отобразить перечень HTTP-обработчиков, действующих в рамках сайта?

3.поясните структуру HTTP-обработчика (интерфейс, назначение методов);

4.где располагается информация связывающая класс HTTP обработчика, метод HTTP-запроса и расширение страниц;

5.в каких случаях целесообразно применять HTTP-обработчики?

Практическая работа № 12. Применение серверных HTML

элементов управления ASP.NET

Теоретические сведения

Серверные HTML элементы управления

Для разработки пользовательского интерфейса web-приложения шаблона Web Forms ASP.NET программист использует серверные элементы управления. С их помощью разработчик приложения формирует изображение, отображающееся в окне браузера. Каждому серверному HTMLэлементу управления соответствует с одной стороны asp-тег, который может быть размещен на aspx-странице, с другой – класс, производный от класса Control из пространства имен System.Web.UI.

Некоторые серверные элементы управления являются вспомогательными, не генерируют HTML-код и, соответственно, не отображаются браузером. Другие, наоборот, помимо HTML-кода, генерируют JavaScript-код, позволяющий придать динамичность пользовательскому интерфейсу.

С подробной классификацией серверных элементов управления можно ознакомиться в перечне просмотрев список в панели элементов

(Toolbox) Visual Studio (рис. 5.1).

76

Рисунок 26Панель элементов Visual Studio

Серверные HTML-элементы управления являются наиболее простыми в использовании элементами управления ASP.NET. Основной их особенностью является то, что каждому HTML-элементу соответствует один тег HTML. Классы, соответствующие HTMLэлементам, являются производными от класса HtmlControl из пространства имен System.Web.UI. Каждый элемент может генерировать одно из двух серверных (обработанных на сервере) событий: ServerClick или ServerChange.

Сполным перечнем HTML-элементов можно ознакомиться, открыв вкладку c надписью HTML в панели элементов Visual Studio (рис. 5.2).

Рисунок 27Перечень HTML-элементов в панели элементов Visual Studio

77

Применение серверных элементов управления HTML

На рис. 5.3 представлен пример aspx-страницы, содержащей два серверных элемента HTML: HtmlInputText (представлен тегом <input type=”text”>) и HtmlInputButton (<input type=”button”>). Элемент

HtmlInputText генерирует событие ServerChange, возникающее при изменении содержимого текстового значения соответствующего тега.

Элемент HtmlInputButton генерирует событие ServerClick,

возникающее при щелчке мышью по кнопке соответствующего тега.

Рисунок 28Aspx-страница, содержащая серверные элементы управления HTML

На рис. 5.4 представлен код класса _Default, содержащий два метода-

обработчика событий ServerChange и ServerClick.

Рисунок 29Обработчики событий серверных элементов управлений HTML

Задания

Задание 12. Применение серверных HTTL элементов управления:

1.исследуйте раздел HTML панели инструментов Visual Studio;

2.разработайте web-приложение, использующее все серверные HTMLэлементы управления; код обработчиков событий должен выводить на форму сообщение следующего вида:

html-тег: событие ,

где html-тег – наименование тега, событие – обработанное событие;

3.текст кода aspx-страницы и C#-кода поместить в отчет по контрольной работе.

Задание 13. Контрольные вопросы:

1. поясните понятие «серверный элемент управления ASP.NET»;

78

2.назовите общий базовый класс для всех серверных элементов управления

ASP.NET;

3.назовите особенности HTML-элементов управления ASP.NET;

4.назовите общий базовый класс для всех серверных HTMLэлементов управления ASP.NET;

5.перечислите все серверные HTML-элементы управления, генерирующие событие ServerChange;

6.перечислите все серверные HTML-элементы управления, генерирующие событие ServerClick.

Практическая работа № 13. Применение серверных базовых WEB элементов управления ASP.NET

Теоретические сведения

Серверные базовые web элементы управления

Серверными web-элементами управления называются элементы управления, которые являются производными от класса WebControl из пространства имен System.Web.UI.WebControls. Среди этих элементов выделим следующие: Button, CheckBox, FileIpload, HiddenField, HyperLink, Image, ImageButton, ImageMap, Literal, Label, LinkButton, Panel, RadioButton,

Table, TableCell, TableRow, TextBox. Эти элементы называют базовыми web-

элементами управления ASP.NET. В панели элементов Visual Studio webэлементырасположены во вкладке «Стандартный» (рис. 6.1).

Рисунок 30Раздел «Стандартный» панели элементов Visual Studio

79

На aspx-странице серверные web-элементы управления имеют префикс asp. На рис. 6.2 представлен пример использования двух серверных web-элементов: TextBox и Button. Важной особенностью web элементов является большое количество свойств и событий, поддерживаемых этими элементами. С помощью Visual Studio можно отобразить окна с перечнем свойств и событий, генерируемых web элементами (рис. 6.3). Visual Studio позволяет не только просматривать свойства и события, но и задавать значения свойствам и формировать методы-обработчики событий.

Рисунок 31Aspx-страница, содержащая серверные web-элементы TextBox и Button

Рисунок 32Свойства и события элемента TextBox

Результатом обработки сервером aspx-страницы будет HTML и JavaScript-код, который может интерпретироваться браузером. Обычно отправка на сервер с клиента на сервер осуществляется браузером в случае нажатия пользователем кнопки <input type=”submit”> . Этот тег может быть сгенерирован несколькими web-элементами. Например, элементом Button.

80

Лишь после оправки данных на сервере будут обработаны события, связанные с другими элементами.

Следует обратить внимание на свойство AutoPostBack, которым обладают некоторые серверные web-элементы. Установив значение true для этого свойства, можно осуществить отправку данных на сервер без нажатия кнопки. Такой эффект достигается с помощью JavaScript-кода, который генерируется ASP.NET при трансляции aspx-страницы.

Применение серверных базовых web элементов управления

Visual Studio предоставляет разработчику мощный инструмент, позволяющий быстро разрабатывать приложения шаблона Web Forms. На рис. 6.4 изображена aspx-страница, отображаемая Visual Studio в режиме конструктора.

Рисунок 33Aspx-страница в режиме конструктора

В этом режиме, разработчик может перетягивать элементы управления с панели управления прямо на форму, динамически менять размеры и месторасположение элементов на форме, с помощью контекстного меню устанавливать свойства элементов и создавать шаблоны обработчиков событий.

Принципы обработка событий для web-элементов практически ничем не отличаются от обработки событий серверных HTML элементов. На рис. 6.5. приведен пример обработчика события Click для web-элемента Button.

Рисунок 34Пример обработчика события для web-элемента Button

81

Задания

Задание 14. Применение серверных базовых web элементов управления:

1.исследуйте раздел «Стандартный» панели инструментов Visual Studio и найдите базовые web-элементы;

2.разработайте web-приложение, демонстрирующее применение базовых web-элементов, перечисленных в таблице; в приложении должны быть

реализованы обработчики событий указанных в этой же таблице.

Таблица 2Элементы и события приложения

Элементы

События

 

 

Button

Click

TextBox

TextChanged

CheckBox

CheckedChanged

RadioButton

CheckedChanged

HyperLink

 

3.разработайте еще одно web-приложение демонстрирующее применение свойства AutoPostBack для web-элемента CheckBox;

4.тексты программ включите в отчет по контрольной работе.

Задание 15. Контрольные вопросы:

1.перечислите отличия между серверными HTML и web-элементами управления ASP.NET;

2.перечислите все базовые web-элементы управления и поясните их назначение и принцип применения;

3.назовите общий базовый класс для всех серверных web-элементов управления ASP.NET;

4.назовите общие свойства для всех серверных web-элементов управления;

5.поясните назначение свойства AutoPostBack web-элементов и механизм его реализации.

Практическая работа № 14. Применение серверных полнофукциональных элементов управления ASP.NET

Теоретические сведения Серверные полнофункциональные элементы управления

Полнофункциональные элементы управления – это серверные web элементы управления ASP.NET, моделирующие сложные структуры пользовательского интерфейса. В состав ASP.NET входит много полнофункциональных элементов разных категорий. В этой практической работе будут рассматриваться только универсальные элементы: AdRotator, Calendar, View, MultiView, Wizard, Menu и TreeView. Первые пять элементов управления можно обнаружить в разделе «Стандартный» панели элементов Visual Studio, а два последних – в разделе «Переходы».

82