プロが教えるわが家の防犯対策術!

こんにちは。

現在JAVAの勉強をしているのですが、配列変数をセッションに
入れました時の、各配列番号セッションごとのクリアの方法は、
どのようにすれば良いのでしょうか。

ネットや参考書をみまして、普通にセッションのクリアをいたします
時には、
HttpSession ses = request.getSession();
ses.removeAttribute("abc");
の形でクリアが出来ました。

けれども変数が配列になっていますと、この方法で、クリアが行えませ
ずに、考えております。

また、自分なりに「ses.removeAttribute("abc[1]");」などと記述をい
たしましてもクリアが行えませんでした。

どのような記述方法でクリアが行えるのでしょうか。
よろしくお願いいたします。

A 回答 (3件)

配列のある添え字だけの値をクリアする場合には、一旦セッションから配列を取得してクリアします。



具体的には、
HttpSession ses = request.getSession();
String[] abc = ses.getAttribute("abc");
abc[1] = null;

セッションから配列自体をクリアするには、
ses.removeAttribute("abc");
でいいです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
お返事に感謝をしています。
そのように記述をすれば良かったのですね。

ただ、同一ページファイルでは、可能だったのですが、あるページファ
イルで、設定をしました配列セッションを、他のページで呼び出す事が
出来ましても、クリアをする事ができなくて、まだ考えています。

これが、普通のセッションでしたら他のページでも、クリアが出来たの
ですが、どのような事が問題なのでしょうか。

お礼日時:2007/04/27 19:51

// ----- セット側 ----- //


HttpSession ses = request.getSession();
String[] strs = new String[3]; // ← 配列変数
ses.setAttribute("abc", strs); // ← でabcという名称でセッションにセット

// ----- クリア側 ----- //
HttpSession ses = request.getSession();
ses.removeAttribute("abc"); // ← でabcという名称でセッションに格納されている情報をクリア

普通にできると思いますが?
    • good
    • 0
この回答へのお礼

ありがとうございました。
お返事に感謝をしています。

ただ、同一ページファイルでは、可能だったのですが、あるページファ
イルで、設定をしました配列セッションを、他のページで呼び出す事が
出来ましても、クリアをする事ができなくて、まだ考えています。

これが、普通のセッションでしたら他のページでも、クリアが出来たの
ですが、どのような事が問題なのでしょうか。

お礼日時:2007/04/27 19:53

それなりの経験者です。


「ses.removeAttribute("abc[1]");」ではなくて
「ses.removeAttribute(abc[1]);」ではどうでしょうか?
私の見当違いであればお詫びします。
以下のサイトをお知らせします。
http://www.jajakarta.org/tomcat/servletapi/servl …

参考URL:http://www.jajakarta.org/tomcat/servletapi/servl …
    • good
    • 0
この回答へのお礼

ありがとうございました。
お返事に感謝をしています。

お礼日時:2007/04/27 19:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!