Разработка Web-приложения 'Магазин книг'
Содержание
Введение
.
Описание предметной области
.
Разработка Web-приложения «Магазин книг»
.1
Программирование XSL-таблиц стилей
.2
Программирование серверных сценариев
.3
Результаты работы Web-приложения
Заключение
Приложение.
«SQL-код для создания БД «Магазин книг» («Bookstore»)»
Введение
В последние несколько лет все большее количество сайтов стремится
разделить информационное наполнение страниц и дизайн посредством использования
XML-разметки данных и их XSL-преобразования.
Целью данной работы является закрепление навыков по созданию Web-приложений, построению XSL-таблиц
стилей трансформации, программной реализации XSL-трансформации на основе
классов серверных сценариев Web-приложений.
1. Описание
предметной области
В данной расчетно-графической работе в качестве предметной области
рассматривается магазин книг.
Исходные данные о магазине: обычный академический магазин, который
работает с поставщиками и покупателями, соответственно есть и продавцы. Книги
хранятся непосредственно в помещении магазина и расставляются по жанрам.
Покупатель, приходя в магазин, обращается к продавцу, который в свою
очередь предлагает ему тот или иной товар, после чего при осуществлении покупки
покупатель получает от продавца чек и забирает понравившиеся книги. Если необходимых
книг не оказывается в магазине, то можно составить заявку на поставку товара.
Так же у покупателя есть возможность выбрать книги с помощью web-приложения, в котором содержится вся
информации о товарах книжного магазина: названия книг, авторы, предлагаемые
жанры, стоимость.
2. Разработка
Web-приложения «Магазин книг»
.1
Программирование XSL-таблиц стилей
В ходе выполнения работы нами были созданы XSL-спецификации трансформации
«Default.xsl» и «Browse.xsl». Листинги программного кода данных
файлов представлены ниже:
. Листинг кода файла «Default.xsl»:
<?xml version="1.0"
encoding="windows-1251" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="#"511475.files/image001.gif">
Рис. 1. Web-приложение «Книжный магазин»
Рис. 2. Пример запроса 1
Рис. 3. Результаты запроса 1
Рис. 4. Пример запроса 2
Рис. 5. Результаты запроса 2
Выполнение расчетно-графической работы было осуществлено в два этапа: 1)
программирование XSL-таблиц стилей для генерации страниц Web-приложения; 2) программирование
серверных сценариев для получения XML-данных из базы данных «Вookstore» и применения к ним стилей
XSL-трансформации.
В итоге нами было разработано Web-приложение «Книжный магазин», состоящее из двух Web-страниц. На первой странице пользователь должен
выбирать жанр произведений из раскрывающегося списка (рис. 1, 2, 4). Передача
выбранных пользователем параметров на сервер выполняется нажатием на ссылку
«Просмотр». В результате выполняется переход на страницу, где отображается
информация о книгах выбранного жанра (рис. 3, 5). Результаты работы Web-приложения представлены в виде
скриншотов.
Таким образом, нами были закреплены навыки XSL-трансформации XML-данных в Web-приложениях.
Приложение
SQL-код
для создания БД «Магазин книг» («Вookstore»)
CREATE DATABASE `Вookstore` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;TABLE
`Genre` (
`ID` VARCHAR( 15) CHARACTER SET cp1251 COLLATE
cp1251_general_ci NOT NULL ,
`name` VARCHAR( 27 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci
NOT NULL ,KEY ( `ID` )
) ENGINE = MYISAM ;TABLE `Books` (
`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`fio` VARCHAR( 27 ) NOT NULL ,
`name` VARCHAR( 60 ) NOT NULL ,
`price` VARCHAR( 10 ) NOT NULL ,
`genre` VARCHAR( 15 ) NOT NULL ,KEY ( `Genre` ) REFERENCES
Genre( `ID` )
) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE
cp1251_general_ciINTO `Genre` ( `ID` , `name` )
VALUES (
'Приключения', 'приключения'
), (
'Детектив', 'детектив'
);
VALUES (
'Роман', 'любовный роман'
), (
'Мемуары', 'биография и мемуары'
);INTO `Books` ( `ID` , `fio` , `name`, `price`, `genre` )
VALUES (, 'Марк Твен', 'Приключения Гекльберри Финна', '$5.49',
'Приключения'
), (, 'Сесилия Ахерн', 'Время моей жизни', '$5.00', 'Роман'
);INTO `Books` ( `ID` , `fio` , `name`, `price`, `genre` )(,
'Шифф Стейси', 'Клеопатра', '$6.10', 'Мемуары'
), (, 'Натаниэль Готорн', 'Мраморный фавн', '$10.95', 'Детектив'
);INTO `Books` ( `ID` , `fio` , `name`, `price`, `genre` )(,
'Майкл Морпупго', 'Боевой конь', '$6.10', 'Приключения'
);