• 締切済み

セッションの維持

すいません。12日16時16分に質問した者ですがもう一度お願いします。 セッション管理についてなのですが、基本的なことをお尋ねしたく存じ申し上げます。 ソースは前回書いた通りなのですが、このloginとnameというセッション情報は以後ページが変わるごとにrequest.getSessionを書き続けなければならないのでしょうか?それともセッション情報が必要なときだけ呼び出せば、あとはリンクでページをたどっていっても維持されているものなのでしょうか?? よろしくお願いします。

みんなの回答

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

>リンクでページをたどっていっても維持されているも>のなのでしょうか?? ディスパッチやリダイレクトでしょうか? セッションが破棄されなければ  有効だと思います。

javatea_1985
質問者

補足

解答していただきありがとうございます。 ただ、リダイレクトやディスパッチ以外の方法でURLを変える場合も有効なのでしょうか?? つまりネット上などで買い物をする場合商品を選んで買い物カートのページへ飛んでもセッションが維持されないといけない訳でして。 それはできるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • セッション管理

    失礼いたします。 セッション情報の受け渡しを勉強しています。 送り手側で HttpSession ses = request.getSession(); String login = (String)ses.getAttribute("login"); String name = (String)ses.getAttribute("name"); if( !("ttttt".equals( login )) ) {  //(以下処理) 受けて側で String name = request.getParameter("user"); String pass = request.getParameter("pass"); HttpSession ses = request.getSession(); if ( name.equals("admin") && pass.equals("hoge")) { ses.setAttribute("login","ttttt"); ses.setAttribute("name",name); out.println("<h3>ログインしました。</h3>"); } とし、セッション管理を行っています。 しかし、今ひとつこの「セッション情報」と普通のパラメーターの受け渡しの違いが分かりません。どちらも文字として次ページへ送っていますので。セッションがずっと保持されるとはソースのどういう所から分かるのでしょうか?漠然とした質問ですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • セッション管理

    度々の質問で申し訳ないです…。 「セッション管理」がどうしてもよく分かりません。 書籍やWeb上でいろんな説明を読んで頭では理解したつもりなんですが 実際使う段になるとつまづいてしまいます。 そこで質問です。 html → Servlret1 → JSP1 → Servlet1 → JSP2 → JSP3 このような遷移の中でセッション管理を行いたいと思っています。 今、JSP2までは無事にセッションオブジェクトに保存されたデータを 参照することができていますが、JSP2からJSP3に移るときに nullが渡されてしまうのです。 一度、Servlet1 へ制御を戻さなければだめなのでしょうか? 具体的なコードを以下に掲載します。 よろしくお願いします。 ========= Servlet1 でセッション開始 //セッションを得る HttpSession thisSession = req.getSession(true); //セッションに保存 req.getSession(false).setAttribute("Login","true"); ========= JSP2 で受け取る /* ここではちゃんと"true"が返ってきます。 */ //セッションオブジェクトから取り出す String login = (String)request.getSession(false).getAttribute("Login"); ========= JSP3 で受け取る /* ここで null が帰ってきてしまいます。 String login = (String)request.getSession(false).getAttribute("Login");

  • セッションについて

    なんとかセッションを使えるようになってきた程度のものですが ここにきてちょっとした事が気になり質問させて下さい。 ポータルサイトをつくっており会員登録,ログイン,登録情報変更など 複数のフォームが存在します。 例えば・・・ ログイン時のセッション $_SESSION['login_id'],$_SESSION['login_pass'] 会員登録時のセッション $_SESSION['touroku_id'],$_SESSION['touroku_pass']など10程度 会員登録情報変更時のセッション $_SESSION['henkou_name'],$_SESSION['henkou_mail']など10程度 ・・・のような感じです。 全てセッションで管理していることが問題なのかもしれませんが いろんなページ(フォーム)をまわる度に多数のセッションを持っている 状態となってしまいます。 現状は、それぞれのページで必要のないセッションについては1つづつ unsetで明記し消去しているのですが多数あるのでどうも手間に感じて しまいます。 session_destroyで一括消去できれば楽なのですがログインしている 場合に必須なセッションもありそれもできない状態です。 この場合皆様はどのように管理をしているのでしょうか? 調べてみたのですが有力な情報もみつからず今後の参考になればと思い 質問させて頂きました。宜しくお願いします。

    • ベストアンサー
    • PHP
  • セッション

    セッションについて教えて下さい。 指定のID、パスワードでログインしようと思っています。 ソースを記載しますので、お教え下さい。 ID:aaa パスワード:111とします。 [送り側フォーム] <form action="/test2.asp" method="POST" id=form1 name=form1> <input type="text" name="id" value=""><br> <input type="password" name="passwd" value=""> <input type="submit" value="LOGIN" id=submit1 name=submit1> </form> とし、 [受け取り側、認証 test2.asp ] <% If Session("user_test") <> "1" Then Response.Redirect "/test.asp" Response.End() End If %>ここで認証を判断し、認証できなければtest.aspへもどるとし、 Dim id, passwd id = Request.Form("id") passwd = Request.Form("passwd") Session("user_login") = "id" Session("user_login") = "passwd" IF id = "aaa" and passwd = "111" THEN Session("user_test") = 1 Response.Write ("OK") ELSE Response.Write ("ちがうよ") END IF %> ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。 どこがわるいか、お教え下さい。 ※以前にも似たような質問をしているのですが、改善されずお手上げです。

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

  • Servlet-JSP のセッション管理

    すいません。 セッションというものを使ってみたいなと思い、 本などを、見よう見真似で下のようなものを作ってみましたが、 まったく動きません。どこがいけませんか? ーーservlet-ー HttpSession session = req.getSession(); if (session.isNew()) {  session.setAttribute("test","ssm3u"); } ーーforwardされるJSP-ー <% HttpSession session = request.getSession(); %> <%= (String)session.getAttribute("test"); %> "ssm3u"と出したいのですが、全然違うのでしょうか? 自分ではCookieを利用するセッション管理を作ったつもりです・・

    • ベストアンサー
    • Java
  • struts2でのフィルターを使ったセッション管理

    はじめまして。 struts2,spring frameworkでソフトを作ってますが、セッション管理について質問があります。 1.ログイン画面で、ログイン後にセッションidを登録する。 session.setAttribute (USER_HANDLE, user); 2.他の画面に移動する時に、セッションid(user)が格納されているか確認する。格納されていない場合は、ログイン画面に戻る。 という処理をする場合、actionごとに HttpSession session = request.getSession (true); Object user = session.getAttribute (USER_HANDLE); if (user != null) { //処理1 return true; } else { //処理2 return false; } と記述すると手間がかかるので、下記の様なFilterでまとめて管理できないかと考えているのですが、こういう考え方は一般的なのでしょうか? public class TestAccessFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); HttpSession session = request.getSession (true); Object user = session.getAttribute (USER_HANDLE); if (user == null) { //処理1 return "login-success"; } else { //処理2 return "login"; } } actionごとにセッションidが格納されているか確認する代わりに、Filterでまとめて確認できないかということなのですが.... struts2でこういう書き方をして良いのかわからず困っています。 アドバイスをお願いいたします。

    • ベストアンサー
    • Java
  • リダイレクトループの原因をは?SESSION?

    フレーム3つ程分けて、SESSIONを使ったメンバーページを作成しています。 今の状況なのですが、 メニューフレームのリンクを押して、メインのフレームを切り替えるのは問題ないのですが、 ブラウザの更新またはF5で更新すると、メニューフレームがループします。 すみません、情報が少ないのですが、 メニューおよびメインページにsession.phpを外部ファイルとして利用して、います。 原因を見つけたいのですが、なかなか特定できず、 どのような箇所を注意して見ればよいか、お教えいただき、ご質問させていただきました。 何卒宜しくお願い致します。 参考になるのかわからないのですが、 session.phpファイルの内容をすべて下記に記載させていただいております。 <?php session_start(); if( $_SESSION["login_id"] == "" ){ $login_url = "http://{$_SERVER["HTTP_HOST"]}/member/"; header("Location: {$login_url}"); exit; }else{ $UserName = $_SESSION["name"]; $LoginId = $_SESSION["login_id"]; $No = $_SESSION["no"]; $url = $_SESSION["url"]; $Pass = $_SESSION["pass"]; }

    • ベストアンサー
    • PHP
  • セキュリティーを確保したセッション管理

    現在、javaにて開発を計画中です。 作成するアプリケーションは、 ログイン画面 ↓ ユーザ、パスワード入力 ↓ 認証(データベースに登録された内容チェック) ↓ ユーザごとに許可されたページへの遷移 といった流れを想定しています。 セッション管理を行なう上で、 Javaでは、「HttpSession」を利用して、   // セッション開始   HttpSession session = request.getSession(true);   // セッションに情報を設定   session.setAttribute("USER_ID" , xxxx);   session.setAttribute("PASSWORD" ,yyyy); といった情報をセッションに保存し、ページ移動時にチェック する事を考えました。 あとCookieを利用する方法も考えましたが、CookieにID、passwordを保存することは セキュリティー上問題あると思います。 セッション管理について説明しているページには、Cookieには、セッションIDを保存し・・・とった 記述があるのをよくみます。 セキュリティー上、Cookieを利用する意味もよく分かっていません。 みなさんは、どのようにセッション管理をされているのか教えてください。 出来るだけセキュリティーを確保したいと思っています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • セッションについて

    PHP初心者です。 今、セッションについて勉強しています。 名前を入力してログインすると次のページに名前が表示するようにしたいのですが、表示されません。どうしたらよいでしょうか? ソース(ログインページ) <? session_start();// セッション管理の開始 session_register("namae1");//現在のセッションに1つ以上の変数を登録する ?> <? header("Content-type: text/html;charset=EUC_JP"); ?> <html><head><title>ログイン</title></head> <form action="sessiontop.php" method="post"> 名前: <input type="text" name="namae"><br><br> <input type="submit" value="ログイン"> </form> </body></html> ソース(名前が表示されるページ) <? session_start();// セッション管理の開始 header("Content-type: text/html;charset=EUC_JP"); //ディレクトリー内に入っているHTMLファイルは全てEUC-JPですという命令がブラウザに送信される。 ?> <html> <head> <title>セッションメインページ</title></head> <? $name = $_POST["namae"]; $_SESSION["s_name"]=$name; ?> <?= $s_name ?>さんこんにちわ<br><br> <a href="session3.php">ログイン画面に戻る</a><br> </body></html> よろしくお願いします。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • プリンターの正面の蓋が閉まらない問題について解決方法をご紹介します
  • 蓋がしまらなくなったプリンターを修理せずに閉める方法をご紹介します
  • プリンターの蓋が閉まらないトラブルの対処方法について解説します
回答を見る