単一のサーブレットは、ユーザー要求の形式で送信される複数のクライアント要求をどのように処理しますか?シングルトンの設計パターンに基づいて、サーブレットの単一のインスタンスが作成されることを知っていますが、単一のサーブレットはどのようにして何百万ものリクエストを処理します。それに関連するスレッドについても混乱しています。
また、ブラウザの仕様や設定は、リクエストを送信したり、リクエストに対して送信されたスレッドを生成したりするのに便利です。
それはすべてのフレームワークで同じですか、それともたとえばStruts v / s Springsとは異なりますか?
Struts / Springフレームワークは実際にはサーブレット仕様に基づいて記述されているため、サーブレットの下で何を使用するかは問題ではありません。
そうです、サーブレットの単一のインスタンスのみが作成されますが、そのインスタンスは複数のスレッド間で共有されます。このため、サーブレットで変更可能な状態を共有しないでください。
たとえば、次のサーブレットがマッピングされています http://localhost/myservlet
class MySerlvet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) {
// Get Logic
}
}
Webサーバーのコードには、似たような(必ずしも同じではない)ものがあります。
MyServlet m = new MyServlet(); // This will be created once
// for each request for http://localhost/myservlet
executorService.submit(new RequestProcessingThread(m));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加