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

JPAでのリレーション(アノテーション使用)

JPAでリレーションを管理するとき、最初はアノテーションでやろうとしたんですが、結局やり方がわからずコンストラクタ式をかいて対処してました。 JPAでのリレーションに関して 外部キー制約があるやり方は …

no image

JSFでのjQuery

JSFでのjQueryの取得 以前、Seleniumに関連したエントリーを書いたときにJSFではidが親要素を伴うと書きました。 例えば <form id=”form1″ …

no image

リファクタリング

業務で大幅なリファクタリングをする機会があり、その際の注意だったり、気をつけるべきことなどをまとめておきます。 自分用なので自分にしかわからない言葉で書いてある可能性が大きいです。 気になる方は問い合 …

no image

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

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

no image

pretty-configでのファイルアップロード

先日、こちらのエントリーでpretty-configを使うとファイルのアップロードができない、というエラーが起こっていたのですが、本日社長により解決していただきました。 原因としてはURLがスラッシュ …