ДонНУ, кафедра КТ, проф. В. К. Толстых Технологии разработки Internet- приложений Среда Delphi: CGI, ISAPI приложения (В Visual Studio нет прямых и простых.

Презентация:



Advertisements
Похожие презентации
Проф. В.К.Толстых, Технологии разработки Internet- приложений Delphi for.NET примеры: работа с файлами Из цикла лекций «Технологии разработки.
Advertisements

ДонНУ, кафедра КТ, проф. В. К. Толстых Технологии разработки Internet- приложений Среда Delphi: CGI, ISAPI приложения Базы данных Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Проф. В.К.Толстых, Выполнил студент: Тышлек С.В., 2009 Технологии разработки Internet- приложений Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – валидация, валидационные элементы управления Из цикла.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Проф. В.К.Толстых, Пример Web-службы Калькулятор с валидацией Из цикла лекций «Internet-технологии разработки приложений» для студентов.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: обработка данных форм. работа с формами работа с формами.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – класс Control Из цикла лекций «Технологии разработки.
УФК по Республике Крым Установка и настройка программного обеспечения автоматизированного рабочего места пользователя системы «Электронный бюджет» Заместитель.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – локализация ресурсов приложения Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: HtmlControls Из цикла лекций «Технологии разработки Internet-приложений»
ДонНУ, кафедра КТ, проф.В.К.Толстых Платформа.NET Widows-приложения в среде Delphi for.NET Из цикла лекций «Internet-технологии разработки приложений»
Администрирование информационных систем Создание и управление веб-узлом.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Кэширование вывода страниц Из цикла лекций «Технологии.
Транксрипт:

ДонНУ, кафедра КТ, проф. В. К. Толстых Технологии разработки Internet- приложений Среда Delphi: CGI, ISAPI приложения (В Visual Studio нет прямых и простых средств создания ISAPI расширений) Delphi –Windows, Kylex – LinuxPageProducer Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Delphi – вид Web Server Application

Создание Web-приложения

Создание Web-модуля в приложении Если Action несколько, то для них надо указывать свои пути

Сгенерированный код Web-модуля unit Unit1; interface uses SysUtils, Classes, HTTPApp; type TWebModule1 = class(TWebModule) procedure WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); private { Private declarations } public { Public declarations } end; var WebModule1: TWebModule1; Добавлен заголовок обработчика onAction

(продолжение) Обработчик onAction 1 … implementation {$R *.dfm} procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); Begin {место программирования кодов обработки Web-запроса} end; end. Контейнер запросаКонтейнер ответа Флаг для диспетчера о готовности ответа

Рекомендации для создания и тестирования приложения При тестировании Web-приложений в свойствах браузера в разделе «временные файлы» установить «Проверять наличие обновления… при каждом посещении страницы». Создать Web-сайт, или Web-приложение (рекомендуем это!), или виртуальный каталог (см. Архитектура IIS.ppt), установить Web и NTFS разрешения (разрешить запуск сценариев и исполняемых файлов – для IIS5 и 6, для IIS7; запись в файлы – см. далее).Архитектура IIS.pptIIS5 и 6IIS7 Для ISAPI (IIS 5) и ASP (IIS 6) отменить кэширование. При работе в локальной сети можно использовать соседний IIS. Доступ к его корню – это компьютера, например, Убедитесь, что в настройках подключения браузера к сети его запросы не отправляются к удаленному прокси-серверу (отметить «не использовать прокси- сервер для локальных адресов») Теперь можно в какой-либо среде разработки сайтов, например, SharePoint Designer 2007, Visual Studio… подключиться к созданному сайту (приложению, виртуальному каталогу) на локальном IIS и приступать к его разработке. Введите в строке открытия сайта –

Установка NTFS-разрешений 1.Убедитесь, что у вас есть закладка Безопасность в свойствах файлов и папок. Если нет, то в меню Windows Explorer выберете: Сервис – Свойства папки… – Вид – Использовать простой общий доступ к файлам – снять флаг, 2.Теперь для необходимого файла в его свойствах можно выбрать появившуюся закладку Безопасность, далее выберете имя пользователя от которого вы работаете, или – Гостевую учётную запись, и поставьте флаги на Чтение, Запись или Полный доступ для выбранного Вами ресурса.

Web-модуль TWebModule = TDataModule + TWebDispatcher Основные свойства TWebModule: Actions => TWebActionItem: Default, Enabled, MethodType, PathInfo Событие: OnAction

Web-диспетчер TwebDispatcher, согласно запросу, ищет действия с подходящими MethodType (POST, GET…) и PathInfo, если такое действие находится, то вызывается обработчик OnAction этого действия. Обработчик помещает ответ в WebResponse. Если формирование ответа не закончено, то устанавливают значение параметра Handled:=False (по умолчанию - True). В этом случае диспетчер запускает обработчик действия со свойством Default:=True, не зависимо от значений его свойств MethodType и PathInfo. Если значение PathInfo не определено и действие имеет значение Enabled=Default=True, то оно будет обработано первым. Если диспетчер не нашел ни одного действия, то связь сервера с клиентом разрывается без всяких сообщений. События: BeforDispatch, AfterDispatch

