Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
v0_Методичка. ЛР. Web программирование.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.83 Mб
Скачать

Лабораторная работа 13 Использование xml Web­сервисов. Протокол soap.

Цель

Научиться использовать протокол SOAP для организации взаимодействия с сервером.

Выполнение

Подготовка к выполнению

Используя ftp-клиент, скопируйте каталог lb13 из предоставленного преподавателем архива «файлы-задания» в «каталог_AJAX» (см. например, подготовительный этап лабораторной работы № 9).

  1. В лабораторной работе используется баpа данных формата SQLITE – файл books.db.

  2. Для корректной работы скриптов установите на каталог lb13/server и файл базы данных books.db право на запись для «Всех» (см. лабораторную работу № 11).

  3. В NetBeabs создайте новый проект на удаленном сервере для выполнения данной лабораторной работы.

Часть 1. Изучение xml файлов с текстом soap сообщений.

  1. Ознакомьтесь с файлами SOAP сообщений в каталоге server/messages.

  2. Обратите внимание, что для каждого метода определена пара файлов и соответственно SOAP сообщений: описание запроса к сервису и ответ сервиса.

Часть 2. Регистрация новой сессии пользователя.

  1. Откройте в проекте файл index.html.

  2. Обратите внимание на подключенные модули

<script type="text/javascript" src="xslt.js"></script>

<script type="text/javascript" src="xmlrpc.js"></script>

  1. Ознакомьтесь с программным кодом в файлах xslt.js и xmlrpc.js.

  2. В файле index.html найдите следующий комментарий

/*

** Задание 2. Регистрация новой сессии пользователя ** Напишите код функции registerSession(), которая вызывая SOAP-метод registerSession …

*/

  1. Необходимо написать функцию registerSession(), которая вызывая SOAP‐метод registerSession – регистрирует новую сессию пользователя. URI этого метода urn:SampleServer2registerSession.

  2. Используя функцию loadXML(), загрузите сообщение server/messages/registerSessionrequest.xml (см. пример в функции showBooks()).

  3. Выполните асинхронный вызов SOAP метода registerSession (см. URI метода выше) с помощью функции sendMessage(). Пример такого вызова так же можно посмотреть в функции showBooks().

  4. Используйте сервер server/server.php.

  5. В качестве последнего параметра функции sendMessage() используйте функцию registerSessionCallack(), которую необходимо будет написать.

  6. Напишите функцию registerSessionCallack(req), которая будет использоваться в асинхронном вызове сервера. В этой функции получите SOAP сообщение ответа сервера (req.responseXML, см. пример сообщения-ответа файле server/messages/registerSession-response.xml) и прочитайте в нем элемент registerSessionResponse. В этом элементе будет находиться ID новой сессии пользователя. Сохраните его в глобальную переменную sessionId.

  7. Для отладки выведите ID новой сессии пользователя в объект HTML страницы <div id="sessId"></div>.

  8. Поставьте вызов функции registerSession() в событие window.onload и проверьте работу в разных браузерах.

Часть 3. Добавление книг в корзину.

  1. Продолжаем работу с файлом index.html.

  2. В файле index.html найдите следующий комментарий

/*

** Задание 3. Добавление книг в корзину

** Напишите код функции addToBasket(), …

*/

  1. Напишите код функции addToBasket(bookId), которая вызывая SOAP‐метод addToBasket, добавляет книгу в корзину. URI этого метода urn:SampleServer2addToBasket.

  2. Для этого загрузите сообщение addToBasketrequest.xml, используя функцию loadXML().

  3. В этом сообщении не забудьте установить параметры sessionId, bookId, где sessionId – сохраненный в переменной идентификатор сессии пользователя, а bookId – идентификатор книги, получаемый функцией, как параметр. Для установки параметров используйте функцию setParameter(). Пример можно посмотреть в уже написанной функции showBooks().

  4. Выполните асинхронный вызов сервера (функция sendMessage()), передавая построенное SOAP сообщение. Используйте сервер server/server.php.

  5. Напишите функцию addToBasketCallback(req), которая будет использоваться в асинхронном вызове сервера. В этой функции сохраните ответ сервера (req.responseXML) в локальной переменной. Найдите и проверьте элемент addToBasketResponse, если он равен «true» – книга добавлена в корзину. Выведите пользователю сообщение об этом. На следующем этапе лабораторной работы отобразим содержание корзины.

  6. Проверьте работу вашего сценария. Для этого просто в браузере посмотрите книги в любой категории и щелкните по любой книге и в режиме пошаговой отладки проанализируйте ответ сервера.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]