Hitachi

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


24.4.6 javax.servlet.ServletConfig

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

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

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

追加の初期化パラメタ(init-param要素)を含むweb.xmlの例を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>
  <servlet>
    <servlet-name>CosminexusJaxrsServlet</servlet-name>
    <servlet-class>com.cosminexus.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.cosminexus.jersey.config.property.packages</param-name>
      <param-value>com.sample.resources</param-value>
    </init-param>
    <init-param>
      <param-name>TestParam</param-name>
      <param-value>TestValue</param-value>
    </init-param> 
  </servlet>
  <servlet-mapping>
    <servlet-name>CosminexusJaxrsServlet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

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