セッションオブジェクトの渡し方について教えてください。
セッションオブジェクトは、どのタイミングで、次の画面にセッションオブジェクトを渡しているのでしょうか?
▼リクエストオブジェクトを次の画面に渡す場合
request.setAttribute("キー" , 格納したい値);
という風に、リクエストオブジェクトの中に値をセットできると思います。
そして、
・RequestDispatcher rd = request.getRequestDispatcher("画面遷移先URL");
・rd.foward(request, response);
これが実行されたタイミングで、requestオブジェクトに格納した情報を、次の画面に渡していると思いますが
▼セッションオブジェクトを次の画面に渡す場合
いったいどこでセッションオブジェクトを、次の画面に渡しているのでしょうか?
セッションの値の入れ方としては
session.setAttribute("キー" , 格納したい値);
という形でセッションオブジェクトに対して、値を格納しているのだとは思いますが・・・
ここでセットした値を、
どうやって、次の画面にもっていっているのでしょうか?
【不思議に感じているところ】
1.セッションオブジェクトを生成する
2.セッションオブジェクトの中に、値を格納する
3.rd.foward(request, response); で次の画面にリクエストを投げる
4.次の画面で「セッションオブジェクトは飛ばしていない筈なのに、セッションオブジェクトの中には値が格納されている」
うーん・・・
一体どこで、次の画面にセッションオブジェクトを渡しているのでしょうか?
No.1ベストアンサー
- 回答日時:
根本的に勘違いをしているような気がする。
セッションは、「サーバーの中に保管されている」ということを忘れてはいけない。サーバーというのは、まぁつまりサーブレットコンテナ(Tomcatとか)のこと。セッションに値を保管すると、サーバーの中に「このセッションIDのクライアントが保管した値」という感じで値が保管される。サーバーにはたくさんのクライアントがアクセスしているわけで、サーバーの中には、それぞれのクライアントのセッションIDをつけた値がたくさん保管されている。
クライアントがサーバーにアクセスすると、サーバーはそのクライアントから送られてきたセッションIDをチェックし、そのセッションIDの値を「このクライアントが保管した値」として認識する。つまり、セッションIDが保管されている限り、(それを利用しているかどうかに関係なく)セッションの値はサーバーに保管され続けている。
セッションは一定時間アクセスがないと自動的に消えるようになっている。あるいは明示的にセッションを切断することもある。サーバー内では、アクセスがないセッションIDの値をチェックし、「これはもう切断された」と判断されたセッションの値は自動的に消去される。
どうもありがとうございます。
セッションは「サーバーの中に保管されている」のですね。
すみません、根本的に間違っていましたね^^;
おかげさまで随分とモヤモヤが晴れてきました(汗)
session.setAttribute("キー",格納したい値");
で、サーバーの中に「このセッションIDのクライアントが保管した値」という感じで値が保管されている、のですね。
>あるいは明示的にセッションを切断することもある。
こちらのお話を聞いて思ったのですが
例えば
ある会員登録システムで、
会員の登録処理が完結した場合、
登録処理が完結してしまえば、
会員登録用として溜め込んでいたデータは不要であるため、
セッションを切断する。
というような状況が考えられますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HttpSessionListenerクラスに関...
-
JSPでsession変数が勝手に書き...
-
struts2でのフィルターを使った...
-
ASP.NETのGlobal.asaxについて
-
sessionスコープとapplication...
-
javascriptでセッションを取得
-
セッションタイムアウトの設定...
-
aタグによる複数リンクを別セッ...
-
javascriptでセッションの削除...
-
Tomcatでの同一セッション同時...
-
画面遷移でセッション切れにな...
-
三菱GOTの画面切り替えについて
-
ボタンが活性化の場合とは、ボ...
-
VBAでTIFF画像を読み込むには?
-
JSPからJSPへ情報を渡せる?
-
リクエストに応じたselectedの...
-
NetworkStreamからのRead()で、...
-
strutsで、JSP→アクションクラ...
-
SqlServerのトランザクションに...
-
フォーム上で押されたボタンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グローバルIPアドレスの変更タ...
-
javascriptでセッションを取得
-
JSPでsession変数が勝手に書き...
-
ASP.NETのGlobal.asaxについて
-
セッションタイムアウトの設定...
-
セッションの情報の消去について
-
jsessionidの有効期限を延長す...
-
エラーページ遷移後に入力値を残す
-
Strutsのページングにてoffset...
-
画面遷移でセッション切れにな...
-
setAttribute getAttribute 配...
-
JSPで、sessionのタイムアウト...
-
セッションタイムアウト時にエ...
-
JSP + ラジオボタン
-
javascriptでセッションの削除...
-
sessionスコープとapplication...
-
フレームを使用した際のセッシ...
-
Tomcatでの同一セッション同時...
-
ASP Session変数名の取得
-
VB.net(ASP.net)でアクセスカ...
おすすめ情報