Strutsでinit()したい
Struts使っていたら,サーブレット起動時に一発だけ走らせたい処理が出てきた。普通のサーブレットならinit()の中に書けばいいんだけど,Strutsではどうするの? Torque.init() とかみんなどうしてんだろ。
考えてみると,ActionServletはサーブレットを継承している(だろう)からinit()が使えないことは無いだろう。調べてみると,以下の手順でできるようだ。
- ActionServletを継承したクラスを作る
- その中でinit()をオーバライドする
- ただしsuper.init()を忘れないように(Strutsの初期化が走らなくなる..と思う)
- 標準のActionServletとさしかえるためには,web.xmlの以下の行を書き換える
action org.apache.struts.action.ActionServlet
↓
action jp.co.hogehoge.hoge.MyActionServlet