初期化パラメータを取得する

DBに接続する際の、IDとかパスとか指定したりとか、早々変更しないようなパラメータなどを設定するのにweb.xmlが使う事ができる。
ソースに書いてると変更するとき面倒ですしね。こゆ設定ファイルで持たせるのはノーマルなやり方。
context毎に設定する時は、タグを使用する。

タグ

要素 内容 素数
param-name パラメータを指定 1
param-value パラメータ名に対するパラメータ値を指定 1
description 説明 0以上

Servletが呼ばれるとはじめにinitメソッドが呼ばれる。
ので通常initメソッドで初期化設定する。Servlet単体で初期化パラメータ取得時には、ServletConfigインターフェースを使う。

ServletConfigメソッド

戻り型 method 説明
String getInitParameter(String) 引数に指定されたパラメータ名に対するパラメータ値を返却。ない時はnull
Enumeration getInitParameterNames() 指定されているすべてのパラメータ名をEnumeration型で返す。パラメータ名がない場合は、空のEnumeration型のオブジェクトを返す。
ServletContext getServletContext() ServletContextのオブジェクト返却
String getServletName() 実行してるServletプログラム名の返却

web.xml

- sample
<servlet>
  <servlet-name>GetConfigServlet</servlet-name>
  <servlet-class>GetConfigServlet</servlet-class>
  <!-- (1)パラメータ名"id"とパラメータ値"java-id"を指定しています。 -->
  <init-param>
    <param-name>id</param-name>
    <param-value>java-id</param-value>
  </init-param>
  <!-- (2)パラメータ名"pass"とパラメータ値"java-pass"を指定しています。 -->
  <init-param>
    <param-name>pass</param-name>
    <param-value>java-pass</param-value>
  </init-param>
</servlet>

servletプログラム

  • sample
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class GetConfigServlet extends HttpServlet {
  public void init() {
    //(1)GenericServletクラスのgetServletConfigメソッドを使用し、
    //   ServletConfigオブジェクトを取得します。
    ServletConfig sc = getServletConfig();
    //(2)パラメータ名"id"のパラメータ値を取得しています。
    String id = sc.getInitParameter("id");
    //(3)パラメータ名"pass"のパラメータ値を取得しています。
    String pass = sc.getInitParameter("pass");

    --------------------------------
    --------------------------------

  }
}