2010-10-07 54 views
0

我有一个Groovy Web应用程序未部署在Google应用程序引擎上。 (GAE)之前我已经使用过Gaelyk,并且我喜欢URL路由功能described in their doc在非谷歌应用程序引擎应用程序中使用Gaelyk URL路由

如何将Gaelyk的路由功能移植到未部署在GAE上的基本Groovy WEB应用程序?

注1:我也不想在这个应用程序中使用Grails。注意2:我不介意包括gaelyk jar,但我宁愿不包含任何来自GAE的东西。

+0

你将不得不对你的问题更具体。该文档解释了如何使用映射功能......您有什么具体的实现问题? – 2010-10-08 04:33:58

+0

我想从gaelyk的路由方面使用非gaelyk应用程序。 – Tihom 2010-10-08 14:53:41

回答

2

如果你想这个工具自己在自己的非GAE框架,最好的地方开始将是源...

首先,你需要在Gaelyk扩展javax.servlet.Filter类,这是RoutesFilter class

正如您所看到的,在过滤器的init方法中,这会调用loadRoutes,它会通过GroovyShell加载您的routes.groovy脚本。

此外壳使用其他classes in that same package,以便它最终在过滤器中填充List<Route> routes属性,实例为Route class

的过滤器(when configured by web.xml)然后拦截所有请求到服务器检查针对URI每条路线依次(通过调用为每个路由的forUri方法),并且如果发现匹配,它重定向或转发根据需要。

如果在Web服务器的上下文中找不到过滤器calls the next filter down the chain

希望这回答你的问题