3 - 3 - 6 : 初期化,後処理メソッド

JSPには初期化、後処理メソッドを宣言できる。

初期化メソッド

jspInit()

JSPのインスタンス生成直後にサーブレットコンテナから呼ばれる。実際はjspInitメソッドをオーバーライドしている。
データベース接続、初期値設定など行うのに適している。

後処理初期化メソッド

jspDestroy()

サーブレットを停止するときにサーブレットコンテナから呼ばれる。データベース切断などの後処理を行うのに適している。

これらのメソッドは必要があれば宣言する。
ただし、MVCアーキテクチャ的にはJSPでデータベース接続やオブジェクトを保持しないため、通常はあまり利用しないか。

JSP でちょっとしたWEBアプリを開発する場合はjspInit, jspDestroy を利用すると毎回コネクションする必要が無いので便利だろう。 JSPはServletと違ってサーブレットコンテナに登録する必要が無いので後から簡単にHTML感覚で追加できる。そう考えると結構便利かも。

サンプル [JspInitDestroy.jsp]

<%! int count;%>
<%!
public void jspInit() {
System.out.println("jspInit called");
count = 10;
// 他にデータベース接続など
}
public void jspDestroy() {
System.out.println("jspDestroy called");
// 他にデータベース切断など
}
%>

<%= count%>

実行ログ

サービス Tomcat-Standalone を起動します
Apache Tomcat/4.0.3
サービス Tomcat-Apache を起動します
Apache Tomcat/4.0.3
jspInit called
[ここでtomcatを終了]
サービス Tomcat-Standalone を停止します
jspDestroy called
サービス Tomcat-Apache を停止します