Spring Boot 基本

Spring Boot上でセッションIDを確認してみた

セッションを識別するためのIDをセッションIDといい、このセッションIDはクッキーに保存される。また、セッションIDは、別タブや別ウィンドウに新しい画面を表示した場合も、同一のセッションIDが保持される仕組みになっている。

セッションについての説明は、以下のサイトを参照のこと。
https://www.ntt.com/bizon/glossary/j-s/session.html

また、セッションIDとクッキーの関係については、以下のサイトの「Cookieを使用したセッション管理のイメージ」を参照のこと。
https://amg-solution.jp/blog/7061

今回は、セッションIDとクッキーに保存されたセッションIDを確認するようなサンプルプログラムを作成してみたので、共有する。

前提条件

下記記事の実装が完了していること。

IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみたSpring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Commun...

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加/変更したプログラムである。

初期表示画面の内容は以下の通りで、メイン画面への遷移や、新規タブ上や新規ウィンドウ上に画面を開くボタンが配置されている。

また、コントローラクラスの内容は以下の通りで、各画面遷移時に、セッションIDとCookieに設定されたセッションIDを設定するようになっている。



さらに、メイン画面の内容は、以下の通り。

また、新しいタブを開いて表示される新規タブ画面の内容は、以下の通り。

さらに、新しいウィンドウを開いて表示される新規ウィンドウ画面の内容は、以下の通り。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-sessionid/demo



サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)」とアクセスすると、以下のように、初期表示画面が表示されることが確認できるので、「セッションの追加」ボタンを押下する。
サンプルプログラムの実行結果_1

2) 以下のように、セッションIDが発番され、クッキーへのセッションIDはまだ設定されていないことが確認できる。ここで「セッションの追加」ボタンを再度押下する。
サンプルプログラムの実行結果_2

3) 以下のように、クッキーへのセッションIDも設定されたことが確認できる。ここで「メイン画面に遷移」ボタンを押下する。
サンプルプログラムの実行結果_3

4) 以下のように、前画面と同一のセッションIDが設定されていることが確認できる。ここで「戻る」ボタンを押下する。
サンプルプログラムの実行結果_4

5) 以下のように、前画面と同一のセッションIDが設定されていることが確認できる。ここで「新しいタブを開く」ボタンを押下する。
サンプルプログラムの実行結果_5

6) 以下のように、新しいタブ上に新規画面が開き、前画面と同一のセッションIDが設定されていることが確認できる。
サンプルプログラムの実行結果_6

7) 以下のように、初期表示画面で「新しいウィンドウを開く」ボタンを押下すると、新しいウィンドウ上に新規画面が開き、前画面と同一のセッションIDが設定されていることが確認できる。
サンプルプログラムの実行結果_7_1

サンプルプログラムの実行結果_7_2

要点まとめ

  • セッションを識別するためのIDをセッションIDといい、このセッションIDはクッキーに保存される。
  • セッションIDは、別タブや別ウィンドウに新しい画面を表示した場合も、同一のセッションIDが保持される仕組みになっている。