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

1. Поля:

  • private BookDao bookDao – экземпляр DAO для работы с книгами (инициализируется в конструкторе)

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

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

  • protected void doGet(HttpServletRequest request, HttpServletResponse response) – обрабатывает запросы на получение каталога книг

    • Настройка ответа: устанавливает Content-Type: application/json и кодировку UTF-8,

    • Получение данных: вызывает bookDao.getAllBooks() для получения списка книг,

    • Формирование JSON: вручную конвертирует список книг в JSON строку (в учебных целях),

    • Отправка ответа: записывает JSON в выходной поток response.getWriter().

2.2. Особенности реализации:

  • RESTful подход: использует только GET метод для получения данных,

  • Ручная JSON сериализация: для учебных целей реализована без использования библиотек,

  • Обработка ошибок: ловит исключения, возвращает HTTP 500 при внутренних ошибках сервера.

5.3.2. Класс AuthServlet

Назначение: Класс AuthServlet управляет аутентификацией и регистрацией пользователей через REST API. Аннотирован @WebServlet("/auth/*") для обработки различных операций по одному базовому пути.

1. Поля:

  • private UserDao userDao – экземпляр DAO для работы с пользователями

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

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

  • protected void doPost(HttpServletRequest request, HttpServletResponse response) – основной метод обработки

    • Анализ пути: определяет операцию (/login, /register, /logout) по request.getPathInfo(),

    • Маршрутизация: вызывает соответствующий приватный метод для обработки.

2.2. Приватные методы обработки:

  • private void handleLogin(HttpServletRequest request, HttpServletResponse response) – обрабатывает вход пользователя

    • Извлечение данных: получает username и password из параметров запроса,

    • Аутентификация: вызывает userDao.findUserByUsername() и проверяет пароль,

    • Управление сессией: при успешном входе сохраняет пользователя в HttpSession,

    • JSON ответ: Возвращает {"success": true/false, "message": "..."}.

  • private void handleRegister(HttpServletRequest request, HttpServletResponse response) – обрабатывает регистрацию

    • Проверка существования: сначала проверяет, не занято ли имя пользователя,

    • Создание пользователя: создаёт объект User и вызывает userDao.registerUser(),

    • Автовход: после успешной регистрации автоматически создаёт сессию.

  • private void handleLogout(HttpServletRequest request, HttpServletResponse response) – обрабатывает выход

    • Инвалидация сессии: вызывает request.getSession().invalidate(),

    • Очистка: Гарантирует, что все данные сессии будут удалены.

5.3.3. Класс CartServlet

Назначение: Класс CartServlet является комплексным контроллером для всех операций с корзиной покупок. Поддерживает как GET (получение корзины), так и POST (изменение корзины) методы.

1. Поля:

  • private CartDao cartDao – экземпляр DAO для работы с корзиной,

  • private BookDao bookDao – экземпляр DAO для операций с книгами (используется при покупке).