初期化パラメータを取得する
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"); -------------------------------- -------------------------------- } }