私のServlet
クラスがシングルトン(マネージャークラスなど)を使用する場合は、それをどこに保存する必要がありますか?サーブレット自体、またはServletContext
にありますか?サーブレットのシングルトンをどこに保存しますか?
サーブレットコンテナは、Servlet
クラスの複数のインスタンスを作成してリクエストを処理できますか?
私のServlet
クラスがシングルトン(マネージャークラスなど)を使用する場合は、それをどこに保存する必要がありますか?サーブレット自体、またはServletContext
にありますか?サーブレットのシングルトンをどこに保存しますか?
サーブレットコンテナは、Servlet
クラスの複数のインスタンスを作成してリクエストを処理できますか?
only one instance of a Servletがあることは確かです。でも、それでもServletContext
に保存する方が良いでしょう。したがって、他のサーブレットからもアクセスできます。
基本的にどこにでも保存できます。セッション、アプリケーションコンテキスト、またはサーブレットそのもののフィールドとして使用できます。マルチスレッド環境を扱っているため、サーブレットは一度に複数回呼び出されるため、必ず不変にしてください。
を編集してください:Bozhoが指摘しているように、セッションを使用するのは最適ではない可能性があるため、シングルトンをセッションに入れる前にニーズを評価する必要があります。
セッションに参加しない方が良い – Bozho
実際に 'ServletContextListener'を使用してマネージャクラスを準備/作成し、アプリケーションスコープ(' ServletContext')に入れることができます。たとえば[この質問](http://stackoverflow.com/questions/3468150/using-init-servlet)も参照してください。問題のマネージャークラスは必ずしもシングルトンである必要はありません。ただ1つのインスタンスを作成し、アプリケーションスコープに一度入れてください。それで全部です。 – BalusC