Задание: написать небольшой текстовый квест. Вопрос на каждом следующем шаге зависит от предыдущего ответа.
Настройки квеста хранятся в файле quest.json в папке resources. Такая реализация позволяет оперативно менять настройки квеста. Количество вариантов ответа может быть различным для разных шагов.
Пакеты:
filter - фильтры
listener - инициализация при запуске приложения
model - модели данных: QuestStep
service - бизнес-логика
servlet - реализация сервлетов
uitl - вспомогательные классыСервлеты:
StartServlet - страница приветствия, ввод имени
GameServlet - обработка игры с ветвлением:
- doGet() - отображаем текущий шаг
- doPost() - отображение ответа и переход к след. шагу
EncodingFilter - фильтр для UTF-8 кодировкиJSP страницы: index.jsp - стартовая страница приветствия game.jsp - основная страница игры с JSTL:
- динамическое отображение шагов
- статистика в реальном времени
Порт: 8080 Path: /TextQuest /game
WEB-INF/web.xml - веб-конфигурация, дескриптор развертывания веб-приложения webapp - JSP-страницы