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...



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

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

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

freelance hubを利用して10万件を超える案件情報からJava Spring案件を検索してみたfreelance hubは、レバテックフリーランスやフリエン(furien)を始めとした多くのフリーランスエージェントの案件をまとめて...

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

「MiniTool Partition Wizard」はパーティション分割・統合・バックアップ・チェックを直感的に行える便利ツールだったハードディスクの記憶領域を論理的に分割し、分割された個々の領域のことを、パーティションといいます。 例えば、以下の図の場合、C/D...

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

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

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

その他のソースコード内容は、以下のサイトを参照のこと。
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が保持される仕組みになっている。