Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


24.4.1 javax.ws.rs.core.UriInfo

javax.ws.rs.core.UriInfoは,URIを構成する各コンポーネント(クエリパラメタやマトリクスパラメタなど)を保持するコンテキストです。HTTPリクエストごとの情報を提供します。なお,javax.ws.rs.core.UriInfoの各メソッドで取得できるのは,正規化後の情報です。

ルートリソースクラスのフィールドにインジェクトされるjavax.ws.rs.core.UriInfoコンテキストの使用例を次に示します。

package com.sample.resources;
 
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
 
//ルートリソースクラス
@Path("/root")
public class Resource {
  //Contextアノテーションを使用してUriInfoをインジェクトするフィールド
  private @Context UriInfo uriInfo;
 
  //リソースメソッド
  @GET
  public String getValue() {
    String value = this.uriInfo.getQueryParameters().getFirst("query");
    return value;
  }
}

ルートリソースクラスcom.sample.resources.Resourceを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例で,URL"http://sample.com/example/root?query=10"に対するHTTP GETリクエストでは,まずuriInfoフィールドjavax.ws.rs.core.UriInfoコンテキストがインジェクトされ,その後HTTP GETリクエストを処理できるgetValue()メソッドが呼び出されます。このため,getValue()メソッドでuriInfoフィールドからクエリパラメタ"query"を取得すると"10"という値が取得されます。