Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jetty Server Demo

Простой веб-сервер на 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             # Тесты для проверки функциональности

Компоненты

MainServer.java

  • Основной класс для запуска Jetty сервера
  • Настраивает сервер на работу на порту 8080
  • Регистрирует сервлет Page для обработки всех запросов

Hey.java

  • Фоновый поток, наследующийся от Thread
  • Генерирует сообщения "Hey!" с увеличивающимся счетчиком
  • Хранит сообщения в Vector для потокобезопасности
  • Предоставляет метод для получения сообщений начиная с указанного индекса

Page.java

  • Servlet, обрабатывающий GET и POST запросы
  • GET: отдает HTML страницу и запускает фоновый поток при необходимости
  • POST: возвращает сообщения от фонового потока
  • Поддерживает остановку потока по запросу

Page.html

  • Веб-страница с JavaScript-клиентом
  • Реализует периодические AJAX-запросы к серверу
  • Отображает полученные сообщения в реальном времени
  • Имеет кнопки для обновления и остановки

Требования

  • Java 8 или выше
  • Maven 3.0 или выше
  • Современный веб-браузер для работы с интерфейсом

Сборка и запуск

Сборка проекта

mvn clean compile

Запуск сервера

mvn exec:java -Dexec.mainClass="MainServer"

Или скомпилируйте и запустите напрямую:

mvn clean package
java -cp target/server-1.0-SNAPSHOT.jar MainServer

Доступ к приложению

После запуска сервера откройте в браузере:

http://localhost

Использование

  1. После запуска сервера откроется веб-страница
  2. Автоматически начнется генерация сообщений "Hey!" каждые секунды
  3. Сообщения будут отображаться на странице в реальном времени
  4. Для обновления страницы вручную нажмите кнопку "Update"
  5. Для остановки генерации сообщений нажмите кнопку "Stop"

Тестирование

Для запуска тестов используйте:

mvn test

Технологии

  • Java 8 - основной язык программирования
  • Maven - система сборки проекта
  • Jetty 9.4.17 - веб-сервер и контейнер сервлетов
  • Servlet API 3.1 - API для создания сервлетов
  • JavaScript - клиентская логика для AJAX-запросов
  • XMLHttpRequest - API для отправки HTTP-запросов из JavaScript

Лицензия

Проект распространяется под свободной лицензией.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages