Java: Веб-технологии
Теория: Микрофреймворк Javalin
Цикл «запрос-обработка-ответ» включает множество элементов, которые идентичны для всех сайтов. Поэтому возникли так называемые фреймворки — библиотеки, которые определяют структуру программы. В этом их отличие от обычных библиотек. Благодаря фреймворкам можно сосредоточиться на логике сайта, а не на продумывании базовой архитектуры или разработке вспомогательных инструментов.
Веб-фреймворки подразделяются на две большие группы:
- Фреймворки
- Микрофреймворки
Микрофреймворки устроены значительно проще. Они содержат только минимально необходимую обвязку для комфортной работы в архитектуре HTTP — это «запрос-ответ». Они идеально подходят для обучения, потому что просты и не отвлекают от главного.
В Java таким микрофреймворком стал Javalin. В этом уроке мы начнем изучать принципы работы веб-приложений через призму этого микрофреймворка. Изученные здесь концепции одинаково работают во всех остальных фреймворках, включая Spring Boot, который изучается в следующих курсах.
Установка
Для начала создайте Gradle-проект со следующими параметрами:
- Название — HexletJavalin
- Группа — org.example
- Версия — 1.0-SNAPSHOT
Это можно сделать через редактор или с помощью команды gradle init, как показано ниже:
Проверьте, выглядит ли ваш файл build.gradle.kts так же, как в примере ниже:
Добавьте директорию для хранения исходных файлов:
Создайте файл HelloWorld.java со следующим содержимым:
Последний шаг — создайте репозиторий hexlet-javalin на Github и залейте туда код нашего проекта. Он понадобится для экспериментов во время всего курса.
Запуск
Перейдем к запуску — он выполняется командой ./gradlew run. Во время выполнения задачи Gradle скачивает зависимости, компилирует проект и запускает веб-сервер, встроенный в Javalin:
По умолчанию сервер стартует на http://localhost:7070. Если открыть адрес в браузере, появится надпись Hello World. Одновременно с этим, веб-сервер выведет такие строки в том месте, где мы его запустили:
Этот вывод называется логом. Он помогает понять, как браузер взаимодействует с веб-сервером. На каждый запрос в логе появляются новые строчки, которые показывают:
- Какой запрос пришел на сервер
- Что сервер сделал в ответ на запрос
- Чтобы было в полученном запросе (метод, адрес, параметры, заголовки, тело)
- Есть ли в коде ошибки, из-за которых возникают исключения
В будущем мы не раз будем обращаться к логу для отладки.
Теперь вы умеете запускать веб-сервер Javalin. Чтобы остановить его, можно воспользоваться командой Ctrl-C.
Внесение изменений
Когда веб-сервер запускается, исходный код компилируется и загружается в память. Любые дальнейшие изменения в коде никак не повлияют на запущенное приложение. Это создает неудобства во время разработки — приходится перезапускать сервер каждый раз, когда мы хотим проверить результат изменений. Но для наших задач это не проблема.



