Javaサーブレットのライフサイクルについての質問です。
まだJavaサーブレットの開発に携わってから間もないので、不足な点がありましたら申し訳ございません。

サーブレットは一度アクセスするとサーブレットコンテナ上で動作を続けますが(コンテナ上で実体が常駐する)、サーブレットがデータベースと接続しているという前提での文ですが、サーブレットの中のdoPostメソッド内でtry~catch~finally文のfinallyのところでデータベースの切断(close()メソッドで)等のリソースの開放を行い、それ以降はそのサーブレットにアクセスが無くなったとしたら、サーブレットはどの位の期間でライフサイクルが終了するのでしょうか。

サーブレットではdestroyメソッドでサーブレットの消滅がされると思いますが、サーブレットへのアクセスがそれ以降無かったりしても、もう一度アクセスされたりしても、ライフサイクルを考えるとdestroyを入れた方がよいのか、という事もどうすればよいのか分からなくて・・・。

是非、サーブレットのライフサイクルに関して詳しい方がいらっしゃいましたら、ご教授宜しくお願いします。

A 回答 (1件)

一言で言えばサーブレットエンジンの設定次第、でしょうか。


各社からWebアプリケーションサーバーが出ていますが、大体どれもDBのコネクションプールやスレッドプール機能を持っています。
またこれによりサーブレット自体が直接DBと接続するのではなく、リソースの管理はWebアプリケーションサーバーが行うことになります。
不要な(=未使用)のサーブレットは設定された時間やリソースに空きが無ければ古いものから順に捨てられて(=destroy)いきます。

詳しい設定方法やデフォルト値についてはお使いのアプリケーションサーバー製品のマニュアルをご覧ください。
    • good
    • 0
この回答へのお礼

MarrowGさん、こんにちは。詳しいご回答有難うございました。
ようやくサーブレットのライフサイクルについて、少しずつ分かってきました。
Webアプリケーションサーバがやはり関わりを持ってくるのですね。
後はWebアプリケーションサーバのマニュアル等を読んで、学習を進めていきたいと思います。
ご回答嬉しかったです。改めて有難うございました。

お礼日時:2001/11/02 09:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング