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 を停止します