24

私のサーブレット(またはすべてのサーブレット)に到着するすべてのリクエストのリクエストタイムアウトを設定できる場所を理解しようとしていますか?それは、私が思うに、コンテナプロパティですか?また、これはさまざまなブラウザにどのように影響しますか?それらはすべて、コンテナが指示するパラメータに準拠していますか?あるいは、リクエストのタイムアウト時間は私が制御できるものではなく、各ブラウザが独自にこれを決定するのでしょうか?(明確にするために、私はセッションタイムアウトについて話していません)

4

3 に答える 3

14

クライアントからのタイムアウト(つまり、HTTP要求への応答を待機する時間)は、クライアントで決定されます。IEの場合はこれを参照し、Firefoxの場合はこれを参照してください。

サーバーからこのタイムアウトを制御することはできません。

于 2009-09-12T10:28:37.813 に答える
7

クライアントのタイムアウトを制御することはできませんが、サーバーを非常に焦らせることができます:)たとえば、Tomcatでは、コネクタでこれを行うことができます。

<Connector port="8080"  
  ...
  connectionTimeout ="5000"
  disableUploadTimeout="false" />

これにより、サーバーは5秒間だけ待機し、接続を閉じます。ブラウザは接続を閉じるエラーを受け取ります。クライアントでのタイムアウトと同じように扱うことができます。

もちろん、これはタイムアウトがサーバーによって引き起こされた場合にのみ機能し、ブラウザとサーバー間の接続の問題ではありません。

于 2009-09-12T12:31:29.623 に答える
3

サーバーからクライアントのタイムアウトを制御することはできません。ただし、長時間実行している操作がビジー状態のときに、時々クライアントにデータを送り返すことができる場合があります。これにより、クライアントがタイムアウトするのを防ぎ、ユーザーなどに進行状況を表示するために使用できます。応答から取得したOutputStreamまたはWriterにデータを書き込み、flushを呼び出して部分的なデータをクライアントに送信します。

于 2009-09-12T10:36:54.980 に答える