- •1. Компоненты, используемые при разработке Web-приложений
- •2. Статическая публикация
- •3. Компоненты генерации html-страниц
- •3.1. Компонент PageProducer
- •3.2. Компонент DataSetPageProducer
- •3.3. Компонент DataSetTableProducer
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •3.4. Компонент QueryTableProducer
- •3.5. Пример генератора html-страниц
- •Var ReplaceText; String); procedure PageProducerlHtmlTag(Sender: tObject; Tag: tTag;
- •Var ReplaceText: String); procedure DataSetTableProducerlFormatCell(Sender: tObject; CellRow,
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs, f
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •4. Динамическая публикация
- •4.1. Создание модуля cgi
- •II:integer;
- •Var I: integer;
- •Var I: integer;
- •Var I: integer;
- •4.2. Создание isapi-модуля расширения сервера
- •4.3. Обработка ввода пользователя в модуле isapi
- •5. Публикация графики
- •Interface
- •Var Align: thtmlAlign; var vAlign: thtmlvAlign; var CustomAttrs,
- •6. Использование интерфейса ado
4. Динамическая публикация
Для Web-приложений, использующих БД, могут применяться технологии активных серверных страниц, модули расширения на основе Java или интерфейсов программирования CGI, ISAPI (NSAPI), WinCGI. При этом применение интерфейсов программирования является предпочтительным по сравнению с другими технологиями при решении нестандартных задач, например, при обеспечении взаимодействия Web-сервера с сервером, осуществляющим прием платежей для обслуживания интернет-магазина. Кроме того, модули расширения сервера, созданные на основе интерфейсов программирования, позволяют реализовать более быструю обработку запросов пользователей Web-приложения к БД.
В этом разделе рассматриваются средства Delphi, предназначенные для создания модулей расширения на основе интерфейсов программирования CGI и ISAPI.
4.1. Создание модуля cgi
Познакомимся с особенностями разработки модуля CGI средствами Delphi на примере обычного консольного приложения.
Создадим модуль CGI с именем cgifirst.exe, который будет осуществлять генерацию HTML-страниц на основе информации из базы данных animals.dbf, входящей в демонстрационный пакет программ Delphi. Для запуска этого модуля нужно выполнить следующие действия:
установить Web-сервер (Personal WS или MS IIS);
задать в параметрах проекта путь для выходного каталога (OutPut), где размещаются сценарии (для Personal WS — это каталог Webshare\Scripts, а для MS IIS - Inetpub\Scripts);
создать в среде Delphi новое консольное приложение.
Загрузка модуля cgifirst.exe производится с помощью HTML-страницы, содержащей ссылку:
<р> <а href="http://igin/scripts/cgifirst.exe"> Пример CGI — модуля </а> </р>
Исходный текст программы (консольного приложения) CgiFirst приводится в приложении 3 ниже.
program CgiFirst; {$APPTYPE CONSOLE} uses
Windows, SysUtils, DBTables, DB;
var
// массив для хранения URL CGI-модуля
ScriptName: array [0..100] of Char;
// массив для хранения параметров строки запроса
PathName: array [0..30] of Char;
// массив для хранения типа метода
MethodName: array [0..30] of Char;
// флаг, используемый для возвращения на главную страницу
k:integer;
// внутренняя переменная
II:integer;
Tablel: TTable;
// Процедура вывода заголовка страницы
procedure Header; forward;
// Процедура вывода окончания страницы
procedure Footer; forward;
// Процедура вывода списка ссылок
procedure ShowList; forward;
// Процедура вывода таблицы данных
procedure ShowTable; forward;
// Процедура вывода результатов запроса
procedure Showquery(it:integer); forward;
// Вывод заголовка страницы
procedure Header;
begin
writeln('Content type: text/html');
writeln;
writeln('<HTML> <HEAD>');
writeln('<TITLE> Cgi-приложение </TITLE>');
writeln('</HEAD> <BODY>');
writeln('<H1> Публикация БД CGI-приложением </Н1>');
writeln('<HR>');
end;
// Вывод окончания страницы .
procedure Footer;
begin
writeln('<HR>');
writeln('<Center> <b> БД из файла '+
Tablel.TableName + '</b> </H2> </Center>'); writeln('</BODY>'); writeln('</HTML>'); end;
// Вывод списка ссылок
procedure ShowList;
