JAVA:IT TRICK

サーブレットの初期化パラメータ

サーブレットではそのサーブレットのweb.xml定義内で設定情報などを記述し読み込んで処理をすることができます。ここでは設定情報を読み込む方法について説明します。
  • このエントリーをはてなブックマークに追加
  • Clip to Evernote
  • IT TRICK RSS

サーブレットではそのサーブレットのweb.xml定義内で設定情報(初期化パラメータ)などを記述し読み込んで処理をすることができます。ここでは設定情報(初期化パラメータ)を読み込む方法について説明します。

サーブレットで自分自身のweb.xmlでの定義情報を読み込むにはgetServletConfig()メソッドからServletConfigを取得し、ServletConfigのgetInitParameterNames()メソッドとgetInitPrameter()メソッドを使ってパラメータを読込ます。以下は初期化パラメータを取得するサンプルです。

初期化パラメータ取得サンプル

このサンプルでは以下のweb.xml内のSample50010.javaに対しての定義内にinit-paramタグを追加し、初期化パラメータを定義しています。また、初期化パラメータはparam-nameタグでパラメータの名前、param-valueタグでパラメータの値をセットで定義します。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>

	<servlet>
		<servlet-name>50010</servlet-name>
		<servlet-class>Sample50010</servlet-class>
		<init-param>
			<param-name>key1</param-name>
			<param-value>value1</param-value>
		</init-param>
		<init-param>
			<param-name>key2</param-name>
			<param-value>value2</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>50010</servlet-name>
		<url-pattern>/50010</url-pattern>
	</servlet-mapping>

</web-app>

以下はweb.xml内で定義した二つの初期化パラメータを読み込んで画面に出力するサーブレットです。

Sample50010.java

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Sample50010 extends HttpServlet {

	public void doGet(HttpServletRequest request,
			HttpServletResponse response)
	throws IOException, ServletException {

		response.setContentType("text/html; charset=Windows-31J");
		PrintWriter out = response.getWriter();

		out.println("<html>");
		out.println("<head>");
		out.println("</head>");
		out.println("<body>");

		// 初期化パラメータの読込
		ServletConfig config = this.getServletConfig();
		Enumeration names = config.getInitParameterNames();

		while(names.hasMoreElements()) {
			String name = (String)names.nextElement();
			String value = config.getInitParameter(name);
			out.println("name:" + name + "<br />");
			out.println("value:" + value + "<br />");
		}


		out.println("</body>");
		out.println("</html>");

	}
}