
- •1 Создание серверного приложения
- •2 Создание клиентского приложения
- •3 Анализ возможностей приложения по обработке информации
- •4 Оформление отчета о лабораторной работе.
- •Лабораторная работу №2 Создание и анализ Web приложения архитектуры Web Broker
- •1Создание Web-модуля приложения
- •2Создание процедуры обработки события
- •3 Отладка приложения
- •4 Анализ возможностей приложения по обработке информации
- •5 Оформление отчета о лабораторной работе.
- •1Создание Web-модуля приложения
- •2Создание процедуры обработки события
- •3 Отладка приложения
- •4 Анализ возможностей много уровневого приложения
- •5 Оформление отчета о лабораторной работе.
- •Лабораторная работу №3 Создание и анализ asp.Net приложения работающего с базами данных.
- •1Создание серверного приложения
- •2Связывание данных
- •3Отладка приложения
- •4 Анализ возможностей приложения по обработке информации
- •5 Оформление отчета о лабораторной работе.
- •1Создание серверного приложения
- •3Связывание данных
- •4Отладка приложения
- •5 Анализ возможностей приложения по обработке информации
- •6 Оформление отчета о лабораторной работе.
- •Лабораторная работу №4 Создание и анализ приложения архитектуры Web Service
- •1Создание простой Web-службы
- •2Создания клиентской части Web-службы
- •3Организация доступа к Web-сервису из кода
- •4 Анализ возможностей приложения по обработке информации
- •5 Оформление отчета о лабораторной работе.
- •1Создание простой Web-службы
- •2Создания клиентской части Web-службы
- •3Организация доступа к Web-сервису из кода
- •5 Анализ возможностей много уровневого приложения
- •6 Оформление отчета о лабораторной работе.
2Создание процедуры обработки события
Чтобы объект DefaultAction мог реагировать на запрос Web-сервера, на вкладке Events (События) для этого объекта надо выбрать событие OnAction (оно единственное) и создать его обработчик двойным щелчком:
procedure TWebModulel.WebModulelDefaultActionAction( Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
begin
end;
Данный обработчик будет вызываться при обращении из браузера к Web-модулю без параметров, например с помощью следующей строки:
http://www.my-site.ru/cgi-bin/MyTest.exe
Параметр процедуры Request содержит всю информацию о запросе. В частности, в свойстве этого параметра Query хранится значение запроса, если оно было указано пользователем после знака ?.
Например, пусть обращение выполнялось следующим образом:
http://www.my-site.ru/cgi-bin/MyTest.ехе?проверка
В этом случае значение переменной Request.Query равно строке 'проверка'.
Результат работы модуля записывается в виде строки в свойство Content параметра обработчика Response. Так как при обращении к модулю без специальных параметров должна отображаться пустая страница, вся логика работы данного обработчика уместится в одном операторе присваивания:
Response .Content := ' <body bgcolor=whitexcenter>' + ' <hЗ>Привет! </h3
<center></body>' ;
Обработка запросов с параметрами чуть сложнее. Чтобы сформировать название дня недели, надо узнать его номер с помощью стандартной функции DayOfWeek, которая принимает значения от 1 (воскресенье) до 7 (суббота). В качестве ее параметра надо указать структуру типа TDateTime, содержащую информацию о текущем дне. А такой день можно получить с помощью другой функции — Now.
Полное текстовое представление даты формируется обращением к стандартной функции DateToStr. Процедура, вызываемая при указании параметра/DAY (реакция на событие OnAction объекта DayAction), выглядит следующим образом:
procedure TWebModulel.WebModulelPlAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
const DAY_NAMES: array[1..7] of string =
('воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота');
begin
if Request.Query = 'name' then
Response. Content := ' <center>сегодня ' + DAY_NAMES[DayOfWeek(Now)] + '</center>' else if Request.Query = 'full' then
Response.Content := '<center>' + DateToStr(Now) + '</center>'
end;
Вот пример обработчика запроса с параметром /TIME. В нем используется стандартная функция TimeToStr, преобразующая текущее время в текстовое представление.
procedure TWebModulel.WebModulelTimeActionAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.Content := '<center> сейчас ' + TimeToStr(Now) + '</center>'
end;
3 Отладка приложения
Написав всего два условных оператора и четыре оператора присваивания, нам удалось создать с помощью системы Delphi 7 законченный Weft-модуль, пригодный для размещения На Web-сервере.
Приложение надо откомпилировать, переименовать (MyTest.exe) и разместить в каталоге Web-сервера, соответствующем виртуальному каталогу cgi-bin с правами на запуск на сервере, исполняемых ЕХЕ-модулей.
Параметры и результаты
Web-модуль получает от Web-сервера набор параметров (запрос), указанных пользователем вручную или сгенерированных браузером автоматически. В зависимости от этих параметров модуль выполняет те или иные действия. Запрос передается в виде объекта, имеющего тип TWebRequest. Допустим, создан Web-модулъ MyTest.exe. Он должен быть помещен в подходящий виртуальный каталог Web-сервера, (условный Web-узел www.my-site.ru), для которого установлены права на запуск программ CGI на сервере. Как правило, такой каталог называется cgi-bin. Данный модуль будет вызван, если пользователь наберет в адресной строке своего браузера такой текст:
http://www.my-site.ru/cgi-bin/MyTest.exe/PARAM?f7
Здесь:
http://www.my-site.ru — адрес Web-узла;
cgi-bin — каталог;
MyTest.exe — запускаемый Web-модулъ;
/PARAM1 — название параметра;
? — символ, отделяющий название параметра от его значения;
f7 — значение параметра PARAM1
Модуль можно запускать и без параметров:
http://www.my-site.ru/cgi-bin/MyTest.exe а также со значением, указываемым модулю без названия параметра:
http://www.my-site.ru/cgi-bin/MyTest.ехе?с5
Если отсутствует полноценная возможность отладки Web-приложений (нет доступа к Web-серверу, ограничено время в Интернете или возникло иное препятствие), то можно организовать работу Web-сервера в локальном режиме, например, установить на компьютер Web-сервер Microsoft Personal Web Server. Тогда можно обратиться из браузера к этому серверу (он должен быть запущен), набрав в адресной строке такой текст:
http://127.0.0.1
Это IР-адрес локального компьютера. Соединение браузера с Web-сервером произойдет автоматически.
Есть и более привычный способ организации связи с локальным Web-сервером. В настройках протокола TCP/IP (значок Сеть на Панели управления) можно указать имя компьютера (вкладка Конфигурация DNS, поле Имя компьютера), например TestBed. Это название служит виртуальным синонимом текущего IР-адреса (127.0.0.1) компьютера, и теперь обращаться к запущенному Web-серверу можно, набрав в строке браузера следующий адрес:
http://TestBed
Для проверки работы Web-модуля в адресной строке браузера задаются различные параметры запуска:
http://TestBed/cgi-bin/MyTest.exe
http://TestBed/cgi-bin/MyTest.exe/DAY?name
http://TestBed/cgi-bin/MyTest.exe/DAY?full
http://TestBed/cgi-bin/MyTest.exe/TIME