Создание CGI-приложения
Если WEB-броузер посылает в качестве запроса URL-адрес CGI-приложения, то web-сервер запускает это приложение и передает ему параметры запроса через стандартный ввод. Сформированная в результате выполнения CGI-приложения HTML-страница возвращается WEB-серверу через стандартный вывод.
Для того, чтобы создать CGI-приложение, запускаемое на сервере, следует создать проект Web Server Application и в диалоге New Web Server Application (рис. 28.3) выбрать тип серверного приложения (например, CGI Stand-alone executable).
Рис. 28.3. Диалог New web Server Application
В результате будет создан проект, содержащий главный файл приложения и модуль Unit1:
{Главный файл приложения} program Project1; {$APPTYPE CONSOLE} uses WebBroker, CGIApp, Unit1 in 'Unit1.pas' {WebModule1: TWebModule}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TWebModule1, WebModule1); Application.Run; end. {Модуль Unit1.pas} unit Unit1; interface uses SysUtils, Classes, HTTPApp; type TWebModule1 = class(TWebModule) private { Private declarations } public { Public declarations } end; var WebModule1: TWebModule1; implementation {$R *.DFM} end.
Для того чтобы создать код, формирующий HTML-страницу, следует создать объект типа TWebActionItem (например, WebActionItem1), а далее создать для данного объекта обработчик события действия OnAction.
При этом автоматически будет сформирован следующий код:
procedure TWebModule1.WebModule1WebActionItem1Action( Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin end;
Код HTML-страницы записывается в свойство Content объекта Response.
Например:
//1. Response.Content:='<I>Результат выполнения </I> '+ <P> <B> CGI-приложения </B></P>; // 2. var aPage : TStringList; i: integer; begin aPage:= TStringList.Create; aPage.Add('Method = ' +Request.Method + '<BR>'); aPage.Add('URL = ' + Request.URL+ '<BR>'); aPage.Add('User Agent = ' + Request.UserAgent+ '<BR>'); aPage.Add('Remote Address = ' + Request.RemoteAddr+ '<BR>'); aPage.Add('Remote Host = ' + request.RemoteHost+ '<BR>'); Response.Content := aPage.Text; aPage.Free;
После размещения созданного CGI-приложения в каталог WEB-сервера, предназначенный для исполняемых файлов, web -браузер может формировать запрос, указывая URL-адрес данного CGI-приложения.