Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 70053.doc
Скачиваний:
3
Добавлен:
01.05.2022
Размер:
323.58 Кб
Скачать
  1. Окно выбора типа веб-модуля

Каждый из этих модулей запускается на сервере. При обращении к нему из браузера пользователя веб-сервер загружает соответствующую программу, при необходимости передает ей параметры и ожидает окончания ее работы, после чего отсылает результаты обратно браузеру пользователя.

Если к веб-серверу обращается множество пользователей, то для каждого из них запускается копия программного модуля, что может вызвать значительную перегрузку компьютера. В таких случаях лучше использовать модули в формате ISAPI/NSAPI, которые ускоряют запуск благодаря тому, что выполнены в формате .dll и позволяют веб-серверу использовать их функции во внутреннем рабочем пространстве. Недостаток подобного подхода в том, что при каждом изменении модуля в формате .dll надо перезапускать сам веб-сервер, чтобы он выполнил перезагрузку этого модуля в свое адресное пространство. Форматы CGI требуют запуска полноценной консольной программы.

    1. Параметры и результаты

Веб-модуль получает от веб-сервера набора параметров (запрос), указанных пользователем вручную или сгенерированных браузером автоматически. В зависимости от этих параметров модуль выполняет те или иные действия. Запрос передается в виде объекта, имеющего тип TWebRequest. Допустим, создан веб-модуль test.exe. Он должен быть помещен в подходящий виртуальный каталог веб-сервера, для которого установлены права на запуск программ CGI на сервере. Как правило, этот каталог называется cgi-bin. Данный модуль будет вызван, если пользователь наберет в адресной строке такой текст:

http://www.my-site.ru/cgi-bin/test.exe/param1?value1

Здесь

http://www.my-site.ru – адрес веб-узла;

cgi-bin – каталог;

test.exe – запускаемый веб-модуль;

/param1 – название параметра;

? – символ, отделяющий название параметра от его значения;

value1 – значение параметра param1.

Модуль можно запускать и без параметров:

http://www.my-site.ru/cgi-bin/test.exe

После того как на сервере выполнены нужные действия, зависящие от переданной информации, модуль возвращает серверу результат своей работы. Он записывается в объект, имеющий тип TWebResponse. Этот результат представляет собой строку, содержащую текст HTML, который и отображается браузером пользователя в качестве текущей страницы.

Содержимое возвращаемой страницы представляет собой строку, состоящую из комментария и введенных пользователем значений:

http://www.my-site.ru/cgi-bin/test.exe?param1=value1& param2=value2

Здесь параметры отделены друг от друга символом &, названия элементов и соответствующие им значения – символом =.

    1. Пример создания веб-модуля

Рассмотрим пример написания модуля, принимающего данных от пользователя.

Для этого подготовим HTML-страницу, на которой разместим следующий код:

<html>

<head><title>Прием данных от формы</title></head>

<body>

<b>Введите ваше имя и электронный адрес:</b>

<p><form action = 'http://127.0.0.1/cgi-bin/get.exe' method = 'get'>

<table>

<tr>

<td>Имя</td><td>

<input type = 'text' size = 20 name = 'name'></td>

</tr>

<tr>

<td>Адрес электронной почты:</td>

<td><input type = 'text' size = 20 name = 'e_mail'></td>

</tr>

<tr>

<td><input type = 'submit' name = 'button' value = 'Отправить'></td>

</tr>

</table>

</form></p>

</body>

</html>

По щелчку по кнопке Отправить выполнится Web-модуль, указанный как значение атрибута action в теге form:

http://127.0.0.1/cgi-bin/get.exe

Информацию от формы он получит, как обычно в виде параметров. Если загрузить подготовленную страницу в браузер, то она будет выглядеть следующим образом (рис. 2):