1

サーバーが要求を満たし、応答がクライアントに返されると、クライアントは要求とその属性を使用できなくなり、JVM によってガベージ コレクションされる可能性があります。

出典: Chuck Cavaness による Jakarta Struts のプログラミング、第 2 版

質問:

  1. 作成者は、「リクエストとその属性がサーバーで利用できなくなった」という意味ではありませんか? クライアントは発信エンドポイントです。

  2. ガベージ コレクターは、サーバー JVM が使用できるヒープ メモリをクリーンアップします。ブラウザ (クライアント) はヒープを使用しません。

  3. 要求属性は、Web コンテナーによって HttpServletRequest オブジェクトに統合されます。

  4. HttpServletRequest および HttpServletResponse オブジェクトはいつガベージ コレクションを取得しますか?

  5. HTTP レスポンスがクライアントに返された時点で、HTTP リクエストのライフサイクルは終了していませんか? ライフサイクルには、クライアントが応答に対して行うことは含まれていませんか?

4

1 に答える 1

0

作成者は、「リクエストとその属性がサーバーで利用できなくなった」という意味ではありませんか? クライアントは発信エンドポイントです。

リクエスト (およびその属性) は Java オブジェクトとしてサーバーで処理されますが、リクエストの送信者はクライアントです。そのため、作成者は、リクエストがサーバーではなくクライアントに属していると言及する場合があります。リクエストを処理した後、それは役に立たないので破棄されます (HTTP の概念) が、Java Web Server では、サーバーに常駐するServletRequestオブジェクト (通常は として扱われHttpServletRequestます) は使用できなくなるため、ガベージ コレクションが行われます。

ガベージ コレクターは、サーバー JVM が使用できるヒープ メモリをクリーンアップします。ブラウザ (クライアント) はヒープを使用しません。

最初の回答の最後の部分で回答しました。

要求属性は、Web コンテナーによって HttpServletRequest オブジェクトに統合されます。

HTTP リクエスト (GET、POST など) からのHttpServletRequest属性と、 を介してアクセスできる属性を混同していますHttpServletRequest#getAttribute(String)提供されたリンクの関数を使用して、文字エンコーディングコンテンツ タイプ要求パラメーターなどの HTTP 要求属性にアクセスできます。また、HttpServletRequestインターフェイスの他の関数を使用して、他の HTTP 属性を知ることもできます。

HttpServletRequest および HttpServletResponse オブジェクトはいつガベージ コレクションを取得しますか?

HTTP 応答がコミットされて終了した後。サーブレットの仕組みを参照してください。インスタンス化、セッション変数、マルチスレッド

HTTP レスポンスがクライアントに返された時点で、HTTP リクエストのライフサイクルは終了していませんか? ライフサイクルには、クライアントが応答に対して行うことは含まれていませんか?

応答がクライアントに届いたら、それをどうするかを決定するのはクライアント次第です。ajax リクエスト、完全なHTTP リクエスト、リソース リクエスト (JS、CSS、画像など)、ポートレット リクエストなどを使用できることに注意してください。

于 2013-02-19T21:51:17.193 に答える