Hitachi

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


24.4.9 javax.servlet.http.HttpServletResponse

javax.servlet.http.HttpServletResponseはServlet仕様で定義されているクラスです。

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

package com.sample.resources;
 
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
 
//ルートリソースクラス
@Path("/root")
public class Resource {
 
  //Contextアノテーションを使用してHttpServletResponseをインジェクトするフィールド
  private @Context HttpServletResponse httpResponse;
 
  //リソースメソッド
  @GET
  public void getValue() throws IOException {
    
    String entity = "Response mentioned using HttpServletResponse";
 
    httpResponse.setHeader("abc","xyz");
    httpResponse.getOutputStream().write(entity.getBytes());
    httpResponse.getOutputStream().flush();
    httpResponse.getOutputStream().close();
    
    return ;
  }
}

ルートリソースクラスcom.sample.resources.Resourceを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例で,URL"http://sample.com/example/root"に対するHTTP GETリクエストでは,まずHttpResponseフィールドにjavax.servlet.http.HttpServletResponseがインジェクトされ,その後HTTP GETリクエストを処理できるgetValue()メソッドが呼び出されます。このため,HttpResponseクラスが応答の構築に使用される個所と,ルートリソースクラスcom.sample.resources.ResourceのgetValue()メソッドは同じになります。