Добрый день, подскажите пожалуйста, чтобы использовать Jetty, нужно создать именно Dynamic Web Project? |
Постановка задачи
Написать приложение, которое обрабатывает запросы из браузера.
При первом запросе страницы приложение создает для пользователя Integer sessionId и объект userSession и добавляет эти объекты в Map<Integer, UserSession> sessionIdToUserSession, после чего возвращает пользователю страницу с sessionId, а так же запрос "Введите свое имя".
Вместе с именем приложение получает от пользователя ранее переданный ему sessionId, находит по этому Id объект пользовательской сессии и записывает в него присланное имя.
После изменения объекта userSession приложение отправляет пользователю страницу с sessionId и статусом "Ждите авторизации".
После отправки страницы приложение запрашивает у службы AccountService аутентификацию пользователя. Служба AccountService работает в отдельном потоке и может найти userId по имени пользователя (поиск может быть долгим, имитацию долгого поиска можно сделать через Thread.sleep(5000)).
Если пользователь запрашивает страницу раньше, чем AccountService нашел userId по имени, он получает страницу с sessionId и статусом "Ждите авторизации".
Если AccountService нашел userId, Frontend должен добавить userId в объект userSession соответствующего пользователя.
При следующем обращении пользователь получит страницу "Здравствуйте: " + userName + " ваш userId: " + userId;
При старте приложение должно создавать два потока: Frontend и AccountService. Frontend должен отвечать на запросы пользователя из браузера, а AccountService обрабатывать запрос на авторизацию. "Общение" между потоками должно проходить через систему обмена сообщениями.
2003 – 2024
Телефон: +7 (499) 253-9312, WhatsApp, Telegram, Viber: +7 (977) 954-84-50, факс: +7 (499) 253-9310, e-mail: info@intuit.ru, Skype: Intuit.ru