Главная » Delphi » Объект ASP Request

0

Прежде чем  продолжать, рассмотрим другой  очень   важный внутренний объект ASP Request (Запрос). Подобно объекту  Response, Request доступен  внутри  мето дов (интерфейса) активных объектов сервера. Объект Request применяется для дос тупа ко всей вводимой информации. Существует  три  способа  ввода: с помощью пере менных форм, передаваемых методом POST, с помощью переменных “жирных”  (“fat”) URL, передаваемых методом GET, и с помощью cookies.  Каждый  из них обладает свойством по имени  Items (Элементы), представляющим собой  набор  строк  для хра нения содержимого объектов ASP Response или Request.

Модифицированный  метод  Welcome,  получающий значение  Name из  исходной формы, используется в сценарии ASP, представленном в листинге 22.4.

Листинг 22.4. Определение модифицированного метода Welcome

procedure TDrBob42.Welcome;

var

Str: String;

begin

Str := Request.Form.Item[‘Name’]; Response.Write(‘Hello, ‘+Str+’!’); Response.Write(‘<P>’);

Response.Write(‘Welcome to Delphi 6 and ASP Objects’);

end;

Та же самая методика применяется для объектов QueryString и Cookies.

Перекомпиляция активных объектов сервера

Те,  кто  попробовал снова  скомпилировать проект D6ASP, вероятно, получили от Delphi такое  сообщение об ошибке:  Could not create output file D6ASP.dll.

(Невозможно создать результирующий файл D6ASP.dll.) Такое сообщение по

явилось потому, что активный объект сервера DrBob42, расположенный внутри биб

лиотеки D6ASP.dll, все еще используется и кэшируется Web сервером. Поэтому  при

попытке перекомпилировать данный активный объект сервера компоновщик выдаст

сообщение об ошибке:  The file is still in use. (Файл все еще использу- ется.) Можно  попробовать завершить работу  IIS, но и это не поможет. Завершение работы службы публикации в Internet (World  Wide  Web Publishing Service)  тоже  ока жется  бесполезным. Фактически придется завершить работу  всех служб администри рования IIS (IIS Admin  Service) прежде, чем ASP.DLL и все активные объекты сервера будут удалены  из памяти и появится возможность их перекомпилировать. Обратите внимание, что  завершение работы служб администрирования IIS (показанное в диа логовом окне  на  рис. 22.7),  означает завершение работы и  всех  связанных с ними служб и средств  (WWW, FTP и так далее).  Конечно, это вовсе  не то, что можно  было бы сделать на реальном Web сервере.

При  попытке завершить работу  службы IIS Admin  появится диалоговое окно Stopping, показанное на  рис. 22.8,  информирующее о  зависимых службах,  которые также должны  завершить работу.

Рис. 22.7. Служба IIS Admin                                       Рис. 22.8. Диалоговое окно Stopping, завершающее  работу службы World Wide Web Publishing

Чтобы упростить процесс перезапуска служб NT при  перекомпиляции и переуста новке  активного объекта сервера, можно  воспользоваться командным файлом RESTART.BAT примерно следующего содержания:

net stop "World Wide Web Publishing Service" net stop "IIS Admin Service"

net start "World Wide Web Publishing Service"

CОВЕТ

На машине, используемой только для разработки, можно явно отменить кэширование Web-сервером активных объектов. Естественно, этого не следует делать на рабочих машинах, поскольку произойдет превращение активных объектов сервера в приложе- ния, работающие даже медленнее обычного CGI — ведь их придется загружать для каждого клиентского запроса. Это эквивалентно активному объекту внешнего сервера, который вообще никогда не используется, за исключением специфической ситуации разработки.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии