プロが教えるわが家の防犯対策術!

こんばんは。
『sessionスコープはPCごと』に関しての質問なのですが、
(http://www.atmarkit.co.jp/fjava/rensai3/tomcat09 …から抜粋)
ログイン後、ユーザ名をsessionに保持し、どの画面に遷移してもユーザ名が表示されるシステムで、
同一PCの2つのブラウザから別ユーザでログインしても、きちんとユーザ名が識別できその後も識別したまま操作できます。
なぜ、このような現象が起こるのでしょうか?
私は、『1PC = 1Session』なら後からログインしたユーザ名でsessionデータが上書きされると思っていました。
req.getSession().setAttribute("userName", form.getUser());
このソースは、sessionIDで識別し取得したsessionスコープにform.getUser()をuserNameという名前でバインドする。という感じですよね?
『1ブラウザ = 1session』なのでしょうか?
※1ブラウザとは子画面も含みます。以下↓
yahooなどでリンクを押して別画面に派生する場合は、別ブラウザが立ち上がってもログイン名が出るので、同一sessionだなと思います。
間違っていますか?

A 回答 (1件)

厳密にはセッション管理の実装方法によります。


おそらくご質問者様はセッションCookieの仕組みを使っていると推測します。
※CookieにセッションIDを持つ方法です

この場合、1プロセス単位に決まります。
プロセスが何かといいますと、タスクマネージャのプロセスタブに表示されているexeと思っていただいて構いません。

で、例えばIEですと、IEのアイコンをダブルクリックして2個ブラウザを起動したとすると、これは別のプロセスになります。
しかし、リンク等で別画面を開いた場合は同一プロセスになります。
したがって、同じプロセスであるから同じセッションであるということです。

この回答への補足

こんばんは。ご回答ありがとうございます☆
とても分かりやすくて理解できましたm(_ _)m
スッキリしました☆

そこで、また質問なのですが、
>>厳密にはセッション管理の実装方法によります。
Cookie保持とURL埋め込みで違うと言うことですか?
キーワードでいいので、他の実装方法を教えてください。
他の実装方法ならば、『1PC = 1Session』と考えていいのですか?

ご回答よろしくお願い致します。

補足日時:2007/12/04 23:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!