Н. 3. Елманова, C++ Builder 3.0, архитектура "клиент/сервер" и Internet
}К Souice of: hllp://delault/sciipls/web e»e - Netscape
|<НТМ1.ХВОП?ХНЗ>Привет  всем!</НЗХВНХН2>Сейчас     10:40:48     </H2X/BODYX/HlML>
Рис. 9.7. Динамически генерируемая HTML-страница
Теперь можно сохранить полученный исполняемый файл в каталоге, предназначенном для Web-приложений (в случае MS Internet Information Server это по умолчанию каталог C:\Inetpub\scripts, а в случае MS Personal Web Server for Windows 95 - каталог C:\Webshare\scripts). Затем можно обратиться к приложению через Web-браузер, указав URL приложения. Следует иметь в виду, что внешнему пользователю, обращающемуся к созданному приложению через браузер, не видна структура каталогов компьютера, содержащего Web-сервер, вместо этого ему следует вводить их псевдонимы. Такая организация работы Web-сервера необходима для обеспечения безопасности данных, содержащихся за пределами каталога, доступного Web-серверу7ведь в противном случае произвольный внешний пользователь может иметь доступ к файлам, хранящимся на содержащем Web-сервер компьютере.
Если несколько раз нажать на кнопку Reload, значение времени, отображаемое на экране браузера, будет меняться. Это подтверждает, что страница действительно генерируется динамически (рис. 9.8).
Рис. 9.8. Динамически генерируемая HTML-страница
218
Создание Web-приложений
9.2     Публикация данных в Internet
Среди доступных программисту средств визуальной разработки Web-приложений хотелось бы особо отметить средства, позволяющие осуществлять публикацию данных в Internet. Для этой цели используются компоненты TDataSetTablePxqducer и TQueryTableProducer, получающие данные либо из компонентов TDataSet, либо с помощью запроса к базе данных и представляющие их в виде HTML-документа, содержащего таблицу с результатами запроса.
Поместим компоненты ТТаЫе, TDatabase, TSession и TDataSetTableProducer в WebModulel (рис. 9.9).
Рис. 9.9.  Компоненты ТТаЫе, TDatabase и  TDataSetTableProducer e WebModulel
Установим свойство AutoSessionName компонента TSession равным true, свойство LoginPrompt компонента TDatabase равным false, а также свяжем компоненты TDatabase и TSession с помощью свойства SessionName. Установим необходимые значения псевдонима, имени пользователя, пароля. Установим свойство Connected равным true. Свяжем компонент ТТаЫе с компонентом TDatabase, выберем имя таблицы, установим свойство Active равным true. Выберем из выпадающего списка свойство DataSet компонента TDataSetTableProducer.
Теперь из контекстного меню компонента TDataSetTableProducer выберем опцию Responce Editor. Этот редактор свойств позволяет визуально менять свойства и внешний вид генерируемых HTML-документов, содержащих табличное представление публикуемых данных (рис. 9.10).
219