/Learning_Netology_Java_JavaEE_Servlets

Домашнее задание Web, Spring & Spring MVC. Блок 2. Java EE, Java Servlets

Primary LanguageJava

Домашнее задание к занятию «2.1. Servlet Containers»

В качестве результата пришлите ссылки на ваши GitHub-проекты в личном кабинете студента на сайте netology.ru.

Важно: ознакомьтесь со ссылками, представленными на главной странице репозитория с домашними заданиями.

Важно: если у вас что-то не получилось, то оформляйте Issue по установленным правилам.

Как сдавать задачи

  1. Создайте на вашем компьютере Maven-проект
  2. Инициализируйте в нём пустой Git-репозиторий
  3. Добавьте в него готовый файл .gitignore
  4. Добавьте в этот же каталог остальные необходимые файлы
  5. Сделайте необходимые коммиты
  6. Создайте публичный репозиторий на GitHub и свяжите свой локальный репозиторий с удалённым
  7. Сделайте пуш (удостоверьтесь, что ваш код появился на GitHub)
  8. Ссылку на ваш проект отправьте в личном кабинете на сайте netology.ru

CRUD

Легенда

В рамках лекции мы реализовали практически полноценный In-Memory CRUD (Create Read Update Delete) сервер на базе сервлетов. Этому серверу не хватает двух вещей:

  1. Причесать код (вынести методы в константы, убрать дублирующийся код)
  2. Реализовать репозиторий (пока вместо репозитория установлена заглушка)

Задача

  1. Осуществите рефакторинг кода
  2. Реализуйте репозиторий с учётом того, что методы репозитория могут вызываться конкурентно (т.е. в разных потоках)

Как должен работать save:

  1. Если от клиента приходит пост с id = 0, значит это создание нового поста - вы сохраняете его в списке и присваиваете ему новый id (достаточно хранить счётчик с целым числом и увеличивать на 1 при создании каждого нового поста)
  2. Если от клиента приходит пост с id != 0, значит это сохранение (обновление) существующего поста - вы ищете его в списке по id и обновляете (продумайте самостоятельно, что вы будете делать, если поста с таким id не оказалось: здесь могут быть разные стратегии)

Результат

В качестве результата пришлите ссылку на ваш GitHub репозиторий в личном кабинете студента на сайте netology.ru.

WebApp Runner*

Важно: выполнение данного ДЗ не влияет на получение зачёта по ДЗ.

Легенда

Не всегда удобно "таскать" за собой полноценный Tomcat (скачивать, распаковывать его и т.д.). Достаточно часто используют библиотеку WebApp Runner, ранее (com.github.jsimone webapp-runner).

Встраивание webapp-runner'а в ваш проект позволяет запускать его (проект) следующим образом: java -jar target/dependency/webapp-runner.jar target/<appname>.war (достаточно удобно для размещения на облачных платформах).

Задача

Добавьте в свою сборку скачивание webapp-runner'а согласно инструкции.

Убедитесь, что сборка проходит и ваш war-файл действительно запускается указанной выше командой.

Результат

Реализуйте новую функциональность в ветке feature/webapp-runner вашего репозитория из предыдущего ДЗ и откройте Pull Request.

В качестве результата пришлите ссылку на ваш Pull Request на GitHub в личном кабинете студента на сайте netology.ru.

После того, как ДЗ будет принято, сделайте merge для Pull Request'а.