{"id":26746791,"url":"https://github.com/skyrocketstan/learning_netology_java_javaee_servlets","last_synced_at":"2025-03-28T09:15:34.092Z","repository":{"id":61809859,"uuid":"552414911","full_name":"SkyrocketStan/Learning_Netology_Java_JavaEE_Servlets","owner":"SkyrocketStan","description":"Домашнее задание Web, Spring \u0026 Spring MVC.  Блок 2. Java EE, Java Servlets","archived":false,"fork":false,"pushed_at":"2022-10-22T14:26:18.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-08-30T22:46:53.029Z","etag":null,"topics":["homework","java","java-learning","java-programming","javaee","javaweb","netology","servlets"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SkyrocketStan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-16T14:44:01.000Z","updated_at":"2023-08-30T22:46:53.030Z","dependencies_parsed_at":"2023-01-20T08:12:09.706Z","dependency_job_id":null,"html_url":"https://github.com/SkyrocketStan/Learning_Netology_Java_JavaEE_Servlets","commit_stats":null,"previous_names":["bytevirtuoso/learning_netology_java_javaee_servlets","skyrocketstan/learning_netology_java_javaee_servlets"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyrocketStan%2FLearning_Netology_Java_JavaEE_Servlets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyrocketStan%2FLearning_Netology_Java_JavaEE_Servlets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyrocketStan%2FLearning_Netology_Java_JavaEE_Servlets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyrocketStan%2FLearning_Netology_Java_JavaEE_Servlets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SkyrocketStan","download_url":"https://codeload.github.com/SkyrocketStan/Learning_Netology_Java_JavaEE_Servlets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245999618,"owners_count":20707572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["homework","java","java-learning","java-programming","javaee","javaweb","netology","servlets"],"created_at":"2025-03-28T09:15:33.614Z","updated_at":"2025-03-28T09:15:34.064Z","avatar_url":"https://github.com/SkyrocketStan.png","language":"Java","readme":"# Домашнее задание к занятию «2.1. Servlet Containers»\n\nВ качестве результата пришлите ссылки на ваши GitHub-проекты в личном кабинете студента на сайте [netology.ru](https://netology.ru).\n\n**Важно**: ознакомьтесь со ссылками, представленными на главной странице [репозитория с домашними заданиями](../README.md).\n\n**Важно**: если у вас что-то не получилось, то оформляйте Issue [по установленным правилам](../report-requirements.md).\n\n## Как сдавать задачи\n\n1. Создайте на вашем компьютере Maven-проект\n1. Инициализируйте в нём пустой Git-репозиторий\n1. Добавьте в него готовый файл [.gitignore](../.gitignore)\n1. Добавьте в этот же каталог остальные необходимые файлы\n1. Сделайте необходимые коммиты\n1. Создайте публичный репозиторий на GitHub и свяжите свой локальный репозиторий с удалённым\n1. Сделайте пуш (удостоверьтесь, что ваш код появился на GitHub)\n1. Ссылку на ваш проект отправьте в личном кабинете на сайте [netology.ru](https://netology.ru)\n\n## CRUD\n\n### Легенда\n\nВ рамках лекции мы реализовали практически полноценный In-Memory CRUD (Create Read Update Delete) сервер на базе сервлетов. Этому серверу не хватает двух вещей:\n1. Причесать код (вынести методы в константы, убрать дублирующийся код)\n1. Реализовать репозиторий (пока вместо репозитория установлена заглушка)\n\n### Задача\n\n1. Осуществите рефакторинг кода\n1. Реализуйте репозиторий с учётом того, что методы репозитория могут вызываться конкурентно (т.е. в разных потоках)\n\nКак должен работать `save`:\n1. Если от клиента приходит пост с id = 0, значит это создание нового поста - вы сохраняете его в списке и присваиваете ему новый id (достаточно хранить счётчик с целым числом и увеличивать на 1 при создании каждого нового поста)\n1. Если от клиента приходит пост с id != 0, значит это сохранение (обновление) существующего поста - вы ищете его в списке по id и обновляете (продумайте самостоятельно, что вы будете делать, если поста с таким id не оказалось: здесь могут быть разные стратегии)\n\n### Результат\n\nВ качестве результата пришлите ссылку на ваш GitHub репозиторий в личном кабинете студента на сайте [netology.ru](https://netology.ru).\n\n## WebApp Runner*\n\n**Важно**: выполнение данного ДЗ не влияет на получение зачёта по ДЗ.\n\n### Легенда\n\nНе всегда удобно \"таскать\" за собой полноценный Tomcat (скачивать, распаковывать его и т.д.). Достаточно часто используют библиотеку [WebApp Runner](https://github.com/heroku/webapp-runner), ранее (com.github.jsimone webapp-runner).\n\nВстраивание webapp-runner'а в ваш проект позволяет запускать его (проект) следующим образом: `java -jar target/dependency/webapp-runner.jar target/\u003cappname\u003e.war` (достаточно удобно для размещения на облачных платформах).\n\n### Задача\n\nДобавьте в свою сборку скачивание `webapp-runner`'а согласно [инструкции](https://github.com/heroku/webapp-runner#using-with-maven-in-your-project).\n\nУбедитесь, что сборка проходит и ваш war-файл действительно запускается указанной выше командой.\n\n### Результат\n\nРеализуйте новую функциональность в ветке `feature/webapp-runner` вашего репозитория из предыдущего ДЗ и откройте Pull Request.\n\nВ качестве результата пришлите ссылку на ваш Pull Request на GitHub в личном кабинете студента на сайте [netology.ru](https://netology.ru).\n\nПосле того, как ДЗ будет принято, сделайте `merge` для Pull Request'а.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyrocketstan%2Flearning_netology_java_javaee_servlets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyrocketstan%2Flearning_netology_java_javaee_servlets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyrocketstan%2Flearning_netology_java_javaee_servlets/lists"}