私のサーブレット(またはすべてのサーブレット)に到着したすべてのリクエストのリクエストタイムアウトをどこで設定できるのか理解しようとしていますか?それは、私の考えでは、コンテナのプロパティですか? また、これはさまざまなブラウザにどのように影響しますか?それらはすべて、コンテナが指示するパラメータに従っていますか? リクエストのタイムアウト時間は、私が制御できるものでもなく、各ブラウザが独自にこれを決めているかもしれません。 (セッションのタイムアウトについては話していません)JavaサーブレットコンテナのHttp Request timeoutパラメータ
答えて
クライアントのタイムアウトをサーバーから制御することはできません。ただし、長時間実行されている操作がビジーである間は、毎回クライアントにデータを返すことができます。これにより、クライアントのタイムアウトを防ぐことができ、ユーザーなどに進捗状況を表示することができます。レスポンスから取得したOutputStreamまたはWriterにデータを書き込み、flushを呼び出してクライアントに部分データを送信します。
あなたは、クライアントのタイムアウトを制御することはできませんにもかかわらず、サーバーが非常にせっかちすることができます:)たとえば、Tomcat上で、あなたのコネクターでこれを行うことができますが、
<Connector port="8080"
...
connectionTimeout ="5000"
disableUploadTimeout="false" />
これは、サーバーがわずか5秒待ってます接続を閉じます。ブラウザが接続を閉じたエラーを表示します。クライアントでタイムアウトと同じように扱うことができます。
もちろん、これはタイムアウトがサーバーによって引き起こされたもので、ブラウザとサーバーの間の接続の問題ではない場合にのみ機能します。
"timeout" Tomcat Connectorにこのようなパラメータはありません – robsf
パラメータ名は、Connectorタグ内のconnectionTimeoutです。
- 1. get request timeout PDO接続
- 2. JavaサーブレットコンテナのRADIUSモジュール
- 3. Grizzly(glassfish)サーブレットコンテナ(スプリングブート付き)Java
- 4. Java InetAddress.isReachable()timeout
- 5. Angular2 http json request
- 6. Ajax http request close
- 7. android.os.networkonmainthreadexception Http Request
- 8. HTTP Request Angular 2
- 9. Android - HTTP Post request
- 10. VueJS http get request
- 11. apple watch http request
- 12. DataTables Request Unknownパラメータ
- 13. サーブレットコンテナ内のJava Webアプリケーションとスタンドアロン
- 14. google translate api http request
- 15. Node.JS http get request undefined
- 16. android-http post request design
- 17. Elm Http Request on Init
- 18. http-request-access-Control-Allow-
- 19. HTTP: "ERROR bad Request-Line"
- 20. ECONNREFUSED、Node HTTP GET Request
- 21. Springインテグレーションでjson requestパラメータをhttpヘッダに設定する
- 22. JCIFS NTLM GlassFish(またはサーブレットコンテナ)上のHTTP接続の認証
- 23. Akka HTTP「actor per request」パターン
- 24. Greasemonkeyとhttp-on-modify-request
- 25. Ruby Net :: HTTP 400 Bad Request
- 26. http get requestから "Malformed JSON"
- 27. HTTP HEAD RequestおよびSystem.Web.Mvc.FileResult
- 28. HTTP PUTパラメータ
- 29. tomcatサーブレットコンテナの機能
- 30. jspコンテナ対サーブレットコンテナ
良い質問。私は最後の答えにあなたのコメントを読んで、私はどのようなアプローチがあなたの要求が閉じていないことを確認することを選択したのだろうかと思っていた。私は自分自身を彗星にしようとしており、この権利をどうやって作るのか分からない。あなたは解決策を提案できますか?ありがとう! – Dragos
@Dragos〜29秒後に要求をユーザーに返す単純なロングポーリングメカニズムを実装しました(これは30秒未満です[IEの制限])。私が今同じ問題に直面していたら、ウェブソケットapiを使用しようとしていました。 – Ittai
ここでは、「at x time」が現在のレスポンスをフラッシュして現在のスレッドを強制終了するようなタイムアウトを探しているので、ブラウザはデータをすばやく受信します。 FWIWブラウザは最近、レスポンスで「何分」待っているようです... – rogerdpack