サーブレットの基礎知識 |
|
サーブレット(Servlet)におけるセッション管理を実現するには、HttpSessionを使用します。Cookieを使用してクライアント固有の情報をクライアント側に保持させるのとは違い、HttpSessionはサーバ側にクライアント固有の情報を保持します。HttpSessionの中には、任意のキーワードに結び付けてオブジェクトを格納することができます。例えば、USER_INFOというキーワードに対して、UserInfoクラスのインスタンスを格納し、SHOPPING_CARTというキーワードに対して、ShoppingCartクラスのインスタンスを格納することができます。逆に、USER_INFOというキーワードを指定して、格納されているオブジェクト(UserInfoクラスのインスタンス)を取り出すこともできます。
![]() |
上図は、ログイン処理を行い、商品を購入するようなHTTPのやりとりにおいて、クライアント固有の情報をHttpSessionに保管する場合の例です。まず、クライアントからサーバにログイン要求があり、それに対してサーバがHttpSessionを新規に作成します。このとき作成されたHttpSessionには、SessionIDというユニークな文字列ができ、サーバはこのSessionIDをCookieとしてクライアントに送信します。次に、クライアントからサーバにアクセスするときには、先ほどサーバから送信されたCookie(SessionID=ABCXYZ123)が付加されます。これにより、サーバは特定のHttpSession(SessionID=ABCXYZ123)を取り出し、クライアント固有の処理を続けることができます。
このように、HttpSessionによるセッション管理を利用する利点は、クライアント固有の情報がサーバ側に格納されているため、より安全性が高い点です。また、Cookieが文字列情報しか格納できないのに対して、HttpSessionの場合は任意のオブジェクトが格納できることも利点です。
![]() |
「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コーディング時代に必要なプログラミング脳を強化しよう
- OutOfMemoryError発生! その解決への近道とは
- “Hello World”が3行で収まる、Oracleが「Java 24」を提供開始
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- PlayStation Network開発チームは「増え続けるスクラムチームの管理問題」をどう解決したのか
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか
- Javaエンジニアがうんざりする「ランタイムエラー」5大原因はこれだ
- Springにおける「RestController」と「Controller」の違いとは
- 「Spring」「Spring Boot」「Spring Framework」、それぞれの特徴とは