0

我有一个 Groovy Web 应用程序,它没有部署在 Google 应用程序引擎上。(GAE) 我以前使用过 Gaelyk,我喜欢他们文档中描述的 URL 路由功能

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

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

注意 2:我不介意包含 gaelyk jar,但我宁愿不包含 GAE 中的任何内容。

4

1 回答 1

2

如果您想在自己的非 GAE 框架中实现这一点,最好的起点是源代码......

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

如您所见,在initFilter 的方法中,此调用loadRoutes通过GroovyShell.

这个 shell 使用了同一个包中的其他类,因此它最终使用Route 类List<Route> routes的实例填充过滤器中的属性。

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

如果未找到匹配项,过滤器将调用Web 服务器上下文中链下的下一个过滤器。

希望这能回答你的问题

于 2010-10-08T13:13:11.433 回答