Если вы хотите реализовать это самостоятельно в своей собственной среде, не связанной с GAE, лучше всего начать с источника ...
Для начала вам понадобится класс, расширяющий javax.servlet.Filter в Gaelyk, это класс RoutesFilter
Как вы можете видеть, в методе Filter init
это вызывает loadRoutes
, который загружает ваш скрипт route.groovy через GroovyShell
.
В этой оболочке используются другие классы в этом же пакете , так что в итоге она заполняет свойство List<Route> routes
в фильтре экземпляром Route class .
Фильтр ( при настройке web.xml ) затем перехватывает все запросы к серверу, проверяет URI по очереди на каждый маршрут (вызывая метод forUri
для каждого маршрута), и если совпадение найдено, оно перенаправляет или пересылает по мере необходимости.
Если совпадений не найдено, фильтр вызывает следующий фильтр по цепочке в контексте веб-сервера.
Надеюсь, что это отвечает на ваш вопрос