- •Методические указания
- •230400.62 «Информационные системы и технологии»
- •Окно выбора типа веб-модуля
- •Html-страница с запросом
- •Список действий веб-модуля
- •Инспектор объектов
- •Html-страница с ответом сервера
- •Методические указания
- •230400.62 «Информационные системы и технологии»
- •394026 Воронеж, Московский просп., 14
Окно выбора типа веб-модуля
Каждый из этих модулей запускается на сервере. При обращении к нему из браузера пользователя веб-сервер загружает соответствующую программу, при необходимости передает ей параметры и ожидает окончания ее работы, после чего отсылает результаты обратно браузеру пользователя.
Если к веб-серверу обращается множество пользователей, то для каждого из них запускается копия программного модуля, что может вызвать значительную перегрузку компьютера. В таких случаях лучше использовать модули в формате ISAPI/NSAPI, которые ускоряют запуск благодаря тому, что выполнены в формате .dll и позволяют веб-серверу использовать их функции во внутреннем рабочем пространстве. Недостаток подобного подхода в том, что при каждом изменении модуля в формате .dll надо перезапускать сам веб-сервер, чтобы он выполнил перезагрузку этого модуля в свое адресное пространство. Форматы CGI требуют запуска полноценной консольной программы.
Параметры и результаты
Веб-модуль получает от веб-сервера набора параметров (запрос), указанных пользователем вручную или сгенерированных браузером автоматически. В зависимости от этих параметров модуль выполняет те или иные действия. Запрос передается в виде объекта, имеющего тип 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
Здесь параметры отделены друг от друга символом &, названия элементов и соответствующие им значения – символом =.
Пример создания веб-модуля
Рассмотрим пример написания модуля, принимающего данных от пользователя.
Для этого подготовим 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):