24.4.8 javax.servlet.http.HttpServletRequest

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

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

package com.sample.resources;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;

//ルートリソースクラス
@Path("/root")
public class Resource {

 //Contextアノテーションを使用してHttpServletRequestをインジェクトするフィールド
 private @Context HttpServletRequest httpRequest;

 //リソースメソッド
 @GET
 public String getValue() {
   return this.httpRequest.getParameter("Hitachi");
   
 }
}

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