暗黙オブジェクト(application)
JSPでは、宣言せずに使用できるオブジェクトとして9つの暗黙オブジェクト(request, response, pageContext, session, application, config, page, exception)が用意されています。それぞれの暗黙オブジェクトにはJSPプログラムで頻繁に使用するメソッドが定義されています。ここでは、暗黙オブジェクトのうち、applicationについて解説します。
メソッド
暗黙オブジェクトapplicationは、javax.servlet.ServletContextインタフェースのオブジェクト変数です。このオブジェクトはコンテキスト全体に関する操作を行う際に使用します。applicationスコープを持つデータの管理、コンテキスト全体で共有する初期化パラメータの取得などに使用します。以下にapplicationオブジェクトで使用できる主なメソッドを紹介します。
戻り型 | メソッド | 説明 |
---|---|---|
Object | getAttribute(String) | 引数に指定されたデータ名に該当するapplicationスコープのデータ値を返します。該当のデータ名がない場合にはnullを返します。 |
Enume ration |
getAttributeNames( ) | applicationスコープで利用可能なすべてのデータ名を返します。 |
String | getInitParameter(String) | 引数に指定されたパラメータ名に対するパラメータ値を返します。パラメータ名がない場合は、Nullを返します。 |
Enumeration | getInitParameterNames( ) | 指定されているすべてのパラメータ名をEnumeration型で返します。パラメータ名がない場合は、空のEnumeration型のオブジェクトを返します。 |
String | getRealPath(String) | 引数に指定された相対パス(/index.html)を絶対パス(http://localhost/contextPath/index.html)に変換して返します。 |
String | getServerInfo( ) | サーブレットコンテナの名前とバージョンを返します。 |
void | log(String) | 引数に指定したメッセージを、サーブレットコンテナで指定されたログファイルに書き込みます。 |
void | removeAttribute(String) | 引数に指定されたデータ名をapplicationスコープから削除します。 |
void | setAttribute(String, Object) | 第一引数にデータ名、第二引数にデータ値を指定し、applicationスコープを持つデータ値を登録します。すでにデータ名が存在する場合は、新しく指定されたデータ値が上書きされます。 |
※ その他のメソッドについてはAPIリファレンスをご参照ください。
使用例
applicationオブジェクトの使用例について解説します。web.xmlファイルに指定された初期化パラメータを取得するプログラムです。
コンテキスト全体で共通に使用する初期化パラメータはapplicationオブジェクトを使用して取得します。他のプログラムからは参照できず、各プログラム固有の初期化パラメータはconfigオブジェクトを使用して取得します。applicationオブジェクトを使用して取得する初期化パラメータはタグで指定します。
web.xmlの例
<web-app>
--------------------------------
--------------------------------
<!-- (1)パラメータ名"id"とパラメータ値"java-id"を指定しています。 -->
<context-param>
<param-name>id</param-name>
<param-value>java-id</param-value>
</context-param>
<!-- (2)パラメータ名"pass"とパラメータ値"java-pass"を
指定しています。 -->
<context-param>
<param-name>pass</param-name>
<param-value>java-pass</param-value>
</context-param>
--------------------------------
--------------------------------
</web-app>
exApplication.jsp
<%@ page contentType="text/html; charset=windows-31j"%>
<HTML>
<BODY>
<%
//(1)getInitParameterメソッドを使用して
// 初期化パラメータを取得しています。
String id = application.getInitParameter("id");
String pass = application.getInitParameter("pass");
//初期化パラメータid、passを使用する処理
//初期化パラメータid、passを使用する処理
//初期化パラメータid、passを使用する処理
%>
</BODY>
</HTML>
9暗黙オブジェクト(application)