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 对象进行解码的类字段或方法参数时,当前请求的 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;
  ...
}