編集:気をつけろ!サーブレット仕様2.4以降、インターフェース
javax.servlet.SingleThreadModelは非推奨になり、直接置き換えられることはありません。
コンテナが同じサーブレットの複数のインスタンスを作成する必要があるのか、それとも常に単一のインスタンスのみを作成するのかについての仕様は明確ではありません。
サーブレット仕様2.4からhttp://download.oracle.com/otndocs/jcp/servlet-2.4-fr-spec-oth-JSpec/
SRV.2.2インスタンスの数
SRV.13章「デプロイメント記述子」で説明されているように、サーブレットを含むWebアプリケーションのデプロイメント記述子の一部であるサーブレット宣言は、サーブレットコンテナがサーブレットのインスタンスを提供する方法を制御します。分散環境(デフォルト)でホストされていないサーブレットの場合、サーブレットコンテナはサーブレット宣言ごとに1つのインスタンスのみを使用する必要があります。ただし、SingleThreadModelインターフェースを実装するサーブレットの場合、サーブレットコンテナは複数のインスタンスをインスタンス化して、重いリクエストの負荷を処理し、リクエストを特定のインスタンスにシリアル化する場合があります。
デプロイメント記述子で配布可能としてマークされたアプリケーションの一部としてサーブレットがデプロイされた場合、コンテナーは、Java仮想マシン(JVMTM)ごとのサーブレット宣言ごとに1つのインスタンスのみを持つことができます。ただし、配布可能なアプリケーションのサーブレットがSingleThreadModelインターフェースを実装している場合、コンテナーは、コンテナーの各JVMでそのサーブレットの複数のインスタンスをインスタンス化する場合があります。
シングルスレッドモデルの詳細については、ドキュメントを参照してください。