在非Google应用引擎应用中使用Gaelyk URL路由

时间:2010-10-07 19:43:53

标签: groovy url-routing gaelyk

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

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

注1:我也不想在这个应用程序中使用Grails。

注意2:我不介意包括gaelyk jar,但我不想在GAE中包含任何内容。

1 个答案:

答案 0 :(得分:2)

如果你想在自己的非GAE框架中自己实现,最好的起点是源......

首先,您需要一个在Gaelyk中扩展javax.servlet.Filter的类,这是RoutesFilter class

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

此shell使用其他classes in that same package,以便最终使用Route class的实例填充过滤器中的List<Route> routes属性。

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

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

希望这能回答你的问题