Простой веб-сервер на Java, реализованный с использованием фреймворка Jetty.
Данный проект демонстрирует создание веб-приложения с использованием:
- Java 21
- Maven для сборки проекта
- Jetty 11 в качестве веб-сервера
- Servlet API для обработки HTTP-запросов
Приложение предоставляет веб-страницу с интерактивным интерфейсом, который:
- Запускает фоновый поток, генерирующий сообщения "Hey!" каждую секунду
- Отправляет периодические AJAX-запросы на сервер для получения новых сообщений
- Отображает полученные сообщения в реальном времени на веб-странице
- Позволяет остановить генерацию сообщений нажатием кнопки "Stop"
src/
├── main/
│ ├── java/
│ │ ├── MainServer.java # Главный класс для запуска сервера
│ │ └── servlets/
│ │ ├── Hey.java # Фоновый поток для генерации сообщений
│ │ └── Page.java # Servlet для обработки HTTP-запросов
│ └── resources/
│ └── servlets/
│ └── Page.html # Веб-страница с JavaScript-клиентом
└── test/
└── java/
└── HeyTest.java # Тесты для проверки функциональности
- Основной класс для запуска Jetty сервера
- Настраивает сервер на работу на порту 8080
- Регистрирует сервлет Page для обработки всех запросов
- Фоновый поток, наследующийся от Thread
- Генерирует сообщения "Hey!" с увеличивающимся счетчиком
- Хранит сообщения в Vector для потокобезопасности
- Предоставляет метод для получения сообщений начиная с указанного индекса
- Servlet, обрабатывающий GET и POST запросы
- GET: отдает HTML страницу и запускает фоновый поток при необходимости
- POST: возвращает сообщения от фонового потока
- Поддерживает остановку потока по запросу
- Веб-страница с JavaScript-клиентом
- Реализует периодические AJAX-запросы к серверу
- Отображает полученные сообщения в реальном времени
- Имеет кнопки для обновления и остановки
- Java 8 или выше
- Maven 3.0 или выше
- Современный веб-браузер для работы с интерфейсом
mvn clean compilemvn exec:java -Dexec.mainClass="MainServer"Или скомпилируйте и запустите напрямую:
mvn clean package
java -cp target/server-1.0-SNAPSHOT.jar MainServerПосле запуска сервера откройте в браузере:
http://localhost
- После запуска сервера откроется веб-страница
- Автоматически начнется генерация сообщений "Hey!" каждые секунды
- Сообщения будут отображаться на странице в реальном времени
- Для обновления страницы вручную нажмите кнопку "Update"
- Для остановки генерации сообщений нажмите кнопку "Stop"
Для запуска тестов используйте:
mvn test- Java 8 - основной язык программирования
- Maven - система сборки проекта
- Jetty 9.4.17 - веб-сервер и контейнер сервлетов
- Servlet API 3.1 - API для создания сервлетов
- JavaScript - клиентская логика для AJAX-запросов
- XMLHttpRequest - API для отправки HTTP-запросов из JavaScript
Проект распространяется под свободной лицензией.