HTML и базы данных — страница 9

  • Просмотров 11803
  • Скачиваний 479
  • Размер файла 164
    Кб

формы. Если отбросить адрес сервера , то запрос имеет вид командной строки DOS webshop.dll/addmsg?sender=xxx@xxx&message=ccc Библиотека webshop.dll –называется ISAPI приложением (ISAPI – Internet Services API). Именно обзору интерфейса ISAPI будет посвящена следующая глава. ISAPI приложения Место программирования в публикации данных таково. Приемом и обработкой запросов от клиентов занимается WEB сервер. Большая часть серверов Internet работает под управлением UNIX и

популярного на этой платформе сервера Apache, растет популярность платформы Windows NT Server и сервера Microsoft Internet Information Server. Сервер реализует поддержку протокала HTTP, принимая от браузеров клиентов запросы и выдавая им в ответ те или иные WWW страницы. Но всех возможных запросов не предусмотришь поэтому после после получения запроса сервер передает управление WEB –интерфейсу БД (модулю расширения) . Чаще всего эти модули расширения

называют сценариями или скриптами (scripts). Задача такого скрипта - обработать запрос , извлечь из базы данных или другого внешнего источника нужную информацию, оформить ее в виде HTML документа и передать ее обратно серверу, который возьмет на себя труд отправить ее браузеру клента. Первым и общепринятым интерфейсом для создания модулей расширения является CGI (Common Gateway Interface) , распространенный в Unix. Излюбленным языком написания CGI

скриптов является PERL , хотя можно писать и на С, Basic и Delphi. Microsoft снабдила свой сервер Internet протоколом для взаимодействия с модулями расширения ISAPI (ISAPI – Internet Services API), по которому скрипт представляет собой динамическую библиотеку, загружаемую сервером и работающую с ним в одном адресном пространстве. Библиотека должна экспортировать вполне определенные функции (их три: GetExtensionVersion , HttpExtensionProc, TerminateExtension), которые и будут вызываться

сервером . Одна библиотика может обрабатывать сколько угодно запросов. Пример сгенеренной ISAPI модулем HTML страницы, выдающей ответ на зпрос: Исходный код ISAPI модуля на языке Delphi 4 unit webshopunit; interface uses Windows, Messages, SysUtils, Classes, HTTPApp, DBWeb, Db, DBTables; type TWebModule1 = class(TWebModule) GroupQuery: TQuery; WebSession: TSession; StoreQTP: TQueryTableProducer; GroupQueryMainGroup: TIntegerField; GroupQuerySubGroup: TIntegerField; GroupQueryGroupName: TStringField; StoreQuery: TQuery; ValidateQuery: TQuery; AddMsgQuery: TQuery; procedure WebModule1GetGroupAction(Sender: TObject; Request: TWebRequest; Response:

TWebResponse; var Handled: Boolean); procedure WebModule1Create(Sender: TObject); procedure StoreQTPFormatCell(Sender: TObject; CellRow, CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign; var VAlign: THTMLVAlign; var CustomAttrs, CellData: String); procedure WebModule1Destroy(Sender: TObject); procedure WebModule1ValidateAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); procedure StoreQTPGetTableCaption(Sender: TObject; var Caption: String; var Alignment: THTMLCaptionAlignment); procedure WebModule1AcceptOrderAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); procedure WebModule1SearchAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);