Добавление в сервер еще одного обработчика
Обработчик запросов, сгенерированный мастером ATL Server Wizard, предназначался только для того, чтобы показать вам, как можно писать свои собственные обработчики запросов. Проанализируйте следующий код. Он может служить простым примером добавления новых возможностей. Этот код добавлен к ATLServerApp.h [Эти возможности также добавлены к имеющемуся примеру проекта ATLServerApp]. В новом коде класс обработчика запросов отмечен как "Another" ("Другой"), а метод замены – именем дескриптора "Time" ("Время").
// Другой обработчик, который добавлен к ATLServerApp [request_handler("Another")] // Другой class CAnotherATLServerAppHandler { protected: // защищенный [ tag_name(name="Time") ] // Время HTTP_CODE GetTheCurrentTime(void) { SYSTEMTIME systemTime; GetLocALTime(SsystemTime); m_HttpResponse << system!ime.wHour << ":" << systemTime.wMinute; return HTTP_SUCCESS; } };
Как добавлять эти новые возможности к серверу, показывает файл Another.srf [К имеющемуся примеру проекта ATLServerApp добавлено несколько.srf-файлов. Все добавленные файлы будут описаны на нескольких следующих страницах.]. Если вы добавите этот файл и заново создадите проект, то данный.srf-файл автоматически разместится вместе с остальной частью сервера. При просмотре Another.srf на Web-браузере можно увидеть отображение текущего времени. Вот содержимое файла Another.srf.
{{handler ATLServerApp.dll/Another}} {{Time}} is the current time. ({{обработчик ATLServerApp.dll/Another}} {{Время}} – текущее время.)
Результат можно увидеть, перейдя по адресу http://localhost/ATLServerApp/Another.srf. Кроме того, он показан на рис. 12.9.
Рис. 12.9. Просмотр Another.srf