OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Sessionについて

  • すぐに回答を!
  • 質問No.125703
  • 閲覧数283
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

Session管理について以下のページを参考にしました。

http://www.atmarkit.co.jp/fjava/javafaq/session/session04.html

あるServletにおいて、(1)セッション開始後、
( HttpSession session = request.getSession(true);)

(2)セッションに値を格納・・・また、違うServletで
(3)そのセッションに格納された値を取得・・・
といったやり方が載っていました。

よく、セッション管理についてまだ分かってないところが
あるのですが、・・・
たとえば、Aサーブレットでセッションを開始し、
セッションに値を格納・・・・とします。

そのセッションに入れる値。。。というのを
「顧客ID」と「処理CD」の2つにしたい場合はどのような
記述になるのでしょうか??

参考にしたページには

//セッションに値を格納
UserInfo userInfo = new UserInfo(...);
session.setAttribute("USER_INFO", userInfo);

こんな感じで書いてるんですが、
これは、USER_INFOというキーワードでuserInfoを
値としてセットするということですよね?
顧客IDと処理CDを記述するときは、なにか
それぞれオブジェクトが必要なんでしょうか??
よくわかってないです。

・・・・すみません。よく意味がわかってないので
質問内容も中途半端だと思うのですが、
セッション管理について教えてください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 40% (10/25)

ここが参考になりますよ。 ...続きを読む
ここが参考になりますよ。
補足コメント
noname#2205

ありがとうございます。

新たな質問ですが。。。

やろうとしてることは以下です。

1.Form画面
2.ユーザ画面
3.一覧画面

があり、Form画面からユーザ画面、一覧画面それぞれに
移動できます。
また、一覧画面からユーザ画面へも移動できます。
逆はできません。
要は、ユーザ画面への入り方は、
2種類あるのです。

(1)Form画面→ユーザ画面
(2)一覧画面→ユーザ画面


(1)の場合は、ユーザ画面はクリアの状態ですが、
(2)の場合は、一覧画面で選んだ顧客ID、処理CD
をもとにユーザ画面にデータを表示します。

アプレットで同じことをしていたときは、
フラグを使って、上記の(1),(2)を判別
していました。
サーブレットでは、どのように判別すれば
いいのでしょうか?
これを実現するのには、セッション管理の
やり方が必要なのではないでしょうか?

そこまでは思い付くのですが、具体的な
方法がいまいち、ぴんとこないのです。
投稿日時 - 2001-08-28 17:48:44
お礼コメント
noname#2205

すみません。。。
補足の付け足しです。。


一覧Servletで

String kokid = request.getParameter("kokyakuid");
rdo = request.getParameter("syorichk");


//セッション開始
HttpSession session = request.getSession(true);

//セッションに値を格納
session.setAttribute("kokyaku_id", kokid);
session.setAttribute("syori", chk);


という感じで処理させます。
その後、
顧客Servletで

//セッションオブジェクトからデータ取得
HttpSession session;
if(session == null){
session = request.getSession(true);
}else{
session = request.getSession(false);
}

String kokid = (String)session.getAttribute("kokyaku_id");
String syrchk = (String)session.getAttribute("syori");

などとやる感じですか??

・・・うーん、結局のところ煮詰まってます。
よろしくお願いします。

また、セッションはどこで始まり、どこでおわらすのが
いいのでしょうか?
投稿日時 - 2001-08-28 18:13:21
  • 回答No.2
レベル8

ベストアンサー率 43% (14/32)

※セッションの開始と終了について。 基本的にはログインした際にセッションを開始し、途中ではセッションを開始しない。ログオフするときにセッションを閉じる。という流れだと思います。ただ、ブラウザを使用するので、ボタンを押せばログオフするような仕組みにしてもかならずしもそのボタンを押してもらえるとは限りません。そこで、ある一定時間アクセスがない場合にはセッションを破棄するように設定しましょう。 ご質問の ...続きを読む
※セッションの開始と終了について。
基本的にはログインした際にセッションを開始し、途中ではセッションを開始しない。ログオフするときにセッションを閉じる。という流れだと思います。ただ、ブラウザを使用するので、ボタンを押せばログオフするような仕組みにしてもかならずしもそのボタンを押してもらえるとは限りません。そこで、ある一定時間アクセスがない場合にはセッションを破棄するように設定しましょう。

ご質問のケースでは、最初の画面でsubmitされた際に、そのリクエストを受け取るServletでセッションを開始すればいいと思います。


※画面遷移の話
画面遷移はわかりますが、それぞれの画面でどういった情報がリクエストパラメータとしてServletに引き継がれるのかがわかりませんね。

Form画面→ユーザ画面 のばあいは登録処理をおこなう。
Form画面→一覧画面→ユーザ画面 の場合は更新または削除処理を行う。

ということですか?
補足コメント
noname#2205

回答ありがとうございます。

今一つセッションの意味合いとか分かっても
使えてない状態です。

画面遷移は、一覧→ユーザの場合に
セッションでパラメータをわたしたかったんです。
フラグで新規か更新とわけて、
更新の場合は一覧で選択したユーザIDも
パラメータとしてわたす、ってかんじで。

でもユーザ画面のJSPが、
ユーザ画面Beanを使って値を取得したり
してたので、
一覧のServletでユーザBeanを
呼んで値をセットして
その後、ユーザJSPをよんでもらう
形、流れにしました。
というわけでセッションはつかえなかったんです。
Servlet->Servletの渡し方が
わからなかったので
Servlet->JSPでやる方法でやりました。。
投稿日時 - 2001-09-06 11:07:32
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