サーブレットの基礎知識 |
|
Webアプリケーションにおけるセッション管理の基本は「セッションの開始・継続・終了」で説明しました。ここでは特に、セッションの終了時に留意すべき内容について説明します。
簡単に復習すると、サーブレットでクライアントごとに固有の値を保持しておいたり、認証を受けたユーザーにのみアクセスを許可したい場合などには、HttpSessionインターフェイスによるセッション・トラッキングが必要です。
ところで、ユーザーがWebアプリケーションを利用する場合、必ず特定のページをアクセスしたり、ログイン認証を行って利用を開始することになるため、セッションが開始されないことはありません。しかし、セッションの終了においては、ユーザーが明示的にセッションを終了する操作を行わない場合がある(というより、ほとんどの場合そういった操作は行われない)ことを考慮する必要があります。つまり、ユーザーが自分に必要なサービスの利用が終了すると即座にブラウザを終了させたり、ほかのページにジャンプすることは頻繁にあります。こういった場合、サーブレット側ではセッションが終了せずに残ってしまっているのです。
![]() |
別のページへジャンプしたり、ブラウザを閉じることによってセッションの終了処理が行われない場合がある |
ですから、アプリケーションの設計において、ログアウトが必ず実行されるという前提で設計を行ってしまうと、不都合が生じることがあります。例えば、セッション開始時にユーザーにデータベース接続を1つ与え、セッション終了時にその接続を解放するというような設計の場合、セッションの終了処理が行われずに、不要なデータベース接続だけがどんどんたまっていく、というようなことも考えられます。
Webアプリケーションの設計を行う際には、「Webアプリケーションは基本的にログアウトレスだ」ということを考慮したうえで、セッション管理部分を設計していく必要があります。
もちろん、サーブレットコンテナには、あるセッションが一定時間経過してもアクセスされない場合に、自動でセッションを切断するという機能がありますので、セッション自体が切断されないまま残ってしまうということは防ぐことができます。
![]() |
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
![]() |
||
|
||
![]() |
Java Agile 記事ランキング
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- “Hello World”が3行で収まる、Oracleが「Java 24」を提供開始
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- PlayStation Network開発チームは「増え続けるスクラムチームの管理問題」をどう解決したのか
- Springにおける「RestController」と「Controller」の違いとは
- Spring BootアプリをAWSにデプロイするには?
- 「Spring」「Spring Boot」「Spring Framework」、それぞれの特徴とは
- Oracle、「Java 23」を提供開始 機能強化と変更点をおさらい