servletのインスタンス

tomacat上でservletが呼び出された時に、servletが起動するコンテナ上でインスタンス化される。
インスタンスに対してリクエスト(GET,POSTなど)が来るたびにインスタンスからスレッドが起動される。スレッド自体はリクエストの処理が終わると消えるけどインスタンスは一定時間維持される。

GETリクエストはdoGetメソッドで受け取るけれど、イメージとしてはGETリクエストが来るたびにdoGetメソッドがスレッドとして実行される。スレッドなので複数リクエストが同時に来ても複数スレッドが起動してそれぞれに対応するということ。

メソッドの外で宣言された変数はインスタンス変数になる。インスタンス変数はインスタンス化されている間保持されるけど、一定時間アクセスがないと破棄される。インスタンス変数を確実に保持したい場合はdestroyメソッドを使う。
destroyメソッドはインスタンスが破棄される時に実行されるメソッド。ここでインスタンス変数をファイルに書き出したりして保持する。