skillup

技術ブログ

Java

サーブレットのスコープ

投稿日:

JavaEEではスコープアノテーションによって変数のスコープを使い分けられたのですが、サーブレットの場合はプログラムの中で使い分けます。

通常はページ、リクエストとセッション、アプリケーションぐらいでしょうか。ちょっとスコープについて整理しておきましょう。

スコープの範囲

ページ

そのページ単体だけで使われるスコープ。ほかのページとの共有の必要がない場合のみ使われる。最もスコープが狭い。

<c:set>タグなどで設定できる

リクエスト

現在のページと現在のページからフォワード、インクルードされる中で有効。

リダイレクトされると消える。

セッション

セッションの範囲内でBeansを保持する。ユーザーが現在のアプリケーションを保持する間中有効。

わかりやすい例としては買い物かごなど。

アプリケーション

現在のアプリケーションでアクセスしている全ユーザーが共有できる最も広範囲のスコープ

スコープへの変数の格納方法

ページはjsp内のみで有効です。まだ使ったことないんですが(汗)

リクエスト、セッション、アプリケーションについては下記のようにセットしたり、取り出したりします。

残念ながらJSFでよく使うFlashはないようです。便利だったのになぁ・・・

参考リンク

http://www.javaroad.jp/servletjsp/sj_jsp8.htm

http://www.javaroad.jp/servletjsp/sj_servlet4.htm

また上記のスコープの記述に関しては

独習Javaサーバサイド第2版を参考にしました。

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Mapの使い方

Javaに限らずプログラミングで最も大切になるのは配列の処理でしょう。 Javaですと、PHPのような連想配列の代わりにMapを使用します。 Contents1 Mapとは?1.1 Mapのインスタン …

no image

instanceofとgetClassについて

Javaでの型の判定などに使われるinstance ofとgetClassについてメモしたいと思います。 Contents1 instance of2 getClass instance of A i …

no image

JPAでのリレーションに関して

JPAではテーブルをクラスで定義します。もちろん例外とかはいろいろあるのですが、1テーブル1クラスというつくりで、これをエンティティと呼びます。 もともとクラスを作ってからDBを作成したり、JTAの規 …

no image

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …

no image

Fileオブジェクトの操作

業務でテキストファイルを読み込んで、別形式に変換して出力みたいなアプリを作ったときにファイルオブジェクトについていろいろ調べたんでまとめておきます。 Contents1 ファイルオブジェクトとは?2 …