如何在“@context httpservletrequest”中注入头文件?

2w3rbyxf  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(379)

假设我有这个代码:

@ApplicationPath("...")
public class MyApp extends ResourceConfig {
    public SalesLayerApplication() {
        this.register(HeaderInjecterFilter.class);
        this.register(Test.class);
    }
}

@PreMatching
public class HeaderInjecterFilter implements ContainerRequestFilter {
    @Override
    public void filter(final ContainerRequestContext crc) throws IOException {
        crc.getHeaders().add("foo", "bar");
    }
}

@Path("/test")
public class Test {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String dump(@Context final HttpServletRequest request) {
        return request.getHeader("foo");
    }
}

我希望调用rest入口点/测试并检索字符串 bar .
但我看到的都是空的
如果我使用 @HeaderParam("foo") 我正确地检索了变量,但是我需要通过 @Context HttpServletRequest .

vd8tlhqk

vd8tlhqk1#

为什么希望向containerrequestcontext添加头也会将其添加到httpservletrequest?这些是完全不相关的实体。试着注射 HttpHeaders 或者你也可以注射 ContainerRequestContext 直接。

相关问题