Hitachi

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


24.4.2 javax.ws.rs.core.HttpHeaders

javax.ws.rs.core.HttpHeadersは,HTTPリクエストのHTTPヘッダを保持するコンテキストです。

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

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.HttpHeaders;
 
//ルートリソースクラス
@Path("/root")
public class Resource {
  //Contextアノテーションを使用してHttpHeadersをインジェクトするフィールド
  private @Context HttpHeaders httpHeaders;
 
//リソースメソッド
  @GET
  public String getValue () {
    String value = this.httpHeaders.getRequestHeader("Accept").get(0);
    return value;
  }
}

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