如何使用@Context批注
JAX-RS API提供了一种非常方便的机制,可以将各种有用的资源(例如HTTP标头)注入到端点中。 @Context注释是一个通用注释,它注入以下对象的实例:
- HttpHeaders- > HTTP标头参数和值
- UriInfo- >捕获路径变量和查询参数
- SecurityContext- >提供对请求的安全性相关信息的访问
- ResourceContext- >提供对资源类实例的访问
- 请求 ->前提条件请求处理
- 应用程序 , 配置和提供程序 ->提供有关JAX-RS应用程序环境的信息
- HttpServletRequest- >提供对HttpServletRequest实例的访问
- HttpServletResponse- >提供对HttpServletResponse实例的访问
- ServletConfig- >提供对ServletConfig的访问
- ServletContext- >提供对ServletContext的访问
让我们依次使用工作代码示例进行研究。
使用@Context注入HttpHeaders实例
有两种获取HTTP标头参数值的方法。 如果可以使用@HeadParam批注标记资源方法参数并将其传递给参数名称,则将HTTP标头参数的值分配给由@HeadParam批注注释的String变量。 以下代码片段检索user-agent参数的值并将其分配给UserAgent String。
@HeaderParam("user-agent") String userAgent
如果您只需要几个头值,那么这是一个很好的解决方案,但是如果您想要很多或不确定参数名需要遍历头,那该解决方案还不够好。 幸运