お世話になっております。
今回質問させていただきたいのはサーブレットコンテナ上のメモリ解放についてです。サーブレットの動作フローとしては、
(1)クライアントからHTTPリクエストが投げられる。
(2)Webサーバがリクエストを受け取り、コンテナへリクエストを委譲する。
(3)サーブレットコンテナは、リクエストとレスポンスのラッパーオブジェクトを生成し、リクエストへリクエスト情報をマッピングする。
(4)(3)で生成したリクエスト/レスポンスオブジェクトをサーブレットへ参照渡しする。
(5)サーブレットが処理を実行する
(6)レスポンスを生成し、クライアントへ返す。
という流れかと思いますが、この際に(3)で生成されるラッパーオブジェクトや、ロードされたサーブレットが解放されるのは、レスポンスを返した後なのでしょうか。それとも次のリクエストに備え、オブジェクト本体は確保されたまま、次のマッピングに備えるのでしょうか。(サーブレットの解放はコンテナが終了した際?)
はたまた、やはりJava特有のガベージコレクションが働き、メモリ解放はガベージコレクションのタイミングで行われるのでしょうか、、
よろしくお願い致します。。m(._.)m
No.3ベストアンサー
- 回答日時:
サーブレット自体のアンロードは、明示的にサーブレットをシャットダウンしたとき以外は行われません。
基本的に、サーバが生きてる限りずーっとオンメモリです。
リクエスト/レスポンスのラッパーオブジェクトは基本的には(サーブレットでブールするような仕組みで作らない限り)破棄されると思います。
オブジェクトの破棄は、Javaの仕様通りにGCが行います。
なるほどです。
すみません、1点だけ
>明示的にサーブレットをシャットダウンしたとき以外は行われません。
これはサーバをではなく、サーブレットをなのでしょうか、、
次の文を拝読するとサーバをとも読み取れるのですが、、
やはり1リクエストにしか使われず、使い終わったら破棄すべきオブジェクトとなりそれをGCするという形なのですね。
ご回答誠にありがとうございました。m(._.)m
No.4
- 回答日時:
>これはサーバをではなく、サーブレットをなのでしょうか、、
>次の文を拝読するとサーバをとも読み取れるのですが、、
正確には
・サーバは生きたままサーブレットを落とすことはできる。
・サーバが死んだ場合サーブレットは落ちる。
です。
前者はサーブレットを更新したような場合です。
メモリ上のサーブレットは破棄されて、次にリクエストがあったときに(更新された)サーブレットが展開されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- ネットワーク 自分のPC(ローカル環境)から,Webページにアクセスする過程についての質問です。 1 2023/03/19 23:00
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- SoftBank(ソフトバンク) iphoneについてです! 承認と購入のリクエストの設定をしたいのですがファミリー共有設定のメンバー 1 2023/07/10 18:53
- MySQL データベースの検索で、この場合、どの程度負荷になりますか? 3 2022/04/11 04:45
- YouTube 「アクセスをブロック」というエラーメッセージが出てYouTubeにアップできません。 1 2023/02/22 12:28
- X(旧Twitter) 絵師さんへのマナーについて。 先日、pixivでフォローしていた好きな絵師さんがWebオンリーのイベ 2 2023/06/20 20:50
- ヘアケア・ヘアアレンジ・ヘアスタイル メンズで両耳掛けのヘアスタイルってありですか? 1 2023/08/08 21:22
- サーバー 「内部サーバーエラー サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんで 1 2023/07/30 21:54
- その他(悩み相談・人生相談) 普通、患者が主治医や手術でお世話になった勤務医にfacebookで友達リクエストしても保留される可能 5 2022/05/20 16:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワイルドカード<?>と型パラメー...
-
VBA 同じ名前のオブジェクトを...
-
BufferedWriterのcloseメソッド
-
パワーポイントのVBAでテキスト...
-
オブジェクトと関数の違い
-
COMコンポーネントって何?
-
C#でフォームのオブジェクト名...
-
Excelファイルをgrep検索したい
-
vb.net オブジェクト指向につい...
-
【Java】入力した西暦→和暦に変...
-
Excel VBA : イコールになら...
-
Error.prototype結果のd {name
-
オブジェクトを枠線に合わせる...
-
署名と検証
-
オブジェクト名をforループ内で...
-
多人数のじゃんけんプログラム
-
VBA 下記ソースについて質問で...
-
CFileDialogでフォルダだけを選...
-
EXCEL VBAにて動的にCheckBOXを...
-
これは名前空間ですか?それと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
EXCEL VBAにて動的にCheckBOXを...
-
ワイルドカード<?>と型パラメー...
-
C#でフォームのオブジェクト名...
-
VBAのWindowオブジェクトとWork...
-
vb.net オブジェクト指向につい...
-
COMコンポーネントって何?
-
オブジェクトレベルとメタレベル
-
ビジュアルC++でボタンの有...
-
時間帯判定をする。
-
LISTBOXの内容が更新されま...
-
VBA 同じ名前のオブジェクトを...
-
オブジェクト名をforループ内で...
-
Object型からDouble型へのキャスト
-
ADO オブジェクトの渡し方
-
bmp画像をjpegやpng画像に圧縮...
-
Vbで通常使用するプリンターを...
-
戻り値がクラスオブジェクト
-
VBAでvlookup関数から、別シー...
おすすめ情報