52.2. 完全な要求 URI の操作

概要

要求 URI には大量の情報が含まれます。この情報は、「リクエスト 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;
  ...
}