需要在Restlet Component中放置过滤器的示例

Fac*_*ree 4 restlet restlet-2.0

我有一个Restlet(v2.1.1)组件,它使用ServerResource来处理HTTP GET请求.

我想将过滤器和/或路由器放入组件中,以便在请求到达ServerResource之前可以进行一些处理.

我一直在互联网上搜索这样做的例子,以及阅读"Restlet in Action"一书.我发现了一些有趣的东西:

有很多关于如何在组件中设置ServerResource的示例.

有很多关于如何创建和设置过滤器和路由器的示例.

不幸的是,我可能通过书籍和互联网搜索,我找不到使用两者的例子!

根据本书和Internet上的教程,我们应该能够创建一个组件,在组件中设置ServerResource,并使用过滤器来预处理发送到ServerResource的请求.没有任何文档似乎告诉我们如何做到这一点.

我误读了一切吗?是否真的没有办法将过滤器或路由器放在带有ServerResources的组件中?或者我错过了一些提供如何执行此操作的真实示例的文档?

有人可以提供一个简单的例子或提供一个这样做的例子的链接吗?

谢谢...

skr*_*use 6

您需要将过滤器附加到路由器,然后使用以下方法将ServerResource附加到过滤器setNext(Class<? extends ServerResource> targetClass):

Filter myFilter = new MyFilter(getContext());
myFilter.setNext(MyServerResource.class);
router.attach("/test", myFilter);
Run Code Online (Sandbox Code Playgroud)

现在您可以使用过滤器的beforeHandle(Request request, Response response)方法进行预处理.如果CONTINUE以此方法返回,则过滤器会将请求传递给ServerResource.