検索
連載

Java Tips: サーブレットの初期化処理を行うには

サーブレットにおいてリクエストを受ける前に、1回だけ特定の処理を行いたい時があると思います。サーブレットのスーパークラスであるjavax.servlet.http.HttpServletクラス(実際はjavax.servlet.GenericServletクラス)にはinitメソッドが用意されており、このメソッドをオーバーライドして初期化処理を行います。

Share
Tweet
LINE
Hatena

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.

ページトップに戻る