https://github.com/skyrocketstan/learning_netology_java_javaee_servlets
Домашнее задание Web, Spring & Spring MVC. Блок 2. Java EE, Java Servlets
https://github.com/skyrocketstan/learning_netology_java_javaee_servlets
homework java java-learning java-programming javaee javaweb netology servlets
Last synced: 9 months ago
JSON representation
Домашнее задание Web, Spring & Spring MVC. Блок 2. Java EE, Java Servlets
- Host: GitHub
- URL: https://github.com/skyrocketstan/learning_netology_java_javaee_servlets
- Owner: SkyrocketStan
- Created: 2022-10-16T14:44:01.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-10-22T14:26:18.000Z (about 3 years ago)
- Last Synced: 2023-08-30T22:46:53.029Z (over 2 years ago)
- Topics: homework, java, java-learning, java-programming, javaee, javaweb, netology, servlets
- Language: Java
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Домашнее задание к занятию «2.1. Servlet Containers»
В качестве результата пришлите ссылки на ваши GitHub-проекты в личном кабинете студента на сайте [netology.ru](https://netology.ru).
**Важно**: ознакомьтесь со ссылками, представленными на главной странице [репозитория с домашними заданиями](../README.md).
**Важно**: если у вас что-то не получилось, то оформляйте Issue [по установленным правилам](../report-requirements.md).
## Как сдавать задачи
1. Создайте на вашем компьютере Maven-проект
1. Инициализируйте в нём пустой Git-репозиторий
1. Добавьте в него готовый файл [.gitignore](../.gitignore)
1. Добавьте в этот же каталог остальные необходимые файлы
1. Сделайте необходимые коммиты
1. Создайте публичный репозиторий на GitHub и свяжите свой локальный репозиторий с удалённым
1. Сделайте пуш (удостоверьтесь, что ваш код появился на GitHub)
1. Ссылку на ваш проект отправьте в личном кабинете на сайте [netology.ru](https://netology.ru)
## CRUD
### Легенда
В рамках лекции мы реализовали практически полноценный In-Memory CRUD (Create Read Update Delete) сервер на базе сервлетов. Этому серверу не хватает двух вещей:
1. Причесать код (вынести методы в константы, убрать дублирующийся код)
1. Реализовать репозиторий (пока вместо репозитория установлена заглушка)
### Задача
1. Осуществите рефакторинг кода
1. Реализуйте репозиторий с учётом того, что методы репозитория могут вызываться конкурентно (т.е. в разных потоках)
Как должен работать `save`:
1. Если от клиента приходит пост с id = 0, значит это создание нового поста - вы сохраняете его в списке и присваиваете ему новый id (достаточно хранить счётчик с целым числом и увеличивать на 1 при создании каждого нового поста)
1. Если от клиента приходит пост с id != 0, значит это сохранение (обновление) существующего поста - вы ищете его в списке по id и обновляете (продумайте самостоятельно, что вы будете делать, если поста с таким id не оказалось: здесь могут быть разные стратегии)
### Результат
В качестве результата пришлите ссылку на ваш GitHub репозиторий в личном кабинете студента на сайте [netology.ru](https://netology.ru).
## WebApp Runner*
**Важно**: выполнение данного ДЗ не влияет на получение зачёта по ДЗ.
### Легенда
Не всегда удобно "таскать" за собой полноценный Tomcat (скачивать, распаковывать его и т.д.). Достаточно часто используют библиотеку [WebApp Runner](https://github.com/heroku/webapp-runner), ранее (com.github.jsimone webapp-runner).
Встраивание webapp-runner'а в ваш проект позволяет запускать его (проект) следующим образом: `java -jar target/dependency/webapp-runner.jar target/.war` (достаточно удобно для размещения на облачных платформах).
### Задача
Добавьте в свою сборку скачивание `webapp-runner`'а согласно [инструкции](https://github.com/heroku/webapp-runner#using-with-maven-in-your-project).
Убедитесь, что сборка проходит и ваш war-файл действительно запускается указанной выше командой.
### Результат
Реализуйте новую функциональность в ветке `feature/webapp-runner` вашего репозитория из предыдущего ДЗ и откройте Pull Request.
В качестве результата пришлите ссылку на ваш Pull Request на GitHub в личном кабинете студента на сайте [netology.ru](https://netology.ru).
После того, как ДЗ будет принято, сделайте `merge` для Pull Request'а.