我有一个Groovy Web应用程序,它没有部署在Google应用程序引擎上。(GAE)我以前用过Gaelyk,我喜欢网址路由功能described in their doc
如何将路由功能从Gaelyk移植到没有部署在GAE上的基本Groovy WEB应用程序?
注意1:我也不想在这个应用程序中使用Grails。
注2:我不介意包含gaelyk jar,但我宁愿不包含来自GAE的任何内容。
发布于 2010-10-08 21:13:11
如果你想在你自己的非GAE框架中实现这一点,最好从源代码开始……
首先,您需要一个在Gaelyk中扩展javax.servlet.Filter的类,这就是RoutesFilter class
正如您所看到的,在过滤器的init方法中,这将调用通过GroovyShell加载routes.groovy脚本的loadRoutes。
此shell使用另一个classes in that same package,因此它最终使用Route class的实例填充filter中的List<Route> routes属性。
然后,过滤器(when configured by web.xml)截取到服务器的所有请求,依次检查每个路由的URI (通过调用每个路由的forUri方法),如果找到匹配,它会根据需要重定向或转发。
如果未找到匹配项,则在web服务器的上下文中查找筛选器calls the next filter down the chain。
我希望这能回答你的问题
https://stackoverflow.com/questions/3885294
复制相似问题