Restlet - 安全地(线程方式)将信息从Filter传递给Resource

时间:2015-05-18 06:13:45

标签: java restlet

我想将(附加)信息从过滤器传递给资源。 我目前尝试这样做的方式是,在过滤器

getContext().getAttributes().put("additionalInformation", "info..");

并在资源

中检索它
getContext().getAttributes().get("additionalInformation");

问题:

  1. 这是将数据从过滤器传递到资源的最佳方法吗?
  2. 这样线程是否安全 - 如果两个客户端将接近相同的资源,他们是否都会使用相同的上下文
  3. 使用request.getAttributes().put(...)的{​​{1}} 代替怎么样?有什么利弊?
  4. 上下文文档:

    getContext().getAttributes().put(...)

    这是否意味着上下文线程安全?

1 个答案:

答案 0 :(得分:3)

是的,请求对象是Restlet提供的解决方案,用于使用其属性在请求处理中涉及的所有元素之间交换数据。这可以看作是请求的上下文(并且是为此做出的),并且这种方法确实是线程安全的。

上下文是应用程序中所有元素共享的内容。请求处理(过滤器,服务器资源,...)中涉及的所有元素中的上下文通常是应用程序之一。它不是线程安全的,不应该用于在请求中的元素之间共享数据。

希望它可以帮到你, 亨利