Skip to content

About

Учебный проект BookStore Web App

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bookstore Web App

О проекте

Учебный веб-проект, демонстрирующий базовые принципы построения серверного Java-приложения по шаблону MVC.
Реализована работа со списком книг, авторами и пользовательской корзиной.
Сессии пользователей обрабатываются вручную — с обучающими целями. Все данные хранятся в базе данных MariaDB.

Проект собирается как .war-архив и предназначен для развёртывания в контейнере Apache Tomcat.
В качестве стека используются Jakarta EE, JSTL, Logback и загрузка конфигурации через .env-файлы.

Работа с базой данных реализована без ORM — для лучшего понимания SQL и JDBC.

Основной функционал

  • Загрузка конфигурации через .env;
  • Подключение к базе данных MariaDB (без ORM);
  • Архитектура MVC: DAO, сервисы, сервлеты, JSP;
  • Использование JSTL для шаблонов;
  • Обработка исключений через контроллеры;
  • Ручное управление сессиями пользователей (в учебных целях);
  • Статические ресурсы: CSS / JS;
  • Поддержка деплоймента через FTP (mvn deploy).

Работа с базой данных

Все обращения к базе данных централизованы через вспомогательный класс DatabaseHelper.
Он реализует паттерн Singleton, выполняет SQL-запросы с параметрами, управляет подключением, читает SQL-файлы из ресурсов и использует try-with-resources для безопасной работы с JDBC.

Поверх него реализован собственный слой DAO, приближённый по уровню абстракции к ORM:

  • Для каждой таблицы проекта существует соответствующий Java-класс модели;
  • Для каждой модели создан DAO-класс, реализующий CRUD-операции;
  • Базовая логика DAO выделена в BaseDao, от которого наследуются конкретные DAO;
  • Результаты SQL-запросов автоматически преобразуются в экземпляры моделей.

Такой подход позволяет удобно и типизировано работать с базой данных без сторонних библиотек.

Деплоймент

Приложение предназначено для запуска в контейнере Docker на базе:

  • Apache Tomcat 11
  • OpenJDK 23
  • Связка с веб-сервером Apache2 (reverse proxy)
  • База данных: MariaDB

Использование Docker-образа

Для развёртывания приложения использовался Docker-образ almihub/tomcat11-jdk23, который можно найти в моём профиле на Docker Hub.
Для автоматизации процесса создания и публикации Docker-образа под ваши условия можно использовать мой скрипт Dockerhub Publisher, доступный на GitHub.

Дата создания

24 апреля 2025 года

About

Учебный проект BookStore Web App

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages