Введение в программирование

       

Создание 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-приложения.



Содержание раздела