1. Top » 
  2. スポンサー広告 » 
  3. 【Java】オブジェクトのスコープとリクエストの属性の話
  4. プログラミング全般 » 
  5. Java » 
  6. 【Java】オブジェクトのスコープとリクエストの属性の話

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【Java】オブジェクトのスコープとリクエストの属性の話

サーブレットを組み合わせたりすると、そのオブジェクトがどこで使えるのか?を意識しないといけないです。
つまり変数のスコープがあるように、オブジェクトのスコープを考える必要があります。

スコープの種類

リクエスト → サーブレットの処理をJSPで利用する、など一つのリクエスト単位
セッション → ショッピングカートのような同じクライアントに対して処理をする単位
アプリケーション → 同じWebアプリケーションの単位でクライアントは異なってもいい単位

それぞれを扱うためにJavaのクラスが用意されています。

リクエスト → javax.servlet.http.HttpServletRequestインタフェイス
セッション → javax.servlet.http.HttpSessionインタフェイス
アプリケーション → javax.servlet.ServletContextインタフェイス

この三つを利用するためには、次のメソッドを使います。

Object getAttribute(String name)
引数nameで登録されたオブジェクトを取得する
void setAttribute(String name, Object value)
引数valueで指定したオブジェクトをnameという名前で登録する
void removeAttribute(String name)
引数nameで指定したオブジェクトを削除する
Enumeration getAttributeNames()
登録されている名前の一覧を返す

いずれのスコープを使うにしても、このxxxAttributeというメソッドが重要になります。
それでは実際にリクエストのスコープでオブジェクトを保存し
サーブレット→サーブレットの値受け渡しをしてみます。

hogeプロジェクト→Java Resources:src→hogeパッケージ右クリック→ServletA/ServletBを新規作成
ServletA→ServletBと移り、データを渡します。

ServletAに書く

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub
    request.setAttribute("message", "メッセージ");
    RequestDispatcher d = request.getRequestDispatcher("/ServletB");
    d.forward(request, response);
}

ServletBに書く

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String message = (String)request.getAttribute("message");
    response.setContentType("text/plain; charset=Windows-31J");
    response.getWriter().println("message = " + message);}


実行はServletA右クリック→Run As→Run on serverでした。

 

実行結果は次のようになります。

j2ee_09_01 



このように、ちゃんとデータをattributeを使って登録して呼び出せました。


category of Java:
【Java】サーブレット/JSPを書く勉強をするための環境について知っていること(一回目)
【Java】サーブレット/JSPを書く勉強をするための環境について知っていること(二回目)
【Java】開発環境を活用してサーブレットを書く。
【Java】サーブレットの基本的な話をする
【Java】JSPの話へと移る
【Java】JSPからサーブレットを呼び出す
【Java】パラメータを渡す
【Java】複数のサーブレットを組み合わせるための画面遷移の話
関連記事
スポンサーサイト

Comment

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

  • - [#] |
  • |
  • 2013 02/14 (Thu) 18:00
コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/561-75232924 この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。