Демонстрация передачи клиентом параметров методами GET, POST Форма запроса: GET (2 КБ) POST (8 МБ) Путь к Action Пробел, преобразованный к 16-ричной форме

TWebRequest Содержит информацию, присылаемую от Клиента в HTTP-запросе Основные свойства Request : RemoteHost, UserAgent, Accept, Referer, Authorization, Cookies… (см. далее) Content :String – строка запроса с разделителями = и & POST: ContentFields :TStrings – массив строк типа name=value ContentFields.Values['name элемента формы '] – чтение значения Value элемента формы по его идентификатору, определённому в атрибуте name Query :String – строка запроса с разделителями = и & GET:QueryFields :TStrings – массив строк, разделённых на символе & QueryFields.Values[' имя параметра перед ='] – чтение значения параметра

Параметры запросов GET, POST:

Другие параметры запроса Web-Клиента Другие свойства Request через localhost Другие свойства Request через

Пример перенаправления запроса для дальнейшей обработки: Firm:=Request.QueryFields[1]; // статистика запросов для ДонНУ Response.SendRedirect(Request.QueryFields[0]+'? '+ // +GET-параметр Request.QueryFields[2]); // перенаправление TWebResponse Основные методы Response: SendResponse – отправить ответ (немедленно, не дожидаясь окончания OnAction) SendRedirect('новый URL') – перенаправить запрос Основные свойства Response: Content – контейнер строк HTML-кода для ответа (отправки) клиенту Cookies, ContentType… Содержит информацию, отправляемую Клиенту на HTTP-запрос 012

TPageProducer Основной метод: Content – генерирует HTML-страницу (просматривает HTML-шаблон, генерирует событие onHTMLTag для каждого настраиваемого тега заменяет настраиваемый тег HTML-кодом) Основные свойства: HTMLFile, HTMLDoc – шаблон страницы Генератор HTML-страниц на основе шаблонов Событие: onHTMLTag – возникает при каждой встрече с настраиваемым тегом: Параметры процедуры (обработчика события) onHTMLTag: Tag type TTag = (tgLink, tgImage, tgTable, tgCustom …); TagString – только имя тега, TagParams – только параметры тега ReplaceText – заменяет настраиваемый тег HTML-кодом

Работа с PageProducer подготовка запроса Клиентская часть

Включение и удаление из списка рассылки Введите Ваше имя, адрес электронной почты, выберете нужный "Пункт и нажмите кнопку "Включить" или "Удалить": Имя: Пункт 1 Пункт 2

Ответ сервера Серверная часть

Файл-шаблон ответа

Код файла-шаблона ответа для PageProducer1.HTMLFile Уважаемый коллега,, Спасибо за Ваш интерес к нашим разработкам! Ваша запись в списке рассылки: Пункт:

Подготовка ответа сервера Обработчик события onAction var Colleague, ,Item : String; Btn : Boolean; // - глобальные переменные procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin // определение имени коллеги Colleague:=Request.ContentFields.Values['name']; // определение =Request.ContentFields.Values['mail']; // обработка радиальных кнопок Case StrToInt(Request.ContentFields.Values['R1']) Of 1: Item:='Выбран Пункт 1'; 2: Item:='Выбран Пункт 2'; end; // "включить", "удалить" из списка If Request.ContentFields.Values['B1']='Включить' Then Btn:=True else Btn:=False; // формирование ответа Response.Content:=PageProducer1.Content; Handled:=True; // ответ готов end;

Разборка настраиваемых тегов Обработчик события onHTMLTag (пример 1) procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag; const TagString: String; TagParams: TStrings; var ReplaceText: String); begin Case Tag of tgCustom: If TagString='Tag1' Then ReplaceText:=Colleague else If TagString='Tag2' Then ReplaceText:= else If TagString='Tag3' Then ReplaceText:=Item else If TagString='Blank' Then If Btn Then ReplaceText:=' ' else ReplaceText:=' Указанная запись успешно удалена! '; tgImage: ReplaceText:=''; end;

Разборка настраиваемых тегов Обработчик события onHTMLTag (пример 2) procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag; const TagString: String; TagParams: TStrings; var ReplaceText: String); begin If TagString='Tag1' Then ReplaceText:=Colleague; If TagString='Tag2' Then ReplaceText:= ; If TagString='Tag3' Then ReplaceText:=Item; If TagString='Blank' Then If Btn Then ReplaceText:=' ' else ReplaceText:=' Указанная запись успешно удалена! '; If TagString='Image' Then ReplaceText:=''; end;