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

arquillianでの外部ライブラリ使用

現状、実務ではDBのテストでは基本的にarquillianを使っています。 arquillianとにかく、重いですね~。 まあglassfishを動かしているので仕方ないかもしれませんが、簡単なテスト …

no image

テストコードの実装

以前、テストコードの大切さを力説しましたが、実際に書いてみると作業の安心度が全く違います。 やはりメソッド単位での確認やデバッグができるのは非常にありがたいです。また時間がたってもテストコードを見るこ …

no image

入出力操作

Javaの出力処理について書きます。 下記リンクが非常に詳しかったので、これをもとにまとめてみたんですが、咀嚼できてないっぽい・・・・ もう1~2度修正がひつようかも。 Contents1 Javaの …

no image

JSPでのインクルード

JSPで社内アプリを作る機会があったので、メモ。 基本的なこともまだわかっていないんですが、とりあえずでてきたものから紹介してきます。 インクルードから。 ヘッダー、フッターみたいな別々に分けたりする …

アーカイブ