我有一个未部署在Google应用引擎上的Groovy Web应用程序。 (GAE)之前我使用过Gaelyk,我喜欢URL路由功能described in their doc
如何将Gaelyk的路由功能移植到我未在GAE上部署的基本Groovy WEB应用程序?
注1:我也不想在这个应用程序中使用Grails。
注意2:我不介意包括gaelyk jar,但我不想在GAE中包含任何内容。
答案 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。
希望这能回答你的问题