| ... |
Вячеславович Фролов, Григорий Вячеславович Фролов в Интернете практическое руководство по созданию Web-приложений с базами данных Издание исправленное УДК 004.7 ББК 32.973.202 Фролов А. В., Фролов Г.
В.
Ф91 Базы данных в практическое руководство по созданию Web-приложений с базами данных. Ч Изд. 2-ое, Ч дом 2000. Ч 448 ил.
ISBN 5-7502-0174-0 Эта руководство по созданию приложений Web с базами данных для Интернета, а также для корпоративной Здесь рассмотрены современные созданные Microsoft для работы с база ми данных. Основное уделяется применению ASP, CGI и ISAPI, ADO, элементов управления ActiveX, аплетов Java, сценариев JavaScript, а так же DHTML. Описаны основы использования и создания серверных управления ActiveX (с применением библиотеки классов ATL), а также апле тов Java.
Материал книги проиллюстрирован множеством примеров.
К книге прилагается компакт-диск с примерами программ и другим ПО.
Книга предназначена тем, кто создает собственные серверы Web с базами данных в Интернете, разработчикам корпоративных баз данных в студентам высших учебных заведений. Она также полезна при самостоятель ном изучении новых технологий, предназначенных для работы с базами данных.
УДК 004. ББК 32.973. в упражнениях компаний и персонажи и события являются Любые с реальными про людьми и являются ActiveX. Microsoft MS-DOS, PowerPoint, Visual Basic, Visual C++. Visual Visual Studio, Win32. Windows и Win dows NT либо либо охраняемыми товарными кор Microsoft в США и/или странах. Все другие знаки являются фирм.
й Фролов А. В., Фролов Г. В., й дом ISBN Русская Редакция, Оглавление Предисловие ко второму изданию XV Введение XIX Обзор технологий Интернета XX Требования к читателям XXI Структура книги XXIII Благодарности XXVI Глава 1 Сервер Web как ядро приложений для Интернета Основы работы сервера Web Пассивные и активные серверы Web Программы CGI Приложения ISAPI Расширения ISAPI ISAPI Активные страницы ASP Приложения Web Активность на стороне клиента Клиентские сценарии JavaScript Клиентские сценарии VB Script Элементы управления ActiveX Проблемы с реализацией клиентской активности Интеграция серверов Web и Программный интерфейс DB Library Программный интерфейс ODBC Объектный интерфейс Remote Data Object Объектный интерфейс OLE DB Объектный интерфейс ActiveX Data Objects Проект Интернет-магазина Установка программ и подготовка к работе Операционная система сервера Браузеры SQLServer Сервер Web Microsoft Developer Studio Microsoft FrontPage Глава 2 Сценарии в HTML и DHTML Объектная модель браузера Microsoft Internet Explorer Применение сценариев для создания интерфейса пользователя Начальная регистрация пользователя Ввод календарных дат Загрузка новой страницы в окно браузера VI Базы данных в Интернете. Практическое Перекодирование содержимого полей форм Отключение кэширования страниц Модальные и немодальные диалоговые панели Модальные диалоговые панели Вывод информационных сообщений Сообщение с выбором одной из двух возможностей Диалоговая панель на базе документа HTML Немодальные диалоговые панели Работа с фреймами Файл описания фреймов Параметры тега
Параметры Взаимодействие между фреймами Одновременная замена нескольких документов HTML в окнах разных фреймов Использование растровых изображений Растровое изображение как объект Динамическая замена растровых изображений Изменение внешнего вида графических ссылок Создание анимационных изображений Ожидание загрузки всех изображений Наложение фильтра на графическое изображение Применение Cookie в клиентских сценариях Выполнение основных операций с Cookie Создание Cookie Создание Cookie расширением сервера Web Создание Cookie в клиентском сценарии Получение значения Cookie Изменение значения параметра Cookie Удаление Cookie Ограничения на использование Cookie Примеры использования Cookie Фиксация повторных посещений страницы Записная книжка Cookie Notepad Настройка параметров документа HTML Настройка браузера для работы с Cookie Отладка клиентских сценариев Глава 3 Применение технологии ASP Основы ASP Простейший пример Пример с циклом Обработка формы Комбинирование клиентского и серверного сценариев Приложения ASP и сеансы Файл Переменные приложений ASP Практическое применение ASP Создание мастера средствами ASP Подсчет количества активных сеансов.. Оглавление Использование Cookie в сценариях ASP Регистрация пользователей Передача параметров через скрытые поля форм Отладка сценариев в страницах ASP Глава 4 Связь приложений с базами данных через ADO Основы ADO Программная модель ADO Установка соединения Подготовка команды и параметров Выполнение команды Обработка результатов выполнения команды Обработка ошибок Объекты ADO Объект Connection Объект Command Объект Parameters Объект Recordset Объект Errors Объект Properties Константы ADO Проект Интернет-магазина Создание базы данных Подготовка таблиц Таблица managers Таблица clients Таблица books Таблица orders Подготовка хранимых процедур Создание источника данных Подготовка виртуальных каталогов сервера Web Виртуальный каталог приложения покупателя BookShopClient Виртуальный каталог административного приложения BookShop Приложение покупателя Файл global.asa Страницы входа и начальной регистрации Вход зарегистрированных посетителей Обработка ошибок Хранимая процедура Определение фреймов главной страницы Страница меню команд Страница просмотра списка книг Добавление книги в корзину Страница просмотра содержимого корзины Удаление книги из корзины Административное приложение Файл global.asa Страницы входа Главная страница Страница меню команд Страница с сообщением о подключении Базы данных в Интернете. Практическое Страницы управления персоналом Просмотр списка Создание новой записи Удаление учетной записи сотрудника Редактирование записи сотрудника Редактирование списка книг Просмотр списка книг Добавление новой книги Удаление книги Редактирование описания книги Работа с записями покупателей Форма поиска Просмотр списка зарегистрированных покупателей Удаление записи покупателя Просмотр содержимого корзины покупателя Редактирование регистрационных данных покупателя Работа с ADO в приложениях Импортирование библиотеки типов ADO Обращение к интерфейсам и методам ADO Инициализация СОМ Установка соединения с источником данных Работа с набором записей Вызов хранимой процедуры '. Обработка ошибок Пример программы Функция login Функция get Managers ; Вызов ADO через функции Win32 Обращение к интерфейсам и методам ADO Инициализация Ми переменных BSTR Установка соединения с источником данных Выполнение команды Работа с набором записей Пример программы Глава 5 приложений с базами данных через OLE DB Программная модель OLE DB Инициализация среды выполнения Инициализация источника данных Открытие сеанса Подготовка команды и параметров Выполнение команды Обработка результатов выполнения команды Обработка ошибок Объекты OLE DB Создание объекта параметров инициализации Установка свойств Инициализация объекта...... Оглавление IX Объект Session Объект Command Создание объекта команды Выполнение команды Интерфейс и набор записей Получение описания набора записей Подготовка информации для привязки данных Выполнение привязки данных Обработка набора записей Глобальные определения Функция main Функция init Функция start Command Функция Использование библиотеки шаблонов ATL Класс Класс CSession Класс Глобальные определения Функция main Глава 6 Связь приложений с базами данных через ODBC Программный интерфейс ODBC Структура приложения Инициализация Инициализация среды выполнения Инициализация среды для установки соединения Установка соединения Подготовка и запуск команды Получение идентификатора команды Запуск команды Обработка результата выполнения команды Привязка полей к локальным переменным Цикл обработки записей Обработка ошибок Извлечение диагностических записей Записи состояния ODBCAPP : Глобальные определения и константы Функция main Функция GetErrorMsgConn Функция Запуск процедур Привязка параметров Запуск процедуры Извлечение значений выходных параметров процедуры ODBCPARAM Базы в Практическое Глава 7 Расширения CGI и ISAPI сервера Web Программы CGI и базы данных Немного о фор>мах HTML Передача данных программе CGI Метод GET Метод POST Выбор между GET и POST :
Передача ответа из программы CGI Переменные среды для программы CGI Примеры программ CGI Программа CONTROLS Программа AREF Доступ к базе данных из CGI Создание приложений ISAPI Принципы работы и структура расширения ISAPI Вызов расширения ISAPI сервером Web Функция Функция HttpExtensionProc Получение данных расширением ISAPI Функция Функция ReadClient Отправка данных расширением ISAPI Функция Функция ServerSupportFunction Приложение Вызов функций ODBC из ISAPI Обращение к базе данных в отдельном потоке Глава 8 Создание серверных элементов управления ActiveX Первый проект элемента ActiveX Создание проекта Добавление объекта Определение нового свойства Редактирование исходного текста свойства Подготовка страницы ASP Определения методов элемента Автоматическая обработка кредитных карточек Библиотека для имитации интерфейса Тестовая программа для вызова имитатора интерфейса Элемент управления CreditCard Вызов элемента управления CreditCard Отправка почтового сообщения сценария ASP Основы работы SMTP Элемент Глава 9 Применение аплетов Java Система Layout Manager Режим Layout Режим.... Оглавление Режим Режим CardLayout Режим Поля и gridy Поля gridwidth и gridheight fill Поле anchor Поля и weighty Поля ipadx и ipady Поле insets с формой класс аплета GridBag init Поле First name Метка для поля First name OK Поле Middle name и метка этого поля Кнопка Cancel Поле Last name Метка поля name ZIP Метка поля ZIP Поле Country Метка поля Country actionPerformed Класс AppletMsgBox Конструктор класса AppletMsgBox Метод actionPerformed Классы Java для работы в сети Класс Класс URL Конструкторы класса Методы класса URL Класс Взаимодействие приложений Java и расширений сервера Web Аплет для передачи номера кредитной карточки Инициализация аплета Отправка данных расширению сервера Web Размещение аплета в документе HTML Исходный текст расширения ISAPI Передача параметров странице ASP Приложение 1 Элементы языка JavaScript Переменные Объявление переменных Присвоение значения переменным Типы данных Числа Текстовые строки Логические данные Данные неопределенного типа Базы данных в Практическое Преобразование типов данных Операторы Унарные операторы Бинарные операторы Операторы для выполнения логических операций Операторы Операторы отношения Оператор присваивания Условные операторы Операторы цикла Оператор for Оператор for-in Оператор while Оператор break Оператор continue Прочие операторы Старшинство JavaScript Функции Встроенные объекты Массивы Встроенный класс Math Свойства Е PI LN2 LN10 Методы abs acos asin ceil cos exp floor log max random round sin sqrt '. tan Встроенный класс Date Конструкторы класса Date getDate... Оглавление getDay getHours Х. getTime parse setDate toGMTString UTC Встроенные функции ;
". parseFloat escape Приложение 2 Встроенные объекты ASP Объект Server Свойства Методы CreateObject Execute GetLastError, Transfer Объект Request Наборы Cookies Client Certificate Свойства Методы Объект Response Наборы Свойства Buffer... XIV Базы данных в Интернете. Практическое руководство Charset Expires Status Методы BinaryWrite End Flush Redirect Write Объект Application Наборы Contents Методы События Объект Session Наборы Contents StaticObjects Свойства CodePage SessionID Методы События Предметный указатель Библиографический список 06 авторах Предисловие ко второму изданию Уважаемые читатели!
Мы рады представить Вам второе издание книги Базы данных в Интерне Мы исправили ошибки, обнаруженные нами в первом издании, а также об новили содержимое компакт-диска, прилагаемого к книге. В частности, помес тили на компакт-диск новые версии пакетов исправлений для Microsoft Visual Studio (Service Pack 4) и для Microsoft SQL Server 7.0 (Service Pack 2).
Пока готовилось второе издание, некоторые изменения претерпели и Web страницы издательства Русская Мы обновили узел Web Русской Редакции а также разработали для издательства Интер нет-магазин IT Book ( Ж курс Microsoft Windows данных Технологии Visual С и Visual C++ Официальный тест Visual Basic и VBA Популярные издания Web-узел издательства компьютерной литературы Русская Редакция мы построили на платформах Microsoft Windows NT 4.0, Microsoft Internet Infor mation Server 4.0 и Microsoft SQL 7.0 с применением ASP, JavaScript, серверных элементов управления ActiveX и расширений То есть использовали тех нологии, о которых рассказывали в этой книге.
Базы данных Интернете. Практическое XVI Заметим, что вся информация о книгах, отзывы, новости и другие сведения хранятся в базе данных. Организован запросный режим по различным атрибу там книг, таким, как название, фамилия автора, номер ISBN. Посетителям пре доставлена возможность оценивать книги по системе и высказывать свои мнения о них.
Для наполнения информационного содержания узла Web и выполнения те кущих работ создано специальное административное приложение. Оно позво ляет заносить в базу данных все атрибуты книг, сведения об издательствах и сериях книг, просматривать отзывы (публикуя их или удаляя) и т. д.
Для размещения на узле Web изображений обложек книг и их содержимого в виде PDF-файлов один из авторов этой книги разработал расширение ISAPI, предназначенное для загрузки файлов через браузер при помощи технологии, описанной в RFC1867 (Form-based file Upload in HTML). В результате все ос технологические процессы, связанные с изменением информационного наполнения узла, оператор сможет выполнять, не привлекая квалифицирован ных Web-мастеров или программистов.
Для выполнения почтовой рассылки мы разработали серверный элемент управления ActiveX, обеспечивающий передачу почты по протоколу SMTP из сценариев JavaScript, и некоторые серверные элементы управ ления ActiveX.
Для создания Интернет-магазина IT Book мы применили те же технологии, что и для обновления Web-узла.
- Explore Х.
I no ч курс О В О С в сети*.
Интернете. курс курс Ч перевод третьего бестселлера Press 47- Эта книга представляет по о новинка* с в и для а Microsoft также для Windows NT Server О В ней для с в НА 6.0.
Cap. содержит Предисловие ко второму изданию XVII Интернет-магазин снабжен рубрикатором для поиска книг по темам, систе мой рассылки сообщений ленты новостей по подписке, а также системой сбора и обработки заказов, использующей концепцию корзины покупателя. Стоимость заказа рассчитывается автоматически и зависит от общего веса книг (в граммах), а также от региона, в который выполняется доставка.
Административное приложение, управляющее работой Интернет-магазина, поддерживает все необходимые средства для изменения информационного на полнения базы данных и узла Web Интернет-магазина, а также для работы с клиентами и заказами (от проверки заказа до распечатки счета).
Создание приложений для Интернета кажется нам весьма интересной темой, посему мы начинаем работу над новой книгой с ориентировочным названием в которой расскажем о построении Web-прило жений на платформе операционной системы Microsoft Windows Ч от ки простейших страниц HTML и применения сценариев ASP до технологичес ких процессов, реализованных в Интернет-магазинах, и узлов Web, интегриро ванных с базами данных.
Эта книга, как мы надеемся, будет полезна и тем, у кого нет ни малейшего опыта в построении и тем, кто уже попробовал себя в роли разработчика Web-приложений. Мы рассмотрим технологии, которые хорошо зарекомендовали себя при создании сложных активных узлов Web, а также рас скажем о некоторых новшествах. Ориентировочно наша книга появится в про в конце 2000 или в начале года.
И последнее: мы уведомляем всех заинтересованных лиц, что у нас сменились адреса. Теперь ищите нас по и grigory@frolov.pp.ru.
Введение Мы не слишком преувеличим, если скажем, что бурное развитие глобальной сети Интернет оказывает огромное влияние на многие сферы деятельности челове ка. И уж, конечно, Интернет вызвал поистине революционные изменения в ин дустрии программного обеспечения. Появилась новая категория приложений, специально разработанных для Интернета и учитывающих особенности серве ров Web. Последние играют в жизни приложений основополагающую роль, именно поэтому программы для Интернета часто называют приложениями Web.
За примером далеко ходить не надо Ч это многочисленные Интернет-мага поисковые и справочные серверы, системы для Интернет-телефонии и обмена сообщениями в реальном времени, системы передачи живого видео че рез Интернет и т. д.
Для приложений Web характерно то, что пользователи общаются с ними при помощи обыкновенных браузеров, таких, как Microsoft Internet Explorer. При этом доступ к приложениям Web осуществляется как к обычным статическим страницам HTML по их адресу Однако по своему поведению приложения Web совсем не похожи на стати ческие страницы HTML. При посредничестве сервера Web они способны обра щаться к различным активным объектам, сервисам и системам, таким, например, как базы данных. в ответ на запрос, введенный пользователем в окне брау сервер Web способен сформировать отчет и отобразить его в том же окне, Для получения данных при этом сервер Web генерирует запрос к базе данных.
Многоуровневый и компонентный подход к созданию приложений Web за метно сокращает сроки разработки и облегчает отладку. Многие достаточно сложные системы можно проектировать без применения таких сложных в ис пользовании языков программирования, как C++.
Важно отметить, что приложения Web способны работать не только в Интер нете, но и в корпоративных интрасетях. Применение браузера на компьютере конечного пользователя в качестве основного приложения для доступа к базам данных и другим корпоративным системам значительно уменьшает стоимость сопровождения крупных локальных сетей. При этом не только упрощается про цедура установки программного обеспечения на рабочие станции сети, но и об легчается сопровождение корпоративных баз данных и других систем, работа ющих централизованно на специально выделенных серверах.
Для того чтобы показать преимущества применения приложений Web ин трасетях, приведем простой пример.
Предположим, две-три сотни сотрудников некоторой фирмы работают с од ной базой данных MS SQL Server. При классической клиент-серверной архитек туре на каждую рабочую станцию помимо операционной системы необходимо XX Базы данных в Интернете. Практическое установить клиент SQL Server и настроить его. Если клиентские приложения созданы при помощи Borland Delphi или аналогичного средства, каждой рабо чей станции потребуется клиентский модуль, необходимый для работы с базой данных.
Всякий раз при внесении изменений в прикладную программу или при мо дификации версии сервера SQL Server администратору сети скорее всего обновлять параметры компьютеров пользователей. Таких компью теров Ч сотни, поэтому корректировка займет не одну неделю.
Если же для обращения к базе данных применяется браузер, на компьютеры рабочих станций достаточно установить только операционную систему Windows.
Вся настройка будет заключаться в том, чтобы указать, какая страница сервера Web должна загружаться в окно браузера по умолчанию. Очевидно, эта проце дура намного проще установки и настройки клиента сервера базы данных.
Так как все прикладное программное обеспечение хранится и работает на сервере, внесенные в него изменения сразу становятся доступными на всех ра бочих станциях. Администратору больше не придется обходить две сотни поль только для того, чтобы изменить имя сервера базы данных или уста новый клиент. Удобно это и в случае выхода из строя рабочей станции Ч администратор может быстро заменить ее другой, из резерва, и настроить ее автоматически, настройка замененного компьютера не потре буется.
Справедливости ради следует заметить, что клиент-серверную архитектуру можно применять и в Интернете. Однако особенности этой сети делают исполь зование данной архитектуры крайне неэффективной, Во-первых, между сервером и клиентом иногда располагаются прокси-серве ры и брандмауэры, затрудняющие или даже делающие невозможным доступ к серверу базы данных.
Во-вторых, архитектура предполагает установку на компь ютере пользователя специального клиентского программного обеспечения. Ко нечно, его можно загрузить Интернет и затем установить, однако это дли тельная и утомительная для пользователя процедура.
В-третьих, пользователи Интернета работают с самым разным программным обеспечением Ч Unix, OS/2, MAC OS или каким-то еще. Если созда тель базы данных желает обеспечить доступ к ней максимальному количеству пользователей, ему придется подготовить клиентские программы для всех мыс лимых компьютерных платформ, а это нереально.
Кроме того, браузеры есть практически везде. Порт 80, применяемый для обращения к серверам Web, обычно никогда не блокируется прокси-серверами и брандмауэрами, поэтому здесь проблем тоже не предвидится. Что же касает ся совместимости браузеров, то в этой книге мы расскажем, как сделать Ваше приложение Web совместимым с наиболее популярными браузерами.
Обзор технологий Интернета При создании приложений Web применяется множество технологий, с которы ми мы постепенно будем Вас знакомить. А сейчас Ч кратко о том, что Вам но знать, чтобы успешно создавать приложения для Интернета.
Введение Язык разметки гипертекстов HTML.
Этот язык широко используется для создания страниц сервера Web. Несмот ря на изобилие визуальных средств проектирования документов HTML, глу бокое знание языка HTML, на наш взгляд, необходимо. В частности, оно нужно для создания приложений Web, хорошо совместимых с различными браузерами и по-настоящему эффективных.
В нашей книге Вы тем не менее не найдете подробного описания языка HTML, хотя по ходу изложения мы будем делать необходимые пояснения.
Языку HTML посвящено много книг, и мы надеемся, что Вы без труда их отыщете.
Динамический язык гипертекстовой разметки DHTML.
Он позволяет создавать динамические интерактивные страницы. Несмотря на то, что объектные модели наиболее популярных браузеров сильно разли чаются, интенсивное применение DHTML оправдано в первую очередь в тех случаях, когда на компьютере пользователя установлен браузер Microsoft Internet Explorer. Это возможно в или при создании администра тивных приложений когда разработчик может установить на компью тере пользователя заранее выбранный браузер.
В этой книге мы не стали во всех подробностях описывать DHTML, а заост рили внимание на его практическом применении при создании интерактив ных страниц.
Языки сценариев JavaScript и Script.
Сценарии, написанные на языках JavaScript и VB Script, применяются как на стороне клиента, так и на стороне сервера сценарии встро ены в документы HTML (или DHTML), пользователем в окно браузера. Эти интерпретируемые программы, исполняемые браузером, спо собны оживить статические документы HTML;
они связывают различные объекты, расположенные внутри таких документов. Серверные сценарии исполняются на сервере и служат для динамического формирования доку ментов HTML, отправляемых пользователю.
К сожалению, клиентские сценарии работают по-разному в различных брау зерах, Поэтому для обеспечения совместимости приходится принимать спе циальные меры. Серверные сценарии, напротив, не вызывают никаких про блем совместимости, так как исполняются непосредственно на компьютере сервера Web.
В нашей книге мы пользуемся и клиентскими, и серверными сценариями JavaScript. Сценариям полностью посвящена вторая глава нашей книги. Кро ме того, в приложении к книге Вы найдете краткие справочные материалы, касающиеся языка сценариев JavaScript, Ч они пригодятся Вам для практи ческой работы.
Активные страницы Active Server Pages (ASP).
Технология активных серверных страниц ASP является ключевой для созда ния приложений Web на базе сервера Microsoft Internet Information Server, поэтому в нашей книге мы посвятили ASP отдельную главу.
XXII Базы данных в Интернете. Практическое руководство Приложения Web на базе Microsoft Internet Information Server на наборе текстовых файлов с расширением имени asp. Б первом приближении это документы HTML, в которые встроены серверные сценарии JScript (вер сия JavaScript, созданная Microsoft) или VB Script. Именно эти сценарии осу ществляют обращение к данных или к другим активным серверным объектам.
Технология ActiveX Data Objects (ADO).
Она имеет самое непосредственное отношение к базам данных. Посредством объектов ADO серверные сценарии ASP обращаются к базе данных, Объект ная модель ADO фактически предоставляет в распоряжение разработчика простой набор объектов и методов для доступа к базам данных. Объекты ADO вызываются не только из сценариев, но и из обычных приложений Windows, расширений CGI и ISAPI сервера Web, а также из других объектов ActiveX.
В нашей книге Вы найдете не только краткое описание интерфейсов ADO, но и практические примеры использования этой технологии.
Интерфейсы DB Library, ODBC и OLE DB.
Приложения, написанные на традиционных языках программирования, мо гут обращаться к базам данных через естественный прикладной интерфейс базы данных (DB Library) или через прикладной интерфейс ODBC. В этом случае обращение выполняется посредством вызова соответствующих фун кций программного интерфейса. Что же касается интерфейса OLE DB, то он основан на модели компонентных объектов СОМ.
Перечисленные выше интерфейсы недоступны из серверных сценариев, по этому Вам удастся их использовать только в обычных приложениях или в расширениях и ISAPI сервера Web. Последний случай мы и рассмотрим в нашей книге.
Расширения CGI и ISAPI сервера Web.
Расширения CGI и ISAPI сервера Web широко применяются вместе с ASP при создании активных серверов Web. Они представляют собой специальным образом составленные программы, выполняющиеся на компьютере сервера Web. Расширения сервера Web способны принимать данные от пользовате ля, динамически создавать документы HTML и их обратно.
Фактически Вы можете создавать приложения Web с базами данных только с использованием обычных статических страниц HTML и расширений CGI и ISAPI сервера Web. Однако такое решение чаще всего намного сложнее ре ализовать, чем решение, основанное на ASP и ADO.
Элементы управления ActiveX.
Как и сценарии JavaScript и VB Script, элементы управления ActiveX приме няют как на стороне сервера, так и на стороне клиента. Фактически они пред ставляют собой библиотеки динамической компоновки DLL, работающие либо на компьютере пользователя, либо на сервере.
Если элемент управления ActiveX работает на стороне клиента, то он может быть встроен в документ HTML и иметь или не иметь собственное окно. Об ладая неограниченным доступом к ресурсам локального компьютера, элемент Введение XXIII управления ActiveX способен получить и передать на сервер Web практичес ки любую информацию. Эта возможность не всегда используется при пере даче данных через Интернет из соображений их безопасности, однако в инт она иногда оказывается очень полезной.
Элемент управления ActiveX допустимо также устанавливать на сервере дабы расширить его возможности. Например, Вы можете создать такой ком понент для снятия денег с кредитной карточки клиента, для автоматизиро ванной регистрации купленного программного обеспечения или для выпол нения других служебных функций.
Относительно недавно корпорация Microsoft создала библиотеку шаблонов ActiveX Template (ATL). Ее применение упростило создание элемен тов управления ActiveX что оно перестало быть уделом узкого круга профи, досконально разбирающихся в тонкостях реализации модели компонентных объектов СОМ. Библиотека стандартных шаблонов STL так же оказывает заметную помощь в разработке приложений вообще и элемен тов ActiveX в частности. В нашей книге рассказано, как создавать такие объекты, не затрачивая месяцы на изучение документации.
Java.
Язык Java, разработанный Sun Microsystems, должен обеспечивать работо способность приложений на различных платформах без перекомпиляции. И хотя до абсолютной совместимости еще далеко, приложения Java вполне ра ботоспособны на большинстве наиболее популярных платформ.
В проектах для сети Интернет чаще всего применяются Java. Они представляют собой одну из разновидностей приложений Java. Аплеты Java встраиваются в документы HTML и работают под браузера.
В отличие от управления ActiveX, возможности доступа аплетов к локальным ресурсам компьютера практически сведены к нулю, поэтому их применение не угрожает безопасности данных. Однако есть и об ратная сторона Ч такие ограничения во многом снижают пользу от аплетов.
Как правило, аплеты применяются для создания динамичного интерактивно го пользовательского интерфейса на стороне клиента. Помимо этого, они спо собны взаимодействовать с расширениями CGI и ISAPI сервера Web, с кото рого они загружены. Именно эти мы и рассмотрим в нашей книге.
Требования к читателям Мы предполагаем, что Вы уже изучили язык HTML и имеете опыт создания хотя бы простейшего сервера Web. Это может быть домашняя страничка на сервере поставщика услуг Интернета, сервер в или даже сервер Web на Ва шем локальном компьютере. Для сервера Web Вам необходимо хоро шо знать Microsoft Internet Information Server версии 4.0 (мы рассказываем об установке и настройке именно этого сервера) или более новой.
Неплохо также, если Вы освоите какие-нибудь средсгва визуального проек тирования документов HTML, такие, как Microsoft FrontPage. Список литера туры, которая понадобится Вам для этого, приведен в конце нашей книги.
Так как книга посвящена созданию приложений с базами данных, Вам нуж но уметь работать с Microsoft SQL Server и знать язык SQL. Мы не XXIV данных в Интернете. Практическое ваем здесь вопросы установки и администрирования SQL а также при емы программирования на Transact SQL (хотя в книгу вставлены примеры про грамм на языке Transact SQL). Для изучения этих вопросов Вам нужно обра титься к дополнительной литературе.
Проектирование расширений CGI и ISAPI для сервера Web, а также элемен тов управления ActiveX обычно требует знаний языка программирования C++ интерфейса Win32. Для работы с нашей книгой Вы должны владеть основа ми стандартной библиотеки классов STL. Заметим, что многие достаточно слож ные приложения Web можно составлять и без них, обходясь готовыми элемен тами управления ActiveX, средствами DHTML, JavaScript, VB Script и ASP.
Мы не стали подробно описывать язык программирования Java, работе с которым посвящена одна из глав книги. Мы рекомендуем Вам изучить этот язык, пользуясь дополнительной литературой (см. Библиографический Настоящая книга имеет практическую направленность. Предполагается, что Вы, читая ее, попытаетесь реализовать описанные в ней примеры приложений.
Для этого Вам потребуется компьютер или локальная сеть с серверами Microsoft Internet Information Server 4.0 и Microsoft SQL Server 7.0. Эти приложения не обходимо установить в среде Windows NT Server. Отдельные вопросы, не свя занные с ASP, Вы сможете решить и в среде Microsoft Windows 98, однако это удается не всегда.
Разработку и отладку страниц ASP лучше всего выполнять в среде Microsoft Visual 6.0. Для создания расширений CGI и ISAPI сервера Web, а так же элементов управления ActiveX Вам потребуется Microsoft Visual C++ 6.0.
Java можно разрабатывать средствами Microsoft Visual J++ 6.0 или Sun Java Workshop 1.0.
Ну и, конечно, Вашу работу значительно облегчит библиотека Microsoft MSDN Library, поставляемая на компакт-дисках. Она содержит исчерпывающую информацию (на английском языке) по всем вопросам использования техноло гий Microsoft для Интернета. Заметим, что библиотека Microsoft MSDN Library доступна не только в виде набора компакт-дисков, но и через Интернет ( Структура книги В первой главе описаны отличия приложений Web от обычных программ. Рас смотрен принцип работы сервера Web, объяснена разница между активными и пассивными серверами Web. Кроме того, из этой главы Вы узнаете о серверной активности, достигаемой средствами технологии ASP, расширений CGI и ISAPI, а также об активности на стороне клиента, связанной с применением сценари ев JavaScript, VB Script, элементов управления ActiveX и аплетов Java. Здесь перечислены преимущества и недостатки использования серверной активности и активности на стороне в различных ситуациях. Приведен краткий обзор методов интеграции сервера Web и сервера СУБД, связанных с исполь зованием расширений ISAPI, драйверов ODBC, объектов OLE DB, и ADO.
Анализируются недостатки и преимущества этих методов при создании прило жений Web.
Практическая часть первой главы содержит рекомендации по установке про граммных средств, необходимых для дальнейшей работы с книгой, Ч MS IIS 4.0, Введение XXV MS SQL Server, MS Visual MS Visual C++, MS FrontPage, пакетов об новлений операционной системы и инструментальных средств и т.
Во второй главе рассмотрены серверные и клиентские сценарии Ч их назна чение и особенности, а также приемы конструирования интерфейса пользова теля Ч важный этап создания приложений для Интернета, включающий нение сценариев. В нашей книге нет описания языка JavaScript (литературы на эту тему издано много), хотя в приложении имеется краткая справочная инфор мация. Вместо этого мы уделили внимание объектной модели браузеров MS IE и Netscape, понимание которой необходимо для написания клиентских сценари ев. Во второй главе рассмотрены практические приемы применения клиентских сценариев (а также средств DHTML) для создания интерфей сов к базам данных, таких, как формы и отчеты. Затронуты проблемы тимости сценариев и средств DHTML с различными версиями браузеров (и указаны методы решения этих проблем). Описана процедура отладки клиент ских сценариев. Многие примеры сценариев из второй главы Вы сможете ис пользовать для реализации новых проектов.
Третья глава посвящена технологии ASP. В ней рассказано, как построить активный сервер Web с применением расширений ISAPI и серверных сце нариев. Описаны возможности и преимущества серверных сценариев JavaScript и Script в страницах ASP по сравнению с расширениями CGI, ISAPI и с клиентскими сценариями. Вводится понятие приложения ASP и рассказано о применении процедур, перечислений, переменных приложения и переменных сеанса, объектов ASP. Вы узнаете о как сделать выбор между JavaScript и VB Script при создании страниц ASP. На конкретных примерах мы проиллюст рируем методики создания форм и отчетов с ASP и клиентских сценариев.
В четвертой главе рассказано об использовании объектов ADO для связи приложений Web с базами данных, Рассмотрена программная и объектная мо дель ADO, методика обработки событий. Кратко описан программный интер фейс ADO. Приведены исходные тексты приложений Web, созданных с приме нением ADO, ASP и MS SQL Server. На их примере показана технология обра ботки ошибок. Мы также расскажем здесь, как интегрировать обычные прило жения Windows и расширения сервера Web с базами данных при помощи ADO.
Глава содержит многочисленные страниц ASP виртуального книжно го Интернет-магазина, подготовленные на основе реальных проектов.
Пятая и шестая главы посвящены вопросам применения интерфейсов OLE DB и ODBC для связи приложений с базами данных. Мы рассмотрим отличия этих интерфейсов от интерфейса ADO, кратко опишем программную и объект ную модель OLE DB, а также программный интерфейс OLE DB и ODBC. Кро ме того, здесь приведены примеры приложений, работающих с базами данных посредством указанных интерфейсов.
В седьмой описана структура расширений CGI и ISAPI сервера Здесь рассказано об отличиях CGI и ISAPI, а также о критериях выбора нуж ной технологии. На конкретных примерах показано, как создавать расширения CGI и ISAPI для сервера Microsoft IIS, работающих с базами данных.
Восьмая глава посвящена элементам управления ActiveX. Здесь рассказано о возможности применении элементов управления ActiveX на стороне клиента, XXVI Базы данных в Интернете. Практическое руководство а также на стороне сервера для расширения объектной модели ASP. Описана методика быстрого создания элементов управления ActiveX с применением биб лиотеки Приведены примеры использования элементов управления Acti veX для связи сервера Web с сервером банка, выполняющим платежи в режиме on-line, а также для автоматической передачи почтовых сообщений с примене нием протокола SMTP.
Девятая глава посвящена использованию Java на стороне клиента для связи с расширениями сервера CGI и ISAPI. В ней приведены примеры апле тов Java, передающих о кредитных карточках расширению серве ра Web и серверному сценарию, расположенному на ASP.
Книга укомплектована компакт-диском, содержащим полные листинги всех приложений, описанных в книге.
Благодарности Мы благодарим генерального директора издательства компьютерной литерату ры Русская Редакция Михаила Царейкина, главного редактора Андрея Козлова и редактора Юлию Леонову, усилиями которых ста ло возможным появление этой книги.
Стараниями Андрея и Юлии Леоновой книга стала интереснее и понятнее, а определения терминов Ч последовательнее и точнее.
Авторы книги выражают признательность Максиму Синеву и Сергею Ножен ко из компании Web Development за многочисленные консультации и предоставленные исходные тексты разработан ных ими проектов, в частности элемента управления MTASend, предназначен ного для передачи почтовых сообщений. В нашей книге мы отразили накоплен ный ими опыт реализации коммерческих проектов в Интернете и интрасетях.
Сервер Web как ядро приложений для Интернета В этой главе мы рассмотрим основные понятия, такие, как активный сервер Web, и относительно новый класс программ Ч приложения Web. Свое они получили из-за того, что их работа самым образом с серверами Web, составляющими основу информационной структуры Интерне та. Эта глава имеет характер. Введенные понятия будут раскрыты в последующих главах книги.
Основы работы сервера Web Прежде чем перейти к детальному описанию особенностей Web, мы хотим напомнить Вам принцип работы сервера Web.
Известно, что серверы Web хранят в виде текстовых файлов, называемых также страницами сервера Web. Помимо текста, такие страницы могут содержать ссылки на другие страницы на том же самом или другом сервере Web), ссылки на графические изображения, аудио- и видео информацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты. Фактически Web представляют собой неко торое связующее звено между объектами различных типов. Их проектируют с применением специального языка разметки гипертекстов Hyper Text Markup Language, или сокращенно Ч HTML.
Для доступа к информации, расположенной на серверах Web, пользователи применяют специальные клиентские программы Ч браузеры. В настоящее вре мя существуют десятки различных браузеров, но у пользователей Интернета популярностью пользуются два Ч Microsoft Internet Explorer и Navigator.
Каждая страница сервера Web свой так называемый универсальный адрес ресурса Universal Resource Locator (URL). Для того чтобы получить доступ к той или иной странице, пользователь должен указать ее адрес URL програм ме браузера. Как правило, любой сервер Web имеет одну главную со держащую ссылки на все другие страницы этого сервера. Поэтому просмотр со держимого сервера Web обычно начинается с его главной Когда пользователь указывает браузеру адрес страницы сервера она начинает загружаться с сервера. При этом браузер устанавливает с сервером Web, применяя передачи данных Text Transfer Базы в Практическое (HTTP), получает нужную страницу и разрывает соединение. Принятая страни ца отображается в окне браузера. Этот процесс на рис. 1-1.
Браузер Сервер Web выбирает отправляет на сервер документ HTML Web адрес с заданным адресом документа HTML Компьютер пользователя Сервер Web с браузером Сервер Браузер показывает в своем окне браузеру документ HTML документ HTML Рис. 1 Взаимодействие браузера и сервера Web Пассивные и активные серверы Web Различают пассивные и активные Web. Если страницы сервера содер жат только статическую текстовую и мультимедийную а также гипертекстовые ссылки на то сервер называется пассивным.
Когда же страницы сервера ведут себя аналогично окнам обычных интерактив ных в диалог с пользователем, мы имеем дело с активным сервером.
Очевидно, статический сервер Web не может служить основой для создания интерактивных приложений в Интернет с базами данных, так как он не никаких средств ввода и обработки запросов. Поэтому в нашей мы только активные серверы Web.
Как же создаются и как работают активные серверы Web?
Мы рассмотрим два варианта. Первый предполагает специ альных программных сервера Web, таких, как CGI и ISAPI. Второй связан с серверных сценариев и активных страниц Active Server Pages (ASP).
Программы CGI Для того чтобы сервер Web мог вести диалог с был механизм программных расширений сервера, на применении так называемого стандартного шлюзового Common Gateway (CGI). Программы CGI пользуются этим интерфейсом для получения протокол HTTP) от для ее обработки и Глава 1 Сервер Web как ядро приложений для Интернета обратно в виде нового документа HTML, ссылки на документ или на другой объект.
При этом для ввода информации со стороны пользователя в документ HTML встраиваются формы, содержащие такие органы управления, как текстовые поля, списки, переключатели, кнопки и т. д. Обычно одна из кнопок для завершения ввода. Когда пользователь заполнит всю форму, нажимает эту кнопку, и данные из полей формы передаются CGI. Обработав ные, программа CGI формирует новый документ HTML с резуль татами обработки и отправляет его обратно При программа CGI может обращаться к СУБД.
Этот процесс проиллюстрирован на рис. О программах ISAPI Вы узнае те из следующего раздела.
г Браузер Программа CGI или ISAPI на сервер выбирает существующий Web адрес HTML программы CG! или ISAPI или Компьютер Серзер Web с Web отправляет Браузер показывает браузеру выбранный или в своем окне созданный документ HTML документ HTML Рис. 1-2. Формирование документов HTML с помощью CGI и ISAPI Таким образом, программы CGI позволяют серверу вести активный ди алог с пользователем.
Что представляет собой программа CGI?
Это обычное консольное приложение, работающее в среде операционной системы сервера и осуществляющее обмен данными через стандартные потоки ввода и вывода. Такое приложение загружается в оперативную память сервера и запускается только по явному запросу когда к выполняется обращение из документа HTML. Окончив обработку запроса поль зователя, программа CGI свою работу и выгружается из памяти сер вера.
Программа CGI работает на сервере как процесс. В рамках этого она способна, в частности, обращаться к базам данных для выборки или обновления информации.
Бы писать программы CGI на любом языке программирования, до создание исполняемых модулей. Часто их составляются с Базы данных в Интернете. Практическое руководство интерпретируемого языка Perl. на различ ных платформах. Однако программы CGI, приведенные в нашей написа ны на языке программирования C++, так как книга ориентирована на примене ние платформы Microsoft Windows.
Приложения ISAPI Если сервер Web создан на базе Microsoft Internet Information Server, вместо программ CGI Вы можете использовать приложения ISAPI, реализованные в виде библиотек динамической загрузки DLL.
Приложения ISAPI условно делятся на расширения и фильтры ISAPI.
Расширения ISAPI Расширения ISAPI выполняют тс же функции, что и только что рассмотренные программы CGI. Однако есть и очень важные отличия.
Самос главное из них заключается в том, что ISAPI загружает ся в адресное сервера но не работает как отдельный процесс.
Причем такая загрузка выполняется один раз, когда к расширению обращается первый пользователь. В расширение остается в оперативной памя ти и может быть задействовано без повторной загрузки.
Заметим, что сервер Microsoft Internet Information Server версии 4.0 позво ляет загружать программы ISAPI в отдельное адресное пространство. Эта воз можность, работу сервера, используется для отладки но вых программ. Аварийное завершение программы ISAPI, загруженной в отдель ное адресное пространство, как правило, не к полной остановке сер вера Web.
В результате расширения 1SAPI работают быстрее но сравнению с мами CGI, особенно когда сервер Web посещают много пользователей. Что же касается программ CGI, то для каждого запускать от дельный процесс, а это отнимает немало времени.
С другой стороны, приложения ISAPI приходится отлаживать намного тща тельнее, программы CGI. Так как ISAPI работает в адресном пространстве сервера Web, ошибка в приложении ISAPI способна вызвать ава завершение работы сервера Web. Ошибки в программе CGI обычно ме нее так как в худшем авария произойдет только в том процес се, в котором работает эта программа, а не в сервера Web.
Фильтры ISAPI Фильтры ISAPI, так же как и расширения ISAPI, реализованы в виде библио тек динамической загрузки DLL, однако они предназначены для другого. Филь тры ISAPI способны контролировать весь поток между браузером и сер вером Web на уровне протокола HTTP. Благодаря этому их можно для решения таких задач, как перекодировка и дан ных, создание дополнительных процедур аутентификации пользователей, сбор статистической информации об использовании ресурсов сервера и т. д.
Активные страницы ASP Технология ASP предполагает интенсивное использование серверных сценари ев и объектов СОМ для создания активных серверов Web. При ее Глава Сервер Web как ядро приложений для Интернета на сервере Microsoft Internet Information Server располагаются текстовые фай лы с расширением asp, содержащие операторы языка и сценарии, состав лепные на языках JScript или Script.
Средствами технологии ASP можно легко создавать интерактивные страни цы Web, не используя расширения CGI или ISAPI, что позволяет в ряде случа ев полиостью избежать или максимально сократить программирование на C+ + или Perl. Активные страницы ASP выполняют обработку пользователями при помощи форм, при необходимости к базам дан ных или другим активным объектам.
Как серверные сценарии в страницах ASP?
Когда пользователь обращается к странице ASP, Web интерпретиру ет расположенный в ней сценарий. При этом анализируются пере данные этой странице. Далее страница модифицируется (или создается заново), а затем отправляется обратно пользователю.
Заметим, что пользователь не может каким-либо образом получить содержи мое страницы ASP, так как сервер Web отправляет ему не саму страницу, а ре зультат ее интерпретации. Таким образом, логика работы страницы скрыта от пользователей.
Серверный сценарий, встроенный в страницу ASP, способен обращаться к базам данных через вызов методов интерфейса ActiveX Data Objects (ADO) простую и понятную Если у Вас возникнет необходимость реализо вать собственную бизнес-логику, Вы можете создать новые объекты СОМ или использовать объекты СОМ разработчиков.
Наша книга главным образом посвящена активным страницам ASP, мы уделим некоторое внимание и созданию активных серверов помощи расширений CGI и ISAPI.
Приложения Web В нашей книге мы постоянно такими понятиями, как при ложения Web, приложения для Интернета и Теперь, когда Вы узнали об активных серверах мы раскроем эти понятия. Однако вначале как работают обычные программы.
Первые программы для мэйнфреймов работали в пакетном режиме. Им были доступны все ресурсы компьютера. Немного позже появились интерактивные системы, поддерживающие обращение к ресурсу компьютера многих при помощи неинтеллектуальных терминалов. Создате ли таких систем учли, что программам придется работать в многозадачном и многопользовательском режиме. Если система содержала базу данных, то все интерактивные пользователи обращались к ней через терминалы с помощью специального программного обеспечения, работающего на мэйнфрейме.
В рамках приложений Web на стороне работает браузер, который по своим интеллектуальным возможностям далеко опережает алфавитно-цифровые или графические терминалы. Как видно из следующих разделов, браузер спосо бен предварительно обрабатывать данные, отправляемые на сервер, а также об рабатывать и представлять результаты, полученные от сервера, в удобном для пользователя виде.
В роли основного сервера для приложений Web выступает, как можно легко догадаться, Web Ч разумеется, активный.
6 Базы данных в Интернете. Практическое Однако сервер Web выполняет только часть работы. Он отвечает за ние данных от и подготовку страниц, отправляемых обратно. Что же касается к базе данных или обращений к другим активным объек там, реализующим то для решения этих задач обра щается к серверам базы данных или другим серверам приложений. Обращения выполняются либо средствами ASP, либо при помощи расширений CGT или ISAPI.
Мы будем приложениями Web набор страниц HTML, DHTML, СОМ, клиентских и серверных управления ActiveX, клиен тских и серверных сценариев, а также аплетов Java, расположенных на одном или нескольких Web и предназначенных для работы в рамках одного приложения. При этом активные компоненты приложений Web могут обращать ся к серверам баз данных или другим прикладным серверам для тех ли иных запросов.
Подмножество приложений Web, созданных с применением технологии ак тивных серверных страниц ASP, мы будем называть ASP. Более точное определение мы приведем в третьей главе нашей книги, Несмотря на кажущееся сходство приложений Web и программ, ориентиро ванных па мэйнфреймы и терминалы, они относятся к разным типам, каждый из которых имеет свои особенности. И если во втором случае системой управ ляет администратор, а линии связи между терминалами пользователей и мэйн фреймом обладают высокой надежностью и достаточной пропускной стью, то в случае приложений Web дело обстоит иначе.
Разработчик Web должен быть готов к тому, что линия связи может в любой момент оборваться, а пользователь после ее восстановления по возобновить работу с того места, на котором случился обрыв. Пропуск ная способность и надежность каналов пока оставляет желать луч шего, поэтому необходимо минимизировать обмен данными между клиентом и сервером. На стороне клиента оказаться любая система и любой браузер, поэтому забота о совместимости Ч насущная необходимость. В Интернете много желающих получить несанкционированный доступ к популяр ным ресурсам и воспользоваться чужих кредитных карточек, а значит, вопросы обеспечения безопасности первоочередными.
Активность на стороне клиента В большинстве случаев целесообразно разделять работу между и сер чтобы добиться производительности в условиях каналов Интернета и лимитированных ресурсов серверов Web. Так, предварительную обработку данных, отправляемых серверу, имеет смысл выполнять на стороне клиента. Это позволит например, по вторные неправильно форм. Графическое представление запроса также стоит выполнять на стороне клиента, что существенно сократит объем данных, по сети. А нот выборку из базы данных выполнять сервер.
Для реализации активности Вы можете применять сценарии JavaScript, Java и элементы ActiveX.
Глава Сервер Web как ядро приложений для Интернета Клиентские сценарии JavaScript Язык сценариев JavaScript разработан фирмой Communication Cor poration и первоначально назывался Заметим, что JavaScript не имеет никакого к языку Java, Sun Microsystems базе языка Oak.
Конструкции языка JavaScript встраиваются в страницы HTML и исполня ются под управлением браузера при загрузке страниц, а также при совершении определенных действий над объектами, расположенными в этих страницах, В JavaScript способны обрабатывать данные, введенные пользователями в полях форм, а также события, возникающие в процессе мани пуляций пользователя с копировать в браузера другие страницы HTML или изменять уже загруженных страниц.
JavaScript широко применяются для создания различных визуаль ных эффектов, таких, например, как изменение внешнего элементов ления, над которыми установлен курсор графических изобра жений, создание звуковых эффектов и т. д.
Механизм локальной памяти Cookie позволяет сценариям JavaScript сохра нять на локальную информацию, введенную пользователем. Напри мер, в Cookie может храниться список товаров из Интернет-магазина, отобран ных для покупки.
Так как язык JavaScript разработан для непрофессиональными программистами, создание сценариев обычно не составляет особо го труда. Однако для обеспечения совместимости с различными браузерами все же приходится учитывать многочисленные детали. Например, браузер Microsoft Internet Explorer реализует собственную версию JavaScript, Кроме того, для выполнения многих функций клиентские сценарии обращают ся к интерфейсу объектной модели браузера. Эта модель отличается для разных браузеров.
Клиентские сценарии VB Script Помимо JScript, браузер Microsoft Internet Explorer (и только он) способен ра ботать с языком клиентских сценариев VB Script. Последний со бой подмножество Microsoft Basic и функционально равноценен языку JavaScript.
Так как многие пользователи сети Интернет не работают с браузером Micro soft Internet Explorer, применение VB Script для создания страниц серверов Web, расположенных в Интернете, едва ли можно считать оправданным.
Ситуация если технологии Интернета в корпоратив ной Когда администратор может установить на компьютеры всех пользователей Microsoft Explorer, а в штате компании есть программи сты, имеющие большой опыт работы с Microsoft Basic, то применение VB Script вместо JavaScript заметно сокращает сроки и стоимость разработки.
Java Подмножество приложений Java, называемых Java, используют наря ду с клиентскими сценариями для организации активности на Базы данных в Практическое руководство та. Вы можете применять Java для визуальных и эффектов, для организации ввода и предварительной обработки данных перед отправкой их на сервер, а также для представления полученных от сервера дан ных в графическом, табличном каком-либо другом виде.
Аплеты Java встраивают в страницы сервера Web, дабы они взаимодейство вали с клиентскими сценариями, составленными на JavaScript или VB Script. В частности, сценарии способны вызывать методы аплета, передавать данные или принимать их от Создание аплетов во многом упрощается благодаря наличию обширных биб лиотек классов Java. В этих библиотеках есть мощные и удобные средства для организации пользовательского интерфейса, с графическими изображе ниями, передачи данных по сети и др. Это позволяет больше внимания уделить логике работы аплета, а не реализации типовых задач программирования вроде организации динамических массивов или загрузки графических изображений.
Аплеты выполняются под управлением браузера и не имеют никакого досту па к локальным ресурсам компьютера. Однако они способны взаимодействовать с расширениями сервера CGI и ISAPI, а также читать файлы с того сервера Web, с которого они были загружены. Это несколько увеличивает выигрыш от при менения аплетов Java при создании приложений для Интернета.
На рис. 1-3 показано, как аплеты Java используются на сервере Web издатель ства Русская Редакция.
Hi;
s тсргавыг так гая я даятиоагйсь с ее как.) я и типы и Рис. 1 -3. аплетов Java Глава Сервер Web как ядро приложений Интернета В левой нижней части страницы находится в окне которого отобража ются пиктограммы книг, подготовленных издательством. Изображение периоди чески обновляется, Если щелкнуть пиктограмму, то в правой части страницы появится подробное описание книги. Таким образом, пользователь не будет тра тить усилия на просмотр списка книг. Ему достаточно щелкнуть пиктограмму понравившейся книги, чтобы получить о ней информацию.
Заметим, что, несмотря на идею независимости приложений Java от конкрет компьютерной платформы, на практике возможны случаи несовместимос ти. Это происходит из-за того, что на различных платформах интерпретатор Java реализуется no-разному. Поэтому пока, к сожалению, о полной переносимости приложений Java вообще и аплетов Java в частности говорить не приходится.
Элементы управления ActiveX Элементы управления ActiveX можно использовать как на стороне сервера, так и на стороне клиента. В последнем случае их применяют для решения тех же что и Java. они предоставляют неограниченный доступ к ресурсам локального компьютера.
Надо сказать, что возможность доступа элементов управления ActiveX к ло кальным ресурсам компьютера имеет не только преимущества, но и недостатки.
Конечно, удобно, когда Ваш сервер Web сможет обрабатывать любую добытую из компьютера пользователя. Однако мы полагаем, что най дется очень мало людей, готовых предоставить неограниченный доступ к своим дискам.
Для того чтобы убедить пользователей в том, что предлагаемый для загруз ки элемент управления ActiveX безопасен, предлагается технология цифровых сертификатов. Следует, однако, что сама по себе эта технология не ог раждает от проблем, связанных с наличием дыр в защите браузера. Многие про сто не рисковать и не станут загружать потенциально опасное про граммное обеспечение. Кроме того, чтобы получить цифровой сертификат и подписать свой элемент управления ActiveX, разработчик должен еди новременный денежный взнос, а затем производить ежегодную плату.
Заметим, что если Вы разрабатываете элементы управления ActiveX для сер вера Web, то их можно не подписывать. Эти модули не загружаются клиентами, а выполняются па сервере.
Проблемы с реализацией клиентской активности Выбирая между серверной и клиентской активностью, Вам надо принять во внимание многие факторы.
Прежде всего, при создании информационной системы в Интернете необхо димо учесть ее разнородность. Если Вы, например, создаете в Интернете свой электронный магазин, то Вам, скорее всего, хочется, чтобы в него заглянуло как можно больше посетителей. Значит, стоит проявить особую заботу о совмести мости своих решений с максимальным количеством платформ.
По возможности не обременяйте посетителей загрузкой разного рода клиент ских программ, особенно больших. Если посетитель столкнется с необходимос тью загрузить, например, приложение размером 2 Мб, весьма что он поискать тот же товар в другом магазине.
Базы данных в Интернете.
Следует также продумать выбор средств безопасности для защиты номеров кредитных карточек и другой клиентом на Ваш сервер или на сервер банка, операции со счетами телей.
Ну конечно, не забудьте о дизайне страницы и удобстве работы пользова теля. Позаботьтесь, чтобы покупатели быстро находили нужный им товар (или некую информацию), а страницы не выглядели отталкивающе и аляповато.
С учетом сказанного выше Вам следует с осторожностью выбирать средства клиентской активности, Например, сценарии JavaScript составляйте таким об разом, чтобы они исполнялись без ошибок всеми популярными браузерами.
Применять эти сценарии лишь в самых необходимых случаях. Кроме того, обязательно учитывайте, что особенно осторожные могут запретить работу сценариев JavaScript, соответствующим образом настроив свой браузер, Что же касается клиентских VB Script, го мы не рекомендуем их применять. Создав с их помощью в сети Интернет электронный магазин, Вам придется отказаться от посетителей, использующих, браузер Netscape Navigator. А таких весьма много.
Java тоже способны вызвать проблемы, связанные с а также с тем, что пользователи отключают их загрузку при настройке браузе ра. И уж, конечно, еще больше сложностей будет с самодельными органами уп ActiveX. Вы, естественно, можете средствами соответствующего моду ля заставить их работать под управлением браузера Netscape Navigator, но Вам придется еще убедить пользователей в безопасности их загрузки.
Поэтому мы рекомендуем создавать для с использо ванием не клиентской, а серверной активности. Так Вам будет легче обеспечить совместимость с различными браузерами и компьютерными платформами. Что же касается то здесь у Вас больше возможностей реализовать клиентскую активность, так как вопросы совместимости решаются централизованно.
Интеграция серверов Web и SQL Server В нашей книге мы рассмотрим использование приложений Web с сервером Microsoft SQL Server, однако многое из сказанного можно применить и к дру гим серверам баз данных, вместе с которыми поставляются драйверы ODBC для операционной Windows.
Что же касается Microsoft SQL Server, то для него разработан целый набор интерфейсов и средств доступа. Мы расскажем, как использовать некоторые из них для интеграции SQL Server сервера выполненного на базе Microsoft Internet Information Server.
. Если Ваш сервер Web содержит информацию о каком-либо товаре, то его интеграция с данных позволит посетителям увидеть всю информацию о товаре. При этом страницы сервера Web будут автоматически отражать текущее состояние дел, учитывая, например, наличие товара на складе и возможность его заказа по предварительной заявке.
Глава Сервер Web как ядро приложений для Интернета На сервере Web издательства Русская Редакция Вы сможете просмот реть список книг, хранящийся в базе данных, и детальное описание этих книг (рис. 1-4).
j КУРС серии ( - это и справочник, и для к сдаче по Серия с к уровни специалистов го конкретной теме распределенных приложений на Microsoft Basic 6.0. Учебный курс 400 стр., с Х Рис. 1-4. Список книг, полученный из данных Программный интерфейс DB Library Программный интерфейс DB Library представляет собой естественный интер SQL Server, реализованный как набор функций. В документации Microsoft не рекомендует применять этот интерфейс, так как вместо него гораздо удобнее пользоваться другими, о которых мы расскажем далее. Фактически в новой вер сии SQL Server этот интерфейс оставлен только для совместимости с разрабо танными ранее приложениями.
Программный интерфейс ODBC Программный интерфейс ODBC создан специально для доступа к реляционным базам данных. Это универсальный интерфейс, доступный не только в SQL Server, но и при работе с другими (в том числе нереляционными) базами дан Предполагается, что разработчик базы данных в распоряжение прикладных программистов драйвер ODBC, и все обращения к базе данных выполняются с использованием интерфейса ODBC, предоставляемого этим драйвером.
Базы данных в Интернете. Практическое руководство Преимущества организации доступа к базам данных через унифицированный интерфейс ODBC очевидны Ч программы, обращающиеся к базам данных, ста новятся менее зависимыми от этих баз данных. Однако это только в теории. На практике отличия в реализации ODBC не всегда позволяют добить ся полной независимости.
Заметим, что программный интерфейс ODBC выполнен как набор функций.
Поэтому он непосредственно доступен только из программ, составленных на традиционных языках программирования, таких, как C++. Следовательно, этот интерфейс можно использовать при с базами дан ных только через расширения и ISAPI. Технология ASP не об ращаться непосредственно к интерфейсу ODBC, так как серверные сценарии способны вызывать интерфейсы объектов СОМ только посредством механизма автоматизации (известным ранее как OLE Automation).
Объектный интерфейс Remote Data Object Современные технологии Microsoft в области Интернета основаны не на про граммных интерфейсах Ч Win32 или ODBC, а на объектных интерфейсах, до ступных в модели компонентных объектов СОМ.
Упрощенно такую модель можно представить в виде набора интерфейсов, реализующих методы и свойства. Проведя аналогию между моделью компонен тных объектов СОМ и обычными классами языка программирования C++, мож но сказать, что методы соответствуют функциям Ч членам класса, а свойства Ч переменным, в классе. На самом деле свойства в модели компо нентных объектов СОМ тоже реализуются через функции, однако суть дела от этого не меняется. Свойства используются преимущественно для хранения дан ных, а методы Ч для выполнения операций над данными или другими объекта ми. Подробнее обо всем этом мы расскажем в главе, разработке и использованию элементов управления ActiveX.
Теперь вернемся к интерфейсам SQL Server.
Специально для упрощения доступа к SQL Server из приложений Microsoft Visual Basic и Visual Basic for Applications разработан объектный интерфейс Remote Data Object (RDO). Он реализует все основные возможности интерфей са ODBC, но не применяется при разработке приложений Web. Мы его упомя нули для полноты изложения.
Объектный интерфейс OLE DB Другой объектный интерфейс, разработанный для предоставления доступа к базам данных, называется OLE DB. Фактически OLE DB представляет собой открытый стандарт, предназначенный для организации универсального досту па к базам данных. Причем имеются в виду не только реляционные БД, но и такие, как серверы почты, базы данных на мэйнфреймах с ме тодами доступа VSAM и т. д.
Компоненты OLE DB состоит из трех элементов: провайдера (provider), по требителя (consumer) и служебного элемента, выполняющего обработку и пе редачу данных.
В роли потребителя могут выступать составленные на языке программирования C++, или объекты ADO, о которых мы расскажем позже.
Глава Сервер Web как ядро Интернета Такие приложения получают доступ к базам данных посредством объектного интерфейса OLE DB.
Задача провайдера OLE DB Ч реализовать интерфейс OLE DB. Б составе OLE DB поставляются провайдеры для интерфейсов для текстовых файлов и некоторые другие. Пользуясь провайдером ODBC, потребители интер фейса OLE DB могут получить доступ к базам данных через драйвер ODBC.
Объектный интерфейс OLE DB не реализует механизм автоматизации. По этому Вы сумеете задействовать OLE DB только в расширениях CGI и ISAPI сервера но не в страницах ASP (строго говоря, к объектам OLE DB можно обращаться через интерфейс ADO, о котором мы расскажем ниже). Тем не ме нее интерфейс OLE DB иногда удобнее интерфейса ODBC, особенно в тех слу когда сервер Web должен обращаться к нереляционным базам данных. Он рекомендуется как средство для создания системных утилит, работающих с ба зами данных, а также для создания инструментов для разработки приложений.
Объектный интерфейс ActiveX Data Objects Объектный интерфейс ActiveX Data Objects (ADO) построен на основе интер фейса OLE DB. Модель ADO представляет собой набор объектов и значитель но упрощает разработку приложений с базами данных, так как позволяет исполь зовать высокоуровневые средства разработки и серверные сценарии.
Это возможно, в частности, потому, что объекты ADO реализуют средства В результате интерфейс ADO доступен из состав ленных применением целого спектра инструментальных средств, таких, как ASP, C++, Visual Basic, Visual Basic for Applications, Java и т. д.
Для нас сейчас важнее всего то, что интерфейс ADO доступен из серверных сценариев, размещенных в страницах ASP на сервере Microsoft Internet Infor mation Server. Это позволяет организовать очень простой и наглядный интер фейс приложения Web с базой данных, исключающий необходимость програм мирования на таких сложных языках, как C++.
Разумеется, объекты ADO доступны и из программных расширений сервера Web типа программ CGI и приложений ISAPI, однако нас будет интересовать в первую очередь именно связь страниц ASP с базами данных через объекты ADO.
Проект Интернет-магазина Параллельно влияния Интернета на все сферы человеческой дея тельности появилась и быстро развивается электронная коммерция. В Интер нете открываются все новые и новые электронные магазины, благодаря которым Вы можете покупать товары в разных странах мира, не вставая из-за своего ра бочего стола.
Наша книга, как мы надеемся, поможет Вам в вашей практической деятель ности, поэтому мы рассмотрим вопросы создания отдельных элементов такого магазина. Предположим, он торгует книгами (а на что еще, спросите Вы, хватит фантазии авторов но Вы, конечно, вправе разместить в нем любой дру гой товар.
В качестве примера мы приведем список книг, расположенный в новом Ин тернет-магазине IT Book (рис. 1-5).
Базы данных в Интернеге. Практическое руководство ЕЙ Покупка книг по УЧЕБНЫЙ КУРС. 552 с 2000 г ttcrcsoff. с 512 с 2000 г ив CD-ROM №0 с an 512 с MS 4.0 л Mi Рис. 1-5. Выбор книг в Интернет-магазине Здесь после в качестве покупателя Вы можете просмотреть спи сок книг и другого товара. Щелкнув название книги, Вы увидите ее подробное описание. С помощью ссылки купить книга может быть добавлена в Вашу пер сональную корзину покупателя.
На рис. 1-6 мы показали содержимое корзины после добавления в нее не скольких книг.
Здесь Вы можете отредактировать изменив количество заказанных экземпляров книг, или удалить книгу из корзины, щелкнув крестик в столбце напротив названия книги.
При создании собственного электронного магазина Вам надо решить множе ство вопросов. Вот некоторые из них:
необходимо организовать базу данных, содержащую сведения о товаре, по ставщиках, клиентах, сотрудниках, доставляющих товар покупателям, бухгал терскую информацию, сведения о платежах и т. д.;
часть этой базы данных, содержащая сведения о должна быть доступ на всем покупателям в Интернете, причем покупателям надо предоставить возможность не только ознакомится со всеми достоинствами но и положить купленное в специальную электронную корзину;
следует тщательно продумать вопрос оплаты товара покупателями Ч кре дитными карточками, через банк или наличными деньгами по получении товара ;
Глава Сервер Web как ядро приложений для Интернета отобранные Вами для покупки N EH 1 23G 2 е на 6.0 Учебный на a 0 Учебный по ч и в поле тку в Всего Вы отобрали 7В экэ 5 1 (Ееэ для согласованн Доставка или куда товар В выбора а от общего веса доставки.
Рис. 1-6. Просмотр содержимого корзины покупателя процесс обработки кредитных карточек должен выполняться в безопасном режиме, исключающем возможность похищения важной информации треть ими лицами;
необходимо продумать вопросы администрирования магазина через Интер нет при специально разработанного для этой цели приложения Web;
административное приложение должно позволять базу данных и составлять подробные отчеты о клиентах, товарах, поставщиках, продажах, а также собирать необходимую статистическую информацию.
Много проблем вызовет обработка номеров кредитных карточек.
Как если Вы создаете Интернет-магазин с оплатой товара посред ством кредитных карточек, нужно заключить договор с компанией, выпол няющей обработку таких карточек через Интернет. К сожалению, на момент написания этой книги мы не слышали ни об одной подобном процес центре в России. Однако Вы можете заключить договор на обработку кредитных карточек и с зарубежными компаниями.
После этого Вы полностью уясните себе технические детали процесса обра ботки. Например, это может выглядеть так.
Вы получаете в центре библиотеку динамической компонов ки DLL или элемент управления ActiveX и размещаете его на сервере Web Ва шего магазина. Кроме того, Вам выделяется страница на сервере Web гового центра, выполняющая обработку номеров кредитных карточек с исполь зованием защищенного соединения.
Базы данных в Интернете. руководство Когда пользователь собирается оплатить Ваш сервер Web направляет его на страницу центра. Там покупатель вводит тип кредитной карточки и ее номер, а также срок действия карточки. Эта информация переда ется в безопасном режиме, причем обеспечивается средствами сервера процессингового центра, а не средствами Вашего сервера Web. Таким образом, за сохранность конфиденциальной информации отвечаете не Вы, а центр.
На следующем этапе центр связывается с сервером соответ ствующего банка и снимает деньги со счета клиента (эта связь обычно осуще ствляется не Интернет, а через специальные выделенные каналы связи, защищенные от несанкционированного доступа). Номер транзакции и резуль тат ее выполнения заблаговременно отправляется на Ваш сервер Web, причем сведения о транзакции не известны клиенту. Когда клиент опять обратится на Ваш сервер, Вы можете показать ему динамически страницу с информацией о результате выполнения транзакции.
Передает номер своей Выполняет операцию кредитной карточки снятия денег со счета в процессинговый покупателя Интернет-магазина центр Передает результат транзакции и номер на сервер Интернет-магазина Сообщает покупателю о результате выполнения платеса Рис. 1-7. Обработка кредитных карточек при покупке товара в Интернет-магазине Эта схема, с одной стороны, Вас от необходимости создавать защи щенное соединение между посетителем Интернет-магазина и Вашим сервером Web (перекладывая все эти проблемы на процессинговый центр), а с другой защищает интересы посетителей магазина, так как номера кредитных карточек не становятся известны администратора сервера Web вашего магазина.
Глава Сервер Web как ядро приложений для Интернета Пользуясь номером транзакции, Ваши сотрудники всегда смогут проследить взаимодействуя с центром. Это иногда требуется для разрешения всякого рода конфликтных ситуаций.
Описанная выше процедура обработки кредитных карточек проиллюстриро вана на рис. 1-7.
Еще одна проблема, с которой Вы столкнетесь, такова: номера кредитных карточек иногда воруют. Время от времени центр будет Вам присылать списки номеров кредиток, с помощью которых были сделаны покупки в Вашем магазине. Это Ч чистый убыток. Поэтому, открывая электронный магазин в Интернете, будьте готовы, что какую-то часть товара попросту украдут. Практика показывает, что доля покупок, сделанных по укра денным номерам кредиток, составляет несколько процентов.
Помимо перечисленных выше вопросов, Вам придется продумать способ по лучения и доставки товара, однако эти (и многие другие) вопросы коммерции не связаны с тематикой настоящей книги.
Как видите, создание полноценного электронного магазина в Интернете пред ставляет собой достаточно сложную задачу. Наша книга не ставит перед собой цель решить ее, однако мы рассмотрим вопросы, связанные с организацией пользовательского интерфейса, интерфейса с базой данных, интерфейса с пла тежной системой банка, обрабатывающего кредитные карточки, и другие техни ческие вопросы, без которых не обойтись при создании своего магазина.
В качестве технической базы электронного магазина мы будем использовать SQL Server 7.0 и Microsoft Internet Information Server работающие в среде Microsoft Windows NT Server На рабочем месте администратора и сотруд ников магазина, как мы считаем, установлен браузер Microsoft Internet Exp lorer 5.0. Что же касается рабочих мест покупателя, то мы постараемся обеспе чить максимально возможную совместимость с различными компьютерными платформами.
Установка программ и подготовка к работе Прежде чем работать с нашей книгой, Вам придется установить и настро ить программное обеспечение. Мы остановимся только на основных моментах, поэтому, возможно, Вам придется обратиться к соответствующим разделам до кументации, поставляемой вместе с программами, или к дополнительной лите ратуре.
Далее мы будем считать, что все программные средства установлены на один компьютер, хотя Вы, конечно, можете выбрать для серверов Web и SQL Server отдельные компьютеры. Это благоприятно скажется на общей производитель ности Вашего приложения, хотя потребует дополнительных затрат.
Операционная система сервера Прежде всего, на более или менее с 128 Мб оперативной памяти и 10 Гб дисковой памяти установите операционную систему Microsoft Windows NT Server 4.0.
Далее если Вы собираетесь пользоваться в своих разработках кириллицей, откройте папку Control Panel и с помощью Regional Settings выберите Russian. Пометьте переключатель Set as system default locale. Только после 18 Базы данных в Интернете. Практическое выполнения этой процедуры установите пакет обновления Service Pack для Windows NT версии 6.0 или более новой версии.
Важно отметить, что, если в процессе работы Вам пришлось менять конфи гурацию операционной системы. Вам придется выполнить повторную установ ку пакета обновления Service Pack для Windows NT.
Браузеры Далее обновите браузер Microsoft Internet Explorer до версии 5.0. Вы можете рассматривать эту операцию как второй этап установки пакета обновлений.
Фактически без этого Вам не удастся полноценно работать со средствами раз работки приложений, созданных Microsoft и справочной библиотекой MSDN Library.
Для тестирования совместимости страниц HTML и клиентских сценариев стоит установить еще несколько браузеров и прежде всего Ч браузер Netscape Navigator (он доступен по адресу Устанавливая дру гие браузеры, оставьте приоритет за Microsoft Internet Explorer Ч по умолчанию именно он должен открывать файлы с расширением имени htm и html.
SQL Server Хотя по умолчанию мы считаем, что Вы пользуетесь Microsoft SQL Server вер сии 7.0, большинство приведенных в нашей книге примеров (но не все) работа ют и с версией 6.5.
Вы можете устанавливать SQL Server как обычно, пользуясь руководством по установке или одной из книг, упомянутых в списке литературы. Главное не забудьте выбрать правильный тип сортировки и установить самые свежие пакеты обновления Service Pack для SQL Server. На момент написания этой книги для SQL Server 6.5 был доступен пакет обновления Service Pack 5a, а для SQL Server 7.0 Ч пакет обновления Service Pack 1.
Сервер Web Для работы с книгой Вам потребуется сервер Web на базе Microsoft Internet Information Server IIS 4.0. Он поставляется в составе Microsoft Windows NT 4. Option Pack.
Устанавливая Option Pack, не забудьте установить расширение FrontPage Extensions, а также средства взаимодействия с Microsoft InterDev. Последнее потребуется для отладки серверных сценариев, расположенных в страницах ASP.
Если Вы будете устанавливать Microsoft Windows NT 4.0 Option Pack после пакета обновления Service Pack 4.0-6.0 для Windows NT, то получите предупреж дающее сообщение о том, что Option Pack не тестировался с пакетом обновле ний данной версии. Вы можете проигнорировать это сообщение, однако по за вершении установки Option Pack обязательно повторите установку Service Pack 6.0 для Windows NT.
Microsoft Developer Studio Почти все примеры в этой книге подготовлены с использованием Microsoft Visual Studio 6.0. Устанавливая Microsoft Visual Studio, не забудьте выбрать та Глава Сервер Web как ядро приложений для Интернета кие его компоненты, как Microsoft и Microsoft Visual C++ (если Вы со бираетесь создавать собственные элементы управления ActiveX или расширения сервера Web в виде программ или ISAPI). Для разработки аплетов Java Вам пригодится Microsoft Visual J++.
После установки Microsoft Visual обязательно установите для этой системы пакет обновлений Service Pack 3.0 или более новой версии. Без в частности, не будут транслироваться программы, подготовленные с примене нием стандартной библиотеки шаблонов STL.
Б процессе установки Microsoft Visual Studio Вам будет предложено устано вить справочную систему Library. Устаревшая версия этот системы по ставляется в комплекте с Microsoft Visual Studio 6.0, однако мы рекомендуем Вам оформить подписку в на ежеквартальное получение MSDN Lib rary. Если у Вас есть новая версия MSDN Library, используйте ее вместо старой версии. Не поленитесь скопировать все необходимые Вам разделы MSDN Lib rary на жесткий диск. Несмотря на то, что полная установка этой грандиозной библиотеки документации и примеров потребует свыше 1 Гб памяти, имеет смысл все же переписать ее на жесткий диск компьютера, а не запускать с ком пакт-дисков. Это позволит сэкономить немало времени, потому что в процессе разработки приложений Вы будете постоянно обращаться к различным разде лам MSDN Library.
Microsoft FrontPage Мы не относим себя к тем разработчикам серверов Web, которые стремятся ре дактировать документы HTML исключительно примитивными текстовыми ре дакторами, украшая свои страницы надписями вроде Powered by Когда Вам нужно быстро создать сервер Web, насыщенный большим количе ством сложно структурированной информации и многочисленными ссылками, лучше применять современные мощные проектирования, к которым можно отнести систему Microsoft FrontPage.
На наш взгляд, основным достоинством Microsoft FrontPage является нали чие программы FrontPage Explorer. Она позволяет отслеживать ссылки при пе ремещении каталогов и переименовании и других файлов и умеет вы полнять комплексное тестирование серверов Web на отсутствие оборванных ссылок. Немаловажное значение имеет и возможность импорта в редактор Front Page документов, подготовленных средствами самых разных программ, а также наличие встроенного сервера Personal Web Server, удобного для проектирования и тестирования.
Тем не менее при установке и использовании Microsoft FrontPage необходи мо учитывать ряд особенностей.
Если Вы уже установили на своем компьютере Microsoft Internet Information Server IIS 4.0, то встроенный в Microsoft FrontPage сервер Web устанавливать не надо. Настройте Microsoft FrontPage таким образом, чтобы он взаимодейство вал с сервером Microsoft Internet Information Server.
К сожалению, Microsoft FrontPage не всегда клиентские и серверные сценарии, особенно если они содержат строки с тегами HTML. Для разрешения этой проблемы клиентские JavaScript, например, можно 20 Базы в Интернете. Практическое руководство вынести в отдельные файлы с расширением js, указав ссылки на фай лы в документе HTML. Серверные сценарии ASP можно также выносить в от дельные файлы и включать их при помощи оператора Однако наилучший редактор сценариев, на наш взгляд, Ч это встро енный в Microsoft EnterDev. Он, в частности, отображает строки сценария и кон струкции HTML с использованием цветового выделения. Таким образом, зна чительно повышается читаемость сложных сценариев.
Сценарии в страницах HTML и DHTML Прежде Вы начнете использовать страницы ASP и непосредственно рабо тать с базой данных, Вам необходимо освоить основные приемы создания доку HTML и DHTML с клиентскими сценариями на языках JavaScript и VB Мы что Вы уже владеете этими языками программи рования, поэтому не стали подробно излагать их в книге. Однако краткую спра вочную информацию по JavaScript и VB Script мы поместили в приложение к книге. При необходимости Вы можете к ней обратиться.
Объектная модель браузера Microsoft Internet Explorer Для выполнения каких-либо действий над страницами HTML, загруженными в окно браузера, клиентский сценарий должен обращаться к интерфейсам объек тов сценария, доступных в браузере.
Схематически объектная модель браузера Microsoft Internet Explorer ставлена на рис. Вы можете обращаться к этому рисунку при составлении сценариев для указанного браузера.
history links navigator anchors frames forms elements scripts window document frames location event images screen selection stylesheets body Рис. Объектная модель браузера Microsoft Internet Explorer Базы данных в Интернете. Практическое руководство.
Объект window соответствует окну браузера Microsoft Internet Explorer. Он содержит такие объекты, как document, navigator, location, screen и event. В свою очередь, объект document может links, anchor, forms и другие, а объект forms Ч объект elements.
Когда пользователь загружает в браузера страницу HTML, ные выше создаются и доступными для сценариев. Их со став и количество от содержимого загруженной страницы.
В таблице 2-1 Вы найдете описание некоторых объектов браузера Microsoft Internet Explorer.
Таблица Объекты браузера Microsoft Internet Explorer Объект Описание Представляет собой сам браузер и считается корневым в объектов Содержит методы для имитации кнопок браузера, для просмотра и последующей страницы navigator извлечь информацию о браузере Ч название браузера и помер его версии. Полезен в тех случаях, когда сценарий должен учесть особен ности браузера Позволяет ссылаться на окна набора фреймов. Мы будем использо вать в тех случаях, когда страница HTML подготовлена с применением фреймов document Представляет собой страницу загруженную в окно браузера. В от содержимого страницы этот объект может включать в себя другие объекты, па странице, Ч ссылки, локальные ссылки, формы и т. д.
location Содержит адрес URL страницы, загруженной в окно Изменяя свойства этого можно в окно браузера новую страницу event Содержит информацию о возникающих событиях links Представляет собой массив всех ссылок, расположенных в HTML Содержит массив всех локальных анкеров внутри HTML Представляет формы, размещенные внутри страницы HTML. Мы будем использовать этот объект для доступа к и другим элементам уп равления, расположенным в формах Содержит массив всех управления, в текущей HTML scripts Представляет расположенные в загруженной HTML В зависимости от содержимого страницы HTML, загруженной в брау зера, сценариям становятся доступными и другие объекты, например images и applets.
Заметим, что браузер Netscape Navigator имеет другой набор и дру гие связи между ними.
Окно браузера Netscape Navigator соответствует объекту window, содержаще му такие объекты как Frame, document, Location и History. Объект Document, пред ставляющий собой документ HTML, загруженный в окно браузера, содержит в свою очередь объекты Layer. Link, Image, Area, Anchor, Applet и Глава 2. в страницах HTML и DHTML Если HTML, в браузер Netscape Navigator, содержит формы, то соответствующие объекты могут к объекты, со зданные для элементов форм, таких, как переключатели, поля текстовой информации, списки и т. д. Это объекты Password, Hidden, Submit, Reset, Radio, Checkbox, Select и FileUpload. Объект Select, ющий собой список, содержит объекты Option, создаваемые для строк списка.
Более подробную информацию об объектах браузера Netscape Вы найдете в Интернете по адресу а так же в литературе, список которой приведен в конце нашей и.
В качестве простого примера обращения сценариев JavaScript к объекту Navigator мы листинг небольшого документа HTML, расположенно го в файле (листинг 2-1).
Листинг 2-1 Вы найдете в файле на прилагаемом к кни ге компакт-диске.
Обращаясь к браузера navigator.appName мы можем определить название браузера:
браузера:
+ + Аналогичным образом мы определим и другие параметры браузера и систе мы, такие, как версия, тип процессора, язык и т. д.:
имя + + document.
+ + + userAgent. bold() + + + document.
+ bold() + + + цифра + + При загрузке этого документа в окно браузера Вы увидите о вер сии браузера. На рис. 2-2 и 2-3 мы показали, что получится при загрузке доку мента Browserlnfo.html в браузер Microsoft Internet Explorer 5.0 и в браузер 4.51.
Обратите внимание, что Netscape не показал свойств, с которыми легко справился Microsoft Internet Explorer. Это свойства naviga и naviga tor. появившиеся в последних версиях браузера Microsoft Internet Explorer. Даже на таком простейшем примере видно, что сценарии JavaScript могут работать по-разному в разных браузерах.
Далее мы расскажем о различных объектов описанной выше модели браузера.
Базы данных в Интернете. руководство о.
о вашем ft 4 Л NT;
Х MSIE Windows NT;
HTTP процесс a:
Язык IE ОБ браузера Рис. 2-2. Информация о браузере Microsoft Internet о вашем о Название браузера Версия браузера. 4. Агент HTTP I) Рис. 2-3. Информация о браузере Netscape Применение сценариев для создания интерфейса пользователя При Интернет-магазина мы диалоговый интерфейс, осно ванный на форм и Если Вы знакомы с языком HTML, то должны знать, что формы создаются с помощью тегов Внутри формы могут располагаться текстовые поля ввода, списки, переключатели, кнопки и другие объекты.
Как выполняется обработка данных, введенных пользователем в форме?
Тут возможны два варианта. Первый таков: введенные пользователем при помощи формы, сразу переправляются на сервер для проверки и обработ ки. Во втором случае эти данные проверяются клиентским сце нарием.
Глава 2. в страницах HTML и DHTML У каждого из этих двух способов свои преимущества и недостатки.
В первом случае преимущества в том, что форма не содержит никакого сценария и, следовательно, нет причин для возникновения проблем совместимости сценариев и пользователя. Однако, если в форме мно го полей, которые должны быть заполнены определенным образом, велика ве роятность того, что пользователь где-то ошибется. Тогда сервер отправит пользо сообщение об ошибке, и тому придется проверить форму, а затем отпра вить ее на сервер повторно. Известно, что в целом не обладает высокой способностью. данных раздражают пользователей и могут нагрузки на каналы связи и сервер.
При применении второго способа введенные пользователем данные ются локально. Это улучшает время ответа системы, но иногда приводит к воз никновению проблемы использованного Вами сценария и брау зера пользователя.
В том случае, когда Вы ставите перед собой задачу обеспечить максимальную доступность магазина для посетителей с любыми браузерами, постарайтесь пол ностью исключить клиентских сценариев. при разработке административных приложений, предназначенных для управления работой ма газина (или любого другого приложения Web) использование клиентских сце нариев для проверки форм вполне допустимо.
Начальная регистрация пользователя Как правило, прежде чем пользователь попадет к виртуальным прилавкам Ва шего магазина, ему необходимо выполнить В регистра ции он сообщит Вам свое полное имя, почтовый и электронный и, воз можно, другую информацию. Все эти Вам необходимо сохранить в базе данных.
В этом мы расскажем о том, как выполнить предварительную провер ку данных, пользователем, перед их отправкой на Сам процесс отправки мы рассмотрим позже, в разделе, посвященном страницам ASP.
В качестве примера мы подготовили небольшую форму, предназначенную для регистрации посетителей магазина (рис. 2-4).
В полях этой формы посетитель указать сведения о себе, необходи мые для оформления покупки. что здесь предлагается ввести номер своей кредитной карточки. Такая должна передавать ся напрямую на сервер компании, занимающейся обслуживанием кредитных карточек, минуя сервер Интернет-магазина.
Некоторые поля в этой форме отмечены как обязательные для заполнения.
Перед тем как отправлять введенные данные на сервер для записи в базу дан ных было бы проверить правильность заполнения полей формы. Для этой цели мы используем сценарий JavaScript, который:
проверяет, заполнил ли посетитель обязательные поля, отмеченные в форме символом сравнивает пароль с подтверждением пароля Ч они совпадать;
проверяет e-mail, который содержать по крайней мере один символ и одну точку.
Базы данных в Интернеге, Практическое - I посетителей cm здшм', л ' Петрович в ли Москва ул. 1, кв. ли:
I Рис. 2-4. Форма регистрации посетителей магазина В качестве тренировки Вы можете строку для проверки номера те лефона Ч в нем допустимы символы и цифры. Чтобы отличить от других символов, используйте функцию isDigit.
Исходный текст документа HTML с формой и сценарием JavaScript показан в листинге 2-2. Этот документ был создан при Microsoft FrontPage.
Клиентские сценарии редактировались в среде Microsoft InterDev 6.0.
Листинг 2-2 Вы найдете в файле на прилагаемом к книге компакт-диске.
В документе имеется форма с полями ввода регистрационной информации:
Обращаем Ваше внимание на следующий фрагмент этого документа: Когда посетитель щелкнет мышью кнопку будет вызвана фун кция выполняющая проверку полей формы:
function { || == || == == заполнили не все обязательные поля return;
при подтверждении return;
:
{ в адресе return;
= "Сведения о + "Имя: + + + + + + + адрес: + + + + + + + Базы данных в Интернете. руководство Если при вводе допущены ошибки, функция отобразит на экране пользова теля сообщение об ошибке, а если все правильно Ч данные на сервер Web для обработки программой CGI.
Доступ к полям формы выполняется при объекта document, например:
Здесь мы ссылаемся на имя формы (RegForm), на имя поля (name), а также на свойство value, содержащее значение этого поля.
Для проверки правильности ввода почтового адреса мы функцию Address Valid:
function { var atPresent=false;
var i < if(c == atPresent=true;
'Х.Х') } == == true) return true;
else return false;
!
Если все введены правильно, мы отображаем их на экране функци ей alert и затем отправляем на сервер Web. Для отправки формы при метод submit, как это показано ниже:
RegForm.
Такое действие эквивалентно щелчку типа Submit, применяемой в обычных формах для отправки данных.
Ввод календарных дат Еще одна задача, часто возникающая при приложений Web, это ввод календарных дат и диапазонов календарных дат. Например, Вам может потре боваться список зарегистрировавшихся в определенный период вре мени, или список выполненных за определенный пери од При кажущейся простоте этой задачи ее реализация тем не менее может быть затруднена рядом Во-первых, если разрешить вводить даты в свободном форма те, Вашему приложению придется иметь дело не только с ошибочно введенны ми датами, но и со множеством правильных форматов дат. В зависимости от проживания пользователи будут указывать дату по-своему, и это силь но затрудняет задачу.
Глава 2. Сценарии в страницах HTML и DHTML Во-вторых, необходимо, чтобы при дат учитывалось количество дней в указанном месяце, а также високосные годы.
наконец, при записи даты в базу данных или при использовании дат в за просах SQL Вам придется ее в фиксированный формат, с кото рым сможет работать программа SQL.
С учетом сказанного выше, на наш взгляд, лучше всего применять для ввода дат такие как списки. в них следует указать возможные дат.
Нам понравилось, как решена проблема ввода дат Максимом из компании Spektrum Web Development ( На рис. 2-5 мы показали форму с календарями, для просмотра покупателей по дате регистрации.
В этой форме мы применили (в немного виде) им решение для ввода диапазона дат, основанное па средств DHTML и сценариев JavaScript. Заметим, что в силу использования объектной модели браузера Microsoft Internet Explorer этот метод пригоден для работы с дру гими браузерами. данное обстоятельство не имеет при создании приложений для и административных приложе ний Web Интернете.
Как пользоваться показанной на рис. 2-5?
Все операции мышью. Щелкая ссылки вида и Вы можете изменять год в начальной и конечной В данном случае выполня ется поиск зарегистрировавшихся в период с 1998 до 2000 года.
3 Internet :
' покупателей по дате Начальная дата Конечная дата Поиск....
I My Рис. 2-5. Форма для просмотра списка покупателей по дате регистрации Щелкая название месяца и даты в левом и правом календаре, Вы установите период времени с до одного дня. В нашем случае началь Базы данных в Интернеге, Практическое дата Ч 3 марта 1998 а конечная Ч 29 2000 года. Для нагляд ности названия месяцев и календарные даты выделены в окне формы желтым цветом.
Для того чтобы запустить поиск, достаточно щелкнуть ссылку Поиск.
Если снять флажок у переключателя искать по дате календа ри в форме исчезнут, причем это без повторной загруз ки формы с сервера Web 2-6).
Book I Inter Просмотр покупателей Алфее : по дате My Compute Рис. 2-6. Теперь дата регистрации не учитывается После его повторного включения календарь также быстро появится на экра не вновь. Операции рисования календаря, его сокрытия и повторного отображс выполняются с применением сценариев JavaScript и модели DHTML.
Форма, предназначенная для определения параметров просмотра, определе следующим образом:
Глава 2. в страницах HTML и DHTML
текст HTML, содержащего форму, мы при вели в листинге 2-3. Листинг 2-3 хранится в файле на прилагаемом к компакт-диске.
Изучая этот листинг, прежде всего обратите на то, что он ссылает на файл calendar.js:
В нем хранится большинство функций сценария JavaScript, обеспечивающих работу календарей. Полный текст файла calendar.js Вы найдете в 2-4.
Листинг 2-4 хранится в файле ch01/calendar.js на прилагаемом к книге ком пакт-диске.
Теперь мы расскажем о том, как устроен документ HTML CustomerSearch.html (листинг При внимательном изучении видно, что помимо всего прочего он содержит две пустые таблицы для календарей:
(см. стр.) 32 Базы данных в Интернете. руководство
Заполнение этих таблиц при помощи JavaScript. Как это происходит?
В теле тега мы определили обработчик события функцию buildmap:
function var today = new = = bday = 1;
eyear = eday = fillfdaysC);
} функция вызывается при загрузки документа HTML в окно браузера. В ее входит определение текущей и ее составляю номера месяца и числа. Для этой цели вызываются функции get и getDate.
Далее для заполнения полей таблицы начальной даты функция buildmap по следовательно вызывает функции и function else 2. Сценарии в страницах HTML и DHTML else function { if(byear==eyear { if(bday>=eday) eday=bday;
} var var cellpadding= j=0;
{ { line=line+'
j<12;
j++) { if(byear==eyear { } else { else { + +' } (см. стр.) 34 Базы данных в Интернете. Практическое function fillfdays() var { eday=bday;
} line=line+'
j++) Глава 2. Сценарии в страницах HTML и DHTML } Для заполнения полей таблицы вызываются функции ey, и filltdays.
Эти функции интенсивно различных объек тов таблиц календарей, в тексте HTML их идентификаторами ID:
function { else FromPrev.
else Присваивая новое свойству innerText, сценарий JavaScript спосо бен динамически изменять содержимое тегов страницы, отображаемой окне бра узера. На этой возможности DHTML и строится вся работа данного сценария.
Последнее действие, выполняемое функцией это активизация пе реключателя искать по дате этот режим форме по умолчанию:
В содержится определение функции Ч она по зволяет предварительную установку календарей для заданного диа пазона дат:
function FM, FD, TY, TD, DateCheck) { = FY;
= FM;
bday = FD;
eyear = TY;
= TM;
eday = TD;
if(DateCheck == else (см. стр.) Базы данных в Интернете. Практическое руководство :
= oNewNode = =
sCalendarPreserve;
var oCalendarTable;
var oNewNode;
function == false) sCalendarPreserve = oNewNode = = cellspacing='0'>
var sCalendarPreserve;
oPNode;
== false) { Id sCalendarPreserve = Далее hidecalendar создает новую таблицу, сохраняя ссыл ку на соответствующий объект в переменной oNewNode, и замещает таблицу с календарями этой пустой таблицей:
oNewNode = На следующем этапе мы замещаем содержимое таблицы, свойство и выключаем переключатель:
=
Когда пользователь вновь активизирует искать по дате реги функция возвращает таблицу календарей в исходное со oPNode = = + sCalendarPreserve + Что же касается функции go, то мы рассмотрим ее в следующем Загрузка новой страницы в окно браузера Сценарий JavaScript способен загрузить в окно браузера (или в окно фрейма, если документ содержит фреймы) новый документ HTML, заданный адресом В если текущий документ содержит форму запроса к базе дан 38 Базы данных в Интернеге, Практическое руководство JavaScript может загрузить в текущее окно браузера документ HTML (или ASP) с результатами обработки этого запроса. Именно так и работает до из примера, приведенного в листинге 2-3:
function go() = + + + } Здесь в свойство объекта location адрес страни цы ASP e названием Get Search Эта страница расположена в том же каталоге, что и вызывающий ее HTML, поэтому вместо полного пути мы указали только имя файла.
После файла проставлен разделяющий символ и достаточно ная строка параметров, странице ASP. Эта строка содержит началь ную и дату, имя пользователя, адрес его электронной почты и еще один параметр с именем FRCE, о котором мы пока умолчим. Строка параметров будет прочитана и обработана серверным сценарием, встроенным в страницу Get Подробнее об этом мы расскажем в главе.
Если Вы не собираетесь выполнять предварительную обработку формы при помощи клиентского адрес данной страницы ASP указать в ACTION тега Для поля исходного десятичного числа при помощи параметра NAME мы за дали имя результата называется Эти имена использу ются сценарием JavaScript для адресации наших полей.
Документ toc.html (листинг 2-13) содержит форму с кнопками и функции сценария.
Листинг Вы найдете в файле на прилагаемом к книге компакт-диске.
Рассмотрим работу в нашем разователе.
Pages: | 1 | 2 | 3 | 4 | 5 | ... | 6 |
Книги, научные публикации