Java Tips: サーブレットの初期化処理を行うには
サーブレットにおいてリクエストを受ける前に、1回だけ特定の処理を行いたい時があると思います。サーブレットのスーパークラスであるjavax.servlet.http.HttpServletクラス(実際はjavax.servlet.GenericServletクラス)にはinitメソッドが用意されており、このメソッドをオーバーライドして初期化処理を行います。
initメソッドをオーバーライドするときの注意点
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
initメソッドは,サーブレットがサービスを開始できる状態になった際にサーブレットコンテナによって呼び出されるメソッドです。メソッドとしてはパラメータとしてjavax.servlet.ServletConfigオブジェクトを受け取るものと,まったくパラメータを受け取らないものがあります。決まった初期化処理を行うのであれば,パラメータなしのinitメソッドを,なんらかのパラメータを受け取って初期化処理を行う場合はパラメータありのinitメソッドをオーバーライドします。パラメータありのinitメソッドの代わりにinitパラメータなしのinitメソッドをオーバーライドした場合は,GenericServlet#init(ServletConfig)メソッドによって呼び出されます。
注意点としては,パラメータなしのinitメソッドをオーバーライドする場合はとくに制約はありませんが,パラメータありのinitメソッドをオーバーライドする場合は,次に示すように必ずsuper.initメソッドを呼び出すことです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
初期化に必要なパラメータを受け取るには
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
パラメータありのinitメソッドをオーバーライドする場合は,次に示すServletConfigオブジェクトのメソッドを使って初期化パラメータを取得し,利用することができます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
初期化パラメータは,デプロイメントディスクリプタ(/WEB-INF/web.xml)のservlet要素に記述します。記述する場所は,初期化パラメータを受け取りたいサーブレットを定義したservlet要素の中です。init-param要素の子として,param-name要素とparam-value要素を記述します。次に定義例を示します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この例では,TestServletの初期化パラメータとして,propertiesという名前で/WEB-INF/param.propertiesという値を記述しています。この初期化パラメータを受け取るには,
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
なお,initメソッドで受け取ったServletConfigオブジェクトは,HttpServlet#getServletConfigメソッドを使うことでいつでも参照することが可能です。
「JAVA Developer」より毎週役立つJava Tipsを配信中。ほかにも参考になるTipsは、JAVA Developerサイトのバックナンバーから探すことが可能です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.