gpt4 book ai didi

java - 如何检索 Jersey ContainerRequest 属性?

转载 作者:行者123 更新时间:2023-11-28 22:29:23 24 4
gpt4 key购买 nike

我在 Tomcat 中有一个 Java 1.6 网络应用程序和一个使用 Jersey 1.x 的 REST api。在 ContainerRequestFilter 中,我想设置一个属性,然后稍后检索它。

我从我的过滤器类中的这段代码开始:

containerRequest.getProperties().setProperty("programId","foo");

但我以后究竟该如何检索呢?

spec说,“在 Servlet 容器中,属性与 ServletRequest 同步,并公开 ServletRequest 中可用的所有属性。对属性的任何修改也会反射(reflect)在关联的 ServletRequest 的属性集中。”

当我尝试检索该属性时,我有一个 HttpServletRequest 的句柄对象,但该对象没有“.getProperties()”方法。

为了解决这个问题,我最后在我的过滤器类中添加了这样一行: HttpServletRequest.setAttribute("programId", "foo");

稍后我可以使用 (String)request.getAttribute("programId") 提取它。但我很好奇应该如何检索这些属性。

最佳答案

一天中的大部分时间我都在尝试自己寻找这个问题的答案——最终结果是我认为除了注入(inject)请求和强制转换之外没有现成的机制它到 ContainerRequest,如下所示:

public Response resourceMethod(@Context Request request) {
ContainerRequest containerRequest = (ContainerRequest) request;
MyProperty prop = (MyProperty) containerRequest.getProperties().get("myPropertyName");

我真的不喜欢在资源中执行此操作,因此继续使用自定义注入(inject),详见 Custom annotation injection with Jersey 1.x

关于java - 如何检索 Jersey ContainerRequest 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com