Использование Gaelyk URL-маршрутизации в приложении не от Google App Engine - PullRequest
0 голосов
/ 07 октября 2010

У меня есть веб-приложение Groovy, которое НЕ развертывается на движке приложений Google. (GAE) Я уже использовал Gaelyk и мне нравится функциональность маршрутизации URL , описанная в их документе

Как перенести только функции маршрутизации от Gaelyk на мое базовое веб-приложение Groovy, которое не развертывается в GAE?

Примечание 1: я также не хочу использовать Grails для этого приложения.

Примечание 2: Я не возражаю, включая кувшин с геликом, но я скорее не включаю ничего из GAE.

1 Ответ

2 голосов
/ 08 октября 2010

Если вы хотите реализовать это самостоятельно в своей собственной среде, не связанной с GAE, лучше всего начать с источника ...

Для начала вам понадобится класс, расширяющий javax.servlet.Filter в Gaelyk, это класс RoutesFilter

Как вы можете видеть, в методе Filter init это вызывает loadRoutes, который загружает ваш скрипт route.groovy через GroovyShell.

В этой оболочке используются другие классы в этом же пакете , так что в итоге она заполняет свойство List<Route> routes в фильтре экземпляром Route class .

Фильтр ( при настройке web.xml ) затем перехватывает все запросы к серверу, проверяет URI по очереди на каждый маршрут (вызывая метод forUri для каждого маршрута), и если совпадение найдено, оно перенаправляет или пересылает по мере необходимости.

Если совпадений не найдено, фильтр вызывает следующий фильтр по цепочке в контексте веб-сервера.

Надеюсь, что это отвечает на ваш вопрос

...