• 締切済み

Sessionについて

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を記述するときは、なにか それぞれオブジェクトが必要なんでしょうか?? よくわかってないです。 ・・・・すみません。よく意味がわかってないので 質問内容も中途半端だと思うのですが、 セッション管理について教えてください。

みんなの回答

  • freshjive
  • ベストアンサー率43% (14/32)
回答No.2

※セッションの開始と終了について。 基本的にはログインした際にセッションを開始し、途中ではセッションを開始しない。ログオフするときにセッションを閉じる。という流れだと思います。ただ、ブラウザを使用するので、ボタンを押せばログオフするような仕組みにしてもかならずしもそのボタンを押してもらえるとは限りません。そこで、ある一定時間アクセスがない場合にはセッションを破棄するように設定しましょう。 ご質問のケースでは、最初の画面でsubmitされた際に、そのリクエストを受け取るServletでセッションを開始すればいいと思います。 ※画面遷移の話 画面遷移はわかりますが、それぞれの画面でどういった情報がリクエストパラメータとしてServletに引き継がれるのかがわかりませんね。 Form画面→ユーザ画面 のばあいは登録処理をおこなう。 Form画面→一覧画面→ユーザ画面 の場合は更新または削除処理を行う。 ということですか?

noname#2205
質問者

補足

回答ありがとうございます。 今一つセッションの意味合いとか分かっても 使えてない状態です。 画面遷移は、一覧→ユーザの場合に セッションでパラメータをわたしたかったんです。 フラグで新規か更新とわけて、 更新の場合は一覧で選択したユーザIDも パラメータとしてわたす、ってかんじで。 でもユーザ画面のJSPが、 ユーザ画面Beanを使って値を取得したり してたので、 一覧のServletでユーザBeanを 呼んで値をセットして その後、ユーザJSPをよんでもらう 形、流れにしました。 というわけでセッションはつかえなかったんです。 Servlet->Servletの渡し方が わからなかったので Servlet->JSPでやる方法でやりました。。

  • suigaku
  • ベストアンサー率40% (10/25)
回答No.1

ここが参考になりますよ。

参考URL:
http://www.itboost.co.jp/jserv/jserv_11.php
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"); などとやる感じですか?? ・・・うーん、結局のところ煮詰まってます。 よろしくお願いします。 また、セッションはどこで始まり、どこでおわらすのが いいのでしょうか?

noname#2205
質問者

補足

ありがとうございます。 新たな質問ですが。。。 やろうとしてることは以下です。 1.Form画面 2.ユーザ画面 3.一覧画面 があり、Form画面からユーザ画面、一覧画面それぞれに 移動できます。 また、一覧画面からユーザ画面へも移動できます。 逆はできません。 要は、ユーザ画面への入り方は、 2種類あるのです。 (1)Form画面→ユーザ画面 (2)一覧画面→ユーザ画面 (1)の場合は、ユーザ画面はクリアの状態ですが、 (2)の場合は、一覧画面で選んだ顧客ID、処理CD をもとにユーザ画面にデータを表示します。 アプレットで同じことをしていたときは、 フラグを使って、上記の(1),(2)を判別 していました。 サーブレットでは、どのように判別すれば いいのでしょうか? これを実現するのには、セッション管理の やり方が必要なのではないでしょうか? そこまでは思い付くのですが、具体的な 方法がいまいち、ぴんとこないのです。

関連するQ&A

専門家に質問してみよう