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

时间:2013-01-25 14:50:51

标签: restlet restlet-2.0

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

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

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

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

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

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

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

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

有人可以提供一个简单的例子,还是提供一个这样做的例子的链接?

...谢谢

1 个答案:

答案 0 :(得分:6)

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

Filter myFilter = new MyFilter(getContext());
myFilter.setNext(MyServerResource.class);
router.attach("/test", myFilter);

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