Java HttpSessionを使って、ユーザー情報を残す




セッションの用例w

  1. ギターのAさんとベースのBさんがセッションする。
  2. 次のセッションで、Cさんが講演するんだってー。
  3. お客さんのDさんと〇〇の件でセッション(打ち合わせ)してきます。
  4. Eさんがログインしたら、会員IDをセッションに残しとこう。

・・・今回は、4番目の話(だけ)です。

ちなみに、個人的には、3番目は使いません(; ・`д・´)
意味がわからんので、素直に「打ち合わせ」とか、「みーてぃんぐ」とかにしてほしいw
セッションは用法・用量を守って正しくお使いください。

HttpSessionを使って、ユーザー情報を残すサンプル

アクセスカウンター代わりに、ブラウザでアクセスする度に、カウントアップしてみます。
カウントした数値は、セッション(HttpSession)に保管しておきます。

実行結果

ブラウザで更新を押すたびに、カウントアップしていきます。

最初は、こんな感じ。

更新を押すと、こんな感じ。

サンプルの解説

HttpSessionを使うと、ブラウザ側にクッキーを残します。
クッキーの中には、ユーザーを識別するためのセッションIDが記録されます。
※ブラウザ側に値が記録されるわけではありません。

クッキーは、サイトへアクセスする際にブラウザが一緒に送ってくれるため、サーバー側でクッキーのセッションIDをもとに、覚えておいたセッション情報を取り出すことができるようになります。
ですが、このあたりはとくに意識しなくても、アプリケーションサーバー(Tomcatなど)が勝手にやってくれますので、セッション(HttpSession)から拾ってくるだけでOKです。

また、アプリケーションサーバーによりますが、多くの場合、デフォルトで時間制限がついてます。
時間制限を超えると、セッションに覚えていた情報へアクセスができなくなりますので、気を付けましょう。

・・・というわけで、これらを踏まえると、このサンプルでは次のようなことが起こります。

  • ほかの人が見ると、カウントは1からはじまる。
  • ブラウザを閉じて、もう一度開くと、1に戻る。
  • しばらく放っておいてから見てみると、1に戻る。

HttpSessionのユーザー情報をクリアするには?

セッション情報の無効化(クリア)する方法は、こちらを見てください。

Java HttpSessionのユーザー情報をクリアする

2020.03.17