- •Курсовая работа по дисциплине
- •Введение
- •Постановка задачи
- •Обоснование выбора технологий
- •Разработка структуры программы
- •1. Основные компоненты программы
- •2. Архитектура взаимодействия компонентов
- •3. Структура базы данных
- •4. Конфигурация проекта Maven
- •Разработка собственных классов
- •5.1. Модель данных (Model)
- •5.1.1. Класс Book
- •1. Поля:
- •2. Методы:
- •5.1.2. Класс User
- •1. Поля:
- •2. Методы:
- •5.1.3. Класс CartItem
- •1. Поля:
- •2. Методы:
- •5.2. Слой доступа к данным (dao)
- •5.2.1. Класс BookDao
- •1. Поля:
- •2. Методы:
- •5.2.2. Класс UserDao
- •1. Поля:
- •2. Методы:
- •5.2.3. Класс CartDao
- •1. Поля:
- •2. Методы:
- •5.2.4. Класс DatabaseConnection
- •1. Поля (константы подключения):
- •2. Методы:
- •5.3. Сервлеты
- •5.3.1. Класс BookServlet
- •1. Поля:
- •2. Методы http обработки:
- •5.3.2. Класс AuthServlet
- •1. Поля:
- •2. Методы http обработки:
- •5.3.3. Класс CartServlet
- •1. Поля:
- •2. Методы http обработки:
- •5.4. Конфигурация проекта Maven
- •5.4.1. Файл pom.Xml
- •Сценарии пользователя
- •Удаление книг из корзины.
- •Оформление заказа.
- •Инструкция пользователю
- •Начало работы с приложением
- •Создание личного кабинета
- •Вход в систему для постоянных клиентов
- •Исследование книжного каталога
- •Фильтрация книг
- •Формирование корзины покупок
- •Управление корзиной
- •Оформление заказа
- •Завершение работы
- •Заключение
- •Список литературы
- •Приложение
4. Конфигурация проекта Maven
Файл pom.xml (Project Object Model) является центральным конфигурационным файлом системы сборки Apache Maven. В контексте данного проекта он выполняет следующие ключевые функции:
Определение метаданных проекта (идентификатор, версия, тип упаковки)
Управление внешними зависимостями библиотек
Настройка параметров компиляции Java-кода
Конфигурация сервера Jetty для локального запуска
Автоматизация процесса сборки и развертывания веб-приложения
Разработка собственных классов
5.1. Модель данных (Model)
Данный раздел посвящён бизнес-сущностям приложения, которые отражают основные концепции предметной области "электронный книжный магазин".
5.1.1. Класс Book
Назначение: Класс Book представляет собой основную бизнес-сущность приложения — книгу, доступную для покупки в электронном магазине. Этот класс является моделью данных, которая отражает структуру таблицы books в базе данных и используется для передачи информации между слоями приложения.
1. Поля:
private int id – уникальный идентификатор книги в системе,
private String title – название литературного произведения,
private String author – фамилия и имя автора книги,
private double price – цена книги в рублях,
private String imageUrl – URL-адрес изображения обложки,
private int quantity – текущее количество экземпляров на складе.
2. Методы:
2.1. Конструкторы:
Book() – конструктор по умолчанию, создаёт пустой объект книги для последующего заполнения через сеттеры,
Book(String title, String author, double price, String imageUrl, int quantity) – параметризованный конструктор, инициализирует объект книги с указанными характеристиками (без id, который генерируется БД).
2.2. Геттеры (методы доступа):
int getId() – возвращает уникальный идентификатор книги,
String getTitle() – возвращает название книги,
String getAuthor() – возвращает имя автора,
double getPrice() – возвращает цену книги,
String getImageUrl() – возвращает URL изображения обложки,
int getQuantity() – возвращает количество экземпляров на складе.
2.3. Сеттеры (методы изменения):
void setId(int id) – устанавливает идентификатор книги (используется при загрузке из БД),
void setTitle(String title) – устанавливает название книги с проверкой на null и пустую строку,
void setAuthor(String author) – устанавливает имя автора с валидацией входных данных,
void setPrice(double price) – устанавливает цену книги с проверкой на неотрицательное значение,
void setImageUrl(String imageUrl) – устанавливает URL изображения (допускается null),
void setQuantity(int quantity) – устанавливает количество на складе с проверкой на неотрицательность.
5.1.2. Класс User
Назначение: Класс User представляет сущность зарегистрированного пользователя системы. Этот класс инкапсулирует данные учётной записи и обеспечивает базовые операции управления профилем пользователя.
1. Поля:
private int id – уникальный идентификатор пользователя,
private String username – уникальное имя для входа в систему,
private String password – пароль пользователя (в текущей реализации хранится в открытом виде),
private String email – адрес электронной почты.
