52.2. 完全な要求 URI の操作
概要
要求 URI には大量の情報が含まれます。この情報は、「リクエスト URI からのデータの注入」 に記載のメソッドパラメーターを使用してアクセスできますが、パラメーターを使用すると URI の処理方法に特定の制約が強制的に課されます。URI のセグメントにアクセスするためにパラメーターを使用しても、完全な要求 URI へのリソースにはアクセスできません。
URI コンテキストをリソースに注入することで、完全な要求 URI にアクセスできます。URI は UriInfo オブジェクトとして提供されます。UriInfo インターフェイスは、URI を複数の方法で破棄する関数を提供します。また、URI を UriBuilder オブジェクトとして提供して、クライアントに返す URI を作成することもできます。
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; ... }