- ВВЕДЕНИЕ В JAVASCRIPT
- Переменные в JavaScript
- Семь вариаций на тему “Hello, world!”
- Вариация первая: самый простая
- Объявление переменных
- Вариация вторая: с секретным исходным текстом
- Присвоение значения переменным
- Вариация третья: с переменной и функциями
- Типы данных
- Вариация четвертая: создание страницы “на лету”
- Вариация пятая: с диалоговой панелью
- Вариация шестая: обработка события
- Вариация седьмая: с определением типа браузера
- Унарные операторы
- Бегущий текст в строке состояния браузера
- Бинарные операторы
- Встроенные объекты
- Встроенные функции
- Встроенный класс Date
- Встроенный класс Math
- Загрузка документа HTML в окно браузера
- Иерархия объектов в формах
- КЛАССЫ И ОБЪЕКТЫ В JAVASCRIPT
- Массивы в JavaScript
- Методы объекта document
- Объект document
- Объект window
- Объекты браузера
- Объекты на базе классов, создаваемых программистом
- Объекты, входящие в состав форм
- Ограничение времени реакции пользователя
- Оператор <FORM>
- Оператор присваивания
- Операторы для работы с отдельными битами
- Операторы отношения
- Операторы сдвига
- Операторы цикла
- Открываем новое окно
- Переключатель checkbox
- Плавное изменение цвета фона документа HTML
- Преобразование типов данных
- Пример формы с переключателями
- Примеры использования операторов цикла
- Примеры сценариев, работающих со списками
- Прочие операторы
- РАБОТА С ФОРМАМИ
- Свойства объекта document
- Свойства объекта form
- События для объекта window
- Список select
- Ссылки и метки в документе
- Старшинство операторов JavaScript
- Сценарии, работающие с объектами window
- Три типа объектов JavaScript
- Условные операторы
- Форма и ее свойства
- Функции в языке сценариев JavaScript
- Цветовое оформление документа
Получение cookie расширением сервера Web
В этом разделе мы приведем пример документа HTML, создающего cookie, а также исходные тексты расширения сервера ISAPI, отображающее на динамически создаваемой странице заголовки HTTP этого документа. Когда браузер создает cookie, расширение сервера получает заголовок HTTP_COOKIE и отображает его.
Наш документ аналогичен описанному ранее в разделе “Записная книжка Cookies Notepad” (рис. 7.8).
Рис. 7.8. Документ HTML, работающий с cookie и расширением сервера ISAPI
Дополнительно мы разместили в документе кнопку Send. С помощью этой кнопки содержимое окна редактирования и заголовок HTTP_COOKIES передается расширению ISAPI сервера Web.
Расширение ISAPI отображает содержимое cookie, как это показано на рис. 7.9.
Рис. 7.9. Результат работы расширения ISAPI
Исходный текст документа HTML вы найдете в листинге 7.4.
В нем, по сравнению с документом из раздела “Записная книжка Cookies Notepad”, мы добавили параметр ACTION в оператор , а также кнопку типа submit с надписью Send. С помощью этой кнопки данные из формы отправляются расширению ISAPI:
. . .
. . .
. . .
Исходный текст расширения ISAPI представлен в листинге 7.5. Он сделан на базе примера, взятого из 29 тома нашей “Библиотеки системного программиста” (раздел “Приложение ISHELLO” восьмой главы).
Файл определения модуля для библиотеки DLL расширения приведен в листинге 7.6.
Листинг 7.6. Файл chapter7/NotebookISAPI/ishello.def
LIBRARY ishello
DESCRIPTION 'Simple ISAPI DLL'
EXPORTS
GetExtensionVersion
HttpExtensionProc
Для извлечения значения cookie, предаваемого расширению через заголовки HTTP, мы использовали функцию GetServerVariable, указав ей в качестве второго параметра имя интересующей нас переменной HTTP_COOKIE:
lpECB->GetServerVariable(lpECB->ConnID,
(LPSTR)"HTTP_COOKIE", (LPVOID)szTempBuf, &dwSize);
Полученное таким образом значение дописывается в буфер динамически создаваемого документа HTML. Этот буфер впоследствии будет отправлен клиенту при помощи функции ServerSupportFunction.
