JSPの基礎知識 |
|
サーブレットでは、HttpSessionインターフェイスを使ってセッション管理を行うことができますが、JSPでもセッションに関する設定を行うことができます。
JSPの<%@ page %>タグにはsessionという属性があり、この属性にtrue/falseを指定することで、セッションに関する設定を行います。
■セッションの使用を宣言する
<%@ page session="true" %>
このJSPタグでセッションを使用することを宣言します。もし、サーブレットやほかのページですでに開始されているセッションがあれば、そのセッションオブジェクトを使用します。セッションがまだ開始されていなければ、ここで新たに開始し、セッションオブジェクトも作成します。
※session属性の指定を省略すると、session="true"が設定されたものと見なされます。
■セッションを使用しないことを宣言する
<%@ page session="false" %>
このJSPタグでセッションを使用しないことを宣言します。この指定がある場合に、JSP内でセッションの操作を行うコードを記述すると、コンパイル時にエラーになります。当然、セッションが開始されていない場合に、新たに開始する必要はありません。
逆に、この指定があったしても、継続しているセッションが切断されてしまうということもありません。あくまで、このページ内ではセッションを「使用しない」ということを宣言しているだけだからです。
■session属性の使い分け
これら2つのパターンは、どのように使い分ければいいのでしょうか? 2つの性質を考えれば、
- まだセッションを開始すべきでないページ=false
- セッション終了後のページ=false
- セッションは継続しているが、セッションオブジェクトを使用しないページ=false
- セッションが継続していて、セッションオブジェクトを使用するページ=true
と使い分けるのが一般的です。また、session属性を省略した場合は、trueと見なされることに注意してください。セッションについて意識せずにJSPをコーディングしたつもりでも、不必要なセッションが開始されてしまい、不具合が発生する場合がありますので注意してください。
「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に関する基礎知識を解説する。
|
|