2

クライアントがサーバー要求から時期尚早に切断した場合でも、サーバーは残りの作業を実行しますか?
具体的には、Javaサーブレットで次のコードがある場合はdoGetを実行します。

public void doGet(HttpServletRequest req、HttpServletResponse res)throws ServletException、IOException
{{
   A(); //クライアントはA();の後に切断します
   B();
   C();  
}

A()が終了した後にクライアントが切断した場合でも、BとCは実行されますか?
4

2 に答える 2

5

はい、そうです。サーバーは、(応答として)出力ストリームにsthを書き込もうとするまで、切断について認識しません。その場合、中間のプロキシサーバーが原因で、または出力ストリームのバッファリングが原因で、クライアントが切断されたことを知るのが難しい場合があります。

于 2012-11-27T22:43:12.397 に答える
2

場合によります。

中にA()(または他の方法で)応答を(を使用してres)クライアントに返送しようとすると、IOExceptionがスローされます。キャッチされない場合、サーブレットの実行が終了します。

それ以外の場合、計算は続行され、の後に終了しC()ます。

于 2012-11-27T22:51:56.030 に答える