• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セッションオブジェクトの使い方(次画面の渡し方について))

セッションオブジェクトの使い方について

このQ&Aのポイント
  • セッションオブジェクトを次の画面に渡す場合、次の画面にはリクエストオブジェクトを渡すことになる。
  • リクエストオブジェクトにセッションオブジェクトの値をセットし、RequestDispatcherを使用して次の画面に遷移すると、セッションオブジェクトの値も次の画面に渡される。
  • 具体的な手順は、セッションオブジェクトを生成し、値をセットした後、リクエストオブジェクトにセッションオブジェクトをセットし、リクエストのフォワードを行うことで次の画面にセッションオブジェクトを渡すことができる。

質問者が選んだベストアンサー

  • ベストアンサー
noname#94983
noname#94983
回答No.1

根本的に勘違いをしているような気がする。セッションは、「サーバーの中に保管されている」ということを忘れてはいけない。サーバーというのは、まぁつまりサーブレットコンテナ(Tomcatとか)のこと。 セッションに値を保管すると、サーバーの中に「このセッションIDのクライアントが保管した値」という感じで値が保管される。サーバーにはたくさんのクライアントがアクセスしているわけで、サーバーの中には、それぞれのクライアントのセッションIDをつけた値がたくさん保管されている。 クライアントがサーバーにアクセスすると、サーバーはそのクライアントから送られてきたセッションIDをチェックし、そのセッションIDの値を「このクライアントが保管した値」として認識する。つまり、セッションIDが保管されている限り、(それを利用しているかどうかに関係なく)セッションの値はサーバーに保管され続けている。 セッションは一定時間アクセスがないと自動的に消えるようになっている。あるいは明示的にセッションを切断することもある。サーバー内では、アクセスがないセッションIDの値をチェックし、「これはもう切断された」と判断されたセッションの値は自動的に消去される。

Guno-this
質問者

お礼

どうもありがとうございます。 セッションは「サーバーの中に保管されている」のですね。 すみません、根本的に間違っていましたね^^; おかげさまで随分とモヤモヤが晴れてきました(汗) session.setAttribute("キー",格納したい値"); で、サーバーの中に「このセッションIDのクライアントが保管した値」という感じで値が保管されている、のですね。 >あるいは明示的にセッションを切断することもある。 こちらのお話を聞いて思ったのですが 例えば  ある会員登録システムで、  会員の登録処理が完結した場合、  登録処理が完結してしまえば、  会員登録用として溜め込んでいたデータは不要であるため、  セッションを切断する。 というような状況が考えられますでしょうか?

関連するQ&A

専門家に質問してみよう