52.2. 使用完整请求 URI

摘要

请求 URI 包含大量信息。大多数信息可以使用方法参数(如 第 47.2.2 节 “注入请求 URI 中的数据” 所述)来访问。但是,使用参数会强制对 URI 如何处理某些限制。使用参数访问 URI 的片段不提供对完整请求 URI 的资源访问权限。

您可以通过将 URI 上下文注入资源来提供对完整请求 URI 的访问权限。URI 作为 UriInfo 对象提供。UriInfo 界面以多种方式模拟 URI。它还可以将 URI 作为 UriBuilder 对象提供,允许您构建 URI 来返回到客户端。

:experimental:

52.2.1. 注入 URI 信息

概述

当作为 UriInfo 对象的类字段或方法参数使用 @Context 注释时,当前请求的 URI 上下文将注入到 UriInfo 对象中。

示例

将 URI 上下文注入类字段 显示通过注入 URI 上下文填充的字段的类。

将 URI 上下文注入类字段

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Path;
...
@Path("/monstersforhire/")
public class MonsterService
{
  @Context
  UriInfo requestURI;
  ...
}