Язык SQL

CGI-ввод


Для Web-сервера Unix CGI-данные передаются CGI-программе с помощью комбинации переменных окружения и стандартного файла ввода. Тип метода передается в виде набранного большими буквами значения в переменной окружения

REQUEST_METHOD.

Для GET-метода CGI-взаимодействия входные данные предоставляются как значение переменной окружения QUERY STRING. Следующий оператор оболочки языка С (С shell, csh) передает строку запросов в качестве первого аргумента главной программе Java-miacca dbjava. website.CustomerCGi:

java dbjava.website.CustomerCGi $QUERY_STRING

Для POST-метода CGI-взаимодействия строка запросов передается CGI-программе в ее стандартный файл ввода. Переменная окружения CONTENT_LENGTH содержит количество символов во входном файле. В csh стандартный файл ввода называется $<. Следующий код передает строку запроса POST Java-nporpaMMe:

java dbjava.website.CustomerCGi $<

Одной из сложностей, возникающих при выполнении CGI-сценария в системе Unix, является то, что он должен выполняться как особый ,НТТР-пользователь, часто как пользователь “nobody” (никто). Как любят говорить разработчики: “Пользователь “nobody” не получит никакого CLASSPATH!” То есть, переменные CLASSPATH и PATH пользователя “nobody” при выполнении Java-аплетов могут быть установлены неправильно. Предлагаемый chs-еценарий принимает во внимание эти трудности, корректно обрабатывая как GET-, так и POST-запросы. Переменная CLASSPATH устанавливается так, чтобы включить каталог classes преподавателя riccardi. Путь выполняющей Java-nporpaMMbi указан явно как /usr/local/java/bin/ java. При разработке любого Web-узла следует изменить этот сценарий так, чтобы переменная CLASSPATH включала все каталоги, необходимые Java-nporpaMMe. Кроме этого, необходимо удостовериться, что зашита файлов и каталогов остается действенной для пользователя “nobody”.

#!/bin/csh

setenv CLASSPATH=/home/faculty/riccardi/classes – if ("$REQUEST_METHOD" == "GET") then

/usr/local/java/bin/java dbjava.website.CustomerCGi "$ QUERY_STRING"

else

/usr/local/java/bin/java dbjava.website.CustomerCGi $<

end if

Web-серверы для систем Microsoft Windows NT и Windows 98 также используют языки сценариев для CGI-взаимодействия. К сожалению, эти операционные системы не имеют стандартных языков создания сценариев. Многие Web-серверы, включая Apache, нуждаются в том, чтобы системные администраторы или пользователи явно указывали систему-исполнитель для языка сценариев. Основным методом обработки CGI для сервера Microsoft Internet Information Server является использование активных страниц сервера (Active Server Pages).

Комментарии закрыты