Содержание
Видео на youtube |
---|
https://youtu.be/ny15aofvGCI |
👋 Добро пожаловать в этот лабораторный проект!
🛠 Что это такое?
Это современное веб-приложение, построенное на фреймворкеJavaServer Faces
. В его архитектуре используются2 facelets-шаблона
для гибкости и модульности. Стартовая страница предоставляет общую информацию и перенаправляет на основную страницу с функциональностью. Серверная логика реализована с помощьюManaged Beans
, обеспечивая гибкую и масштабируемую обработку данных.🎯 Цель сайта
Сделать процесс ввода координат точек и проверки их попадания в заданную область максимально удобным и интуитивно понятным. МойUI
был разработан с упором на хорошийUX
😎
📌 Основные функции
- 🖥 Интерактивный Ввод Данных: Используйте интуитивно понятные элементы интерфейса для ввода координат.
- 📊 Динамический График: Визуализация области и точек на координатной плоскости в реальном времени.
- 🔒 Валидация на Сервере: С помощью Managed Beans обеспечивается надежная проверка введенных данных.
🚀 Хотите узнать больше? Ознакомьтесь с руководством пользователя и погрузитесь в удивительный мир этого веб-приложения! 💻
![]() |
---|
-
Managed Beans
: Управляемые бины, которые содержат логику обработки данных на стороне сервера. -
index.xhtml
: Стартовая страница, содержащая общую информацию и перенаправляющая на основную страницу. -
main.xhtml
: Основная страница приложения с веб-формой для ввода координат и отображения результатов.
- Шапка: ФИО, номер группы, номер варианта.
- Интерактивные часы: Показывают текущие дату и время, обновляются раз в 10 секунд
- Ссылка: позволяет перейти на основную страницу приложения
- Набор компонентов: Для задания координат точки и радиуса области в соответствии с вариантом задания. Может потребоваться использование дополнительных библиотек компонентов - ICEfaces (префикс "ace") и PrimeFaces (префикс "p").
- Форма: Отправляет данные на сервер через Managed Beans.
- Набор полей: Для задания координат точки и радиуса области.
- Валидацию: JavaScript- или JSF-валидация введенных данных.
- 🟠 Интерактивный Элемент:
- Динамическая визуализация результатов на графике.
- Обновление графика после каждого запроса.
- Адаптивный график, который меняет свое состояние в зависимости от выбранного радиуса.
- Цвет точек должен зависить от факта попадания / непопадания в область.
- Результаты: Таблицу с результатами предыдущих проверок, хранящихся в Managed Bean.
- Ссылку, позволяющую вернуться на стартовую страницу
- Все результаты проверки должны сохраняться в базе данных под управлением PostgreSQL.
- Для доступа к БД необходимо использовать ORM EclipseLink.
- Для управления списком результатов должен использоваться Session-scoped Managed Bean.
- Конфигурация управляемых бинов должна быть задана с помощью параметров в конфигурационном файле.
- Правила навигации между страницами приложения должны быть заданы в отдельном конфигурационном файле.
- Разработанное веб-приложение должно быть развёрнуто на сервере
WildFly
в standalone-конфигурации, порты должны быть настроены в соответствии с выданнымportbase
, доступ к http listener'у должен быть открыт для всех IP.
- Технология
JavaServer Faces
. Особенности, отличия отсервлетов
иJSP
, преимущества и недостатки. Структура JSF-приложения. - Использование
JSP-страниц
иFacelets-шаблонов
в JSF-приложениях. -
JSF-компоненты
- особенности реализации, иерархия классов. Дополнительные библиотеки компонентов. Модельобработки событий
в JSF-приложениях. - Конвертеры и валидаторы данных.
- Представление страницы
JSF
настороне сервера
. Класс UIViewRoot. -
Управляемые бины
- назначение, способы конфигурации. Контекст управляемых бинов. - Конфигурация JSF-приложений. Файл faces-config.xml. Класс FacesServlet.
- Навигация в JSF-приложениях.
- Доступ к БД из Java-приложений. Протокол
JDBC
, формирование запросов, работа с драйверами СУБД. -
Концепция ORM
. Библиотеки ORM в приложениях на Java. Основные API. Интеграция ORM-провайдеров с драйверами JDBC. - Библиотеки ORM
Hibernate
иEclipseLink
. Особенности, API, сходства и отличия. -
Технология JPA
. Особенности, API, интеграция с ORM-провайдерами.
Tip
Чтобы просто посмотреть лабу (нетривиально профилировать для курса по ОПИ и на helios нету docker)
git clone [email protected]:worthant/interactive-graph-ui.git
cd interactive-graph-ui
mvn clean package
docker-compose up --build
Теперь приложение доступно в браузере по:
http://localhost:32318/interactive-graph-ui-1.0-SNAPSHOT/
Note
Я добавил полностью рабочий standalone.xml
конфиг в resources - можете его глянуть для примера и использовать в лабе
- Выполните все шаги из моего гайда
- Не забудьте создать базу данных в studs:
Подключиться -
psql -h pg -d studs
CREATE TABLE point_model {
id SERIAL PRIMARY KEY,
x DOUBLE PRECISION NOT NULL,
y DOUBLE PRECISION NOT NULL,
r DOUBLE PRECISION NOT NULL
}
- Также не забудьте пробросить порты:
ssh -L port:localhost:port [email protected] -p 2222
- Готово, заходите в браузер и вводите:
http://localhost:port/interactive-graph-ui-1.0-SNAPSHOT/
- JavaServer Faces: Официальная документация JSF
- ORM EclipseLink: Документация EclipseLink
- Lecture from se.ifmo: internet.pdf
- Sergei Nazemtsev's theory: theory.md
- ACID-транзакции: habr
- Жизненный цикл JSF: java-online
- Lombok: complete guide
- CSS Battle: css is fun!)
- Responsive CSS: vk - HASH
- Tailwind CSS: tw
- Tailwind Components: for error pages and beautiful buttons