3. サーブレットの基本2
サーブレット 3章 サーブレットの基本2
- 3.1. Webアプリケーション全体の初期設定値の読み出し
- 3.2. ログの書き込み
- 3.3. HTTPヘッダーの取り扱い
3.1. Webアプリケーション全体の初期設定値の読み出し
2.2節ではサーブレット毎に初期設定を行い、それをサーブレットで読み出す方法について説明しました。この節では、Webアプリケーション全体で通用する初期設定の方法について説明します。
J2EEでは特定のディレクトリ下にまとめられているリソース、および「WEB-INF/web.xml」ファイルで設定されるサーブレットは1つのWebアプリケーションとして識別されます。これら全体から読み出すことのできる初期設定は「WEB-INF/web.xml」で以下のように記述します。
<web-app> <context-param> <param-name>ServerName</param-name> <param-value>sample.xyz</param-value> </context-param> ...
<context-param>タグで初期設定を行います。<context-param>タグは順番的には<web-app>タグ内の先頭でなければなりません。<context-param>タグ内の記述方法については、<init-param>と同じです。続いてサーブレットでその初期設定の読み取り方法について説明します。
public class SampleServlet extends HttpServlet{ public void init() throws ServletException{ ServletContext context=getServletContext(); String serverName=context.getInitParameter("serverName"); ...
Webアプリケーション全体に関連する処理を行うメソッドは、「javax.servlet.ServletContext」インタフェースで提供されています。これのオブジェクトは「javax.servlet.ServletConfig」インタフェースや「javax.servlet.GenericServlet」クラスの「getServletContext」メソッドで取得することが可能です。
初期設定の読み出しは、「getInitParameter」メソッドを使用します。この辺りはサーブレット毎の初期設定の読み出しと同じです。値が設定されていない場合にはnullを返します。初期設定の名前一覧を返す「getInitParameterNames」メソッドもあります。
(実習課題1)
2章の実習課題2を改良しなさい。
- データベースへの接続に関する設定(ユーザ名、パスワードなど)は、Webアプリケーション全体の設定に変えること。