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

日付けのメソッド その2

以前、時刻を扱うエントリーではCalendarクラスとDateクラスを使いましたが、Java8で標準になったTimeAPIについて調べてみます。 Contents1 現在時刻の出力2 任意時間の出力3 …

no image

JSPでのカスタムタグ

前回のインク―ドですが、文字列以上の情報を渡すことはできませんでした。 いろいろ調べたり、上司に聞いてみるとカスタムタグという独自のタグを作る機能があるとのことでさっそく調査。 Contents1 カ …

no image

Glassfishの暴走に関して

JavaEEのアプリケーションサーバーではglassfishを使っているんですが、 メモリをかなり食うのと、頻繁に暴走してIDEからの処理を一切受け付けなくなることが多いです。 まだまだ全然対処法がわ …

no image

JavaEEでリダイレクトを伴うデータ入出力(flashの活用)

JavaEEで何らかの処理を行い、リダイレクトさせる場合、リダイレクト前のデータを保存し、リダイレクト後のページにデータをもちこしたいときなどがあると思います。 オブジェクトの変数自体はスコープアノテ …

no image

依存ライブラリを含むプログラムのjar化に関して

以前、jar化する場合のpomの記述方法について書いたのですが、一部記述が正しくなかったようです。 mavenでのjarファイル作成 この方法でやってもjarファイルを単独で取り出すとNoClassD …