Architecture Net


Создание и запуск проекта на основе ATL Server - часть 2


<html>
<head>
</head>
<body> <!-- тело -->


This is a test: Hello World!<br>
<!-- Это - испытание: Привет, мир! -->
</body> <!-- тело -->
</html>

7.gif


Рис. 12.7. Только что размещенное приложение ATLServerApp

Обратите внимание, что в .srf-файле указан метод-обработчик Default (Стандартный) в ATLServerApp. dll, а также дескриптор Hello (Привет), который будет заменен в результате подстановки, выполняемой динамически подключаемой библиотекой (DLL) Web-приложения

{{handler ATLServerApp.dll/Default}}
This is a test. {{Hello}}
({{обработчик ATLServerApp dll/Default}}
Это - испытание: {{Привет}})

В исходном коде указанной динамически подключаемой библиотеки (DLL) ATLServerApp.dll видно, что атрибут обработчика Default (Стандартный) применяется к классу CATLServerAppHandler, в котором содержится метод OnHello с атрибутом tag_name, соответствующим дескриптору Hello (Привет) Это означает, что когда информационный сервер Internet (US) получает запрос именно на этот . srf-файл, то, чтобы текстовая строка заменяла дескриптор, т е передавалась в ответ на запрос клиента, информационный сервер Internet (US) загружает указанную динамически подключаемую библиотеку (DLL), находит названный класс и вызывает указанный метод OnHello

8.gif


Рис. 12.8. Просмотр стандартного файла ATLServerApp srf

Таблица 12.1. Структура EXTENSION_CONTROL_BLOCK для ATLServerApp.srf

Компонент структуры Значение
IpszMethod (метод) "СЕТ" (Получить)
IpszOueryString (строка запроса) " "
IpszPathlnf о (информация о пути) "/ATLServerApp/ ATLServerApp srf"
pbData (данные) 0

[ request_handler("Default") ] // по умолчанию


class CATLServerAppHandler
{
[ tag_name(name="Hello") ] // Привет
HTTP_CODE OnHello(void)
{
m__HttpResponse « "Hello World'"; // Привет, мир!
return HTTP_SUCCESS;
}


CompEbook.ru Железо, дизайн, обучение и другие




- Начало -  - Назад -  



Книжный магазин