Создание серверного приложения
web-браузер посылает в качестве запроса URL-адрес серверного приложения, а Web-сервер запускает это приложение и передает ему параметры запроса. Сформированная в результате выполнения серверного приложения HTML-страница возвращается WEB-браузеру web-сервером.
Для того, чтобы создать серверное приложение (например CGI), следует:
- Создать новый проект (команда меню File|New|Other, вкладка New, пиктограмма Web Server Application).
- В диалоге New Web Server Application указать тип создаваемого проекта (например CGI Stand-alone executable).
В результате будет создан проект, содержащий главный файл приложения и модуль Unit1, имеющий следующий код:
{Модуль 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-страницу, следует:
- Для объекта TWebModule1 выполнить двойной щелчок мышью на свойстве Action.
- В диалоге Editing WebModule1.Actions создать новый элемент (кнопка Add New).
- Создать для объекта WebActionItem1 обработчик события OnAction. При этом автоматически будет сформирован следующий код: procedure TWebModule1.WebModule1WebActionItem1Action( Sender: TObject; Request: TWebRequest; // Объект запроса - // позволяет получать данные о выполняемом запросе Response: TWebResponse; // Объект ответа - // используется для формирования ответа // (HTML-страницы var Handled: Boolean); begin
end;
-
Сформировать в созданном обработчике события код, формирующий текст HTML-страницы. Этот текст должен быть записан в свойство Content объекта Response.
Свойству Content можно присваивать значение, оформленное как массив строк. Это может быть реализовано следующимспособом:
-
посредством конкатенаций нескольких строковых значений;
Например:
Response.Content:='<I><База данных MyDB </I> '+ <P> <B> Таблица TBL1 </B></P>;
-
с применением переменной типа TStringList, реализующей работу с массивом строк.
В этом случае следует объявить переменную данного типа, создать ее, а затем, используя метод add, добавить в нее все строки формируемой HTML-страницы.
Например:
var aPage : TStringList; i: integer; begin aPage:= TStringList.Create; aPage.Add(' База данных MyDB '+ '<BR>'); aPage.Add(Таблица TBL1 ' + '<BR>'); aPage.Add('f1 = ' + DataSource1.DataSet.FieldByName('F1').AsString+ '<BR>'); // Последовательно записываем в созданный массив строк // все значения из открытого набора данных Response.Content := aPage.Text; aPage.Free;
-
После размещения созданного серверного приложения в каталог web-сервера, предназначенный для исполняемых файлов, web-браузер может формировать запрос, указывая URL-адрес данного CGI-приложения.
Например: http://localhost/webpub/ProjectDB.exe.
В том случае, если необходимо реализовать не только публикацию данных, но и предоставить средства их редактирования, отображение данных следует выполнять внутри формы в компонентах типа "поле ввода". Кнопка типа submit должна будет вызывать серверное приложение, которое будет использовать получаемые из запроса данные для обновления таблицы базы данных.