Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программная инженерия. Курсовые / Курсовая. Разработка серверной части сайта Электронный книжный магазин.docx
Скачиваний:
0
Добавлен:
04.01.2026
Размер:
1.94 Mб
Скачать

2. Методы http обработки:

2.1. Обработка GET запросов:

  • protected void doGet(HttpServletRequest request, HttpServletResponse response) – возвращает содержимое корзины пользователя

    • Проверка авторизации: извлекает userId из сессии, возвращает ошибку если не авторизован,

    • Получение данных: вызывает cartDao.getCartItemsByUserId(userId),

    • Формирование ответа: конвертирует список CartItem в JSON с полной информацией о книгах.

2.2. Обработка POST запросов:

  • protected void doPost(HttpServletRequest request, HttpServletResponse response) – обрабатывает все операции изменения корзины

    • Маршрутизация: анализирует request.getPathInfo() для определения операции (/add, /remove, /update, /purchase)

2.3. Приватные методы обработки операций:

  • private void handleAddToCart(HttpServletRequest request, HttpServletResponse response) – добавляет товар в корзину

    • Извлечение параметров: получает bookId из параметров запроса,

    • Выполнение операции: вызывает cartDao.addToCart(userId, bookId),

    • Ответ: возвращает простой JSON {"success": true/false}.

  • private void handlePurchase(int userId, HttpServletResponse response) – обрабатывает оформление покупки

    • Проверка наличия: для каждого товара в корзине проверяет, достаточно ли книг на складе,

    • Атомарное обновление: вызывает bookDao.decreaseBookQuantity() для каждого товара,

    • Транзакционная логика: если все обновления успешны — очищает корзину, иначе откатывает,

    • Ответ: возвращает детализированный JSON с результатом операции.

5.4. Конфигурация проекта Maven

Этот раздел описывает инфраструктурную часть проекта — конфигурационный файл Maven, который определяет весь жизненный цикл приложения.

5.4.1. Файл pom.Xml

Назначение: Файл pom.xml является центральным конфигурационным файлом системы сборки Apache Maven. В контексте данного проекта он выполняет следующие ключевые функции:

  1. Определение метаданных проекта: уникальная идентификация проекта в экосистеме Maven через группу, артефакт и версию,

  2. Управление зависимостями: централизованное подключение внешних библиотек (Servlet API, MySQL Connector),

  3. Конфигурация компилятора: настройка параметров компиляции Java-кода (версия Java, кодировка),

  4. Интеграция с сервером: настройка встроенного веб-сервера Jetty для локального запуска и тестирования,

  5. Автоматизация сборки: определение жизненного цикла сборки, упаковки и развертывания веб-приложения.

  1. Сценарии пользователя

В рамках проектирования и разработки веб-приложения «Электронный книжный магазин Booksy» были рассмотрены и реализованы ключевые сценарии использования системы с точки зрения конечного пользователя. Эти сценарии охватывают полный жизненный цикл взаимодействия с приложением — от первоначального знакомства с каталогом до успешного оформления заказа. Каждый сценарий включает последовательность действий пользователя и соответствующую реакцию серверной части системы.

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

Пользователь заполняет форму регистрации (логин, email, пароль) (Рисунок 1). Система проверяет уникальность логина и создаёт новую учётную запись в базе данных (Рисунок 2).

Рисунок 1 – Регистрация нового пользователя

Рисунок 2 – Обновление пользователей в БД

    1. Успешная авторизация.

Зарегистрированный пользователь вводит правильные логин и пароль (Рисунок 3). Система проверяет данные, создаёт сессию и предоставляет доступ к личному кабинету и корзине.

Рисунок 3 – Успешная авторизация

    1. Безуспешная авторизация.

Пользователь вводит неверные данные (неправильный логин или пароль). Система отклоняет вход и показывает сообщение об ошибке (Рисунок 4).

Рисунок 4 – Безуспешная авторизация

    1. Попытка перейти в корзину неавторизованным пользователям.

Незалогиненный пользователь пытается открыть страницу корзины (Рисунок 5). Система перенаправляет его на страницу входа с сохранением запрошенного URL.

Рисунок 5 – Попытка перейти в корзину неавторизованным пользователям

    1. Фильтрация книг.

Пользователь применяет фильтры (сортировка по цене, ценовой диапазон) (Рисунок 6). Система отправляет запрос на сервер и обновляет отображение каталога.

Рисунок 6 – Пользователь применяет фильтрацию книг

    1. Просмотр книги.

Пользователь нажимает на изображение книги в каталоге. Открывается модальное окно с увеличенным изображением обложки (Рисунок 7).

Рисунок 7 – Приближение книги

    1. Добавление книги в корзину.

Авторизованный пользователь нажимает кнопку "Добавить в корзину" (Рисунок 8). Система отправляет запрос на сервер, который добавляет товар в таблицу cart_items.

Рисунок 8 – Добавление книги в корзину

    1. Изменение количества книг в корзине.

В корзине пользователь использует кнопки "+" и "-" для изменения количества (Рисунок 9). Система отправляет запрос и обновляет сумму и отображение.

Рисунок 9 – Увеличение и уменьшение книг в корзине