• 締切済み

配列セッションのクリア方法

こんにちは。 現在JAVAの勉強をしているのですが、配列変数をセッションに 入れました時の、各配列番号セッションごとのクリアの方法は、 どのようにすれば良いのでしょうか。 ネットや参考書をみまして、普通にセッションのクリアをいたします 時には、 HttpSession ses = request.getSession(); ses.removeAttribute("abc"); の形でクリアが出来ました。 けれども変数が配列になっていますと、この方法で、クリアが行えませ ずに、考えております。 また、自分なりに「ses.removeAttribute("abc[1]");」などと記述をい たしましてもクリアが行えませんでした。 どのような記述方法でクリアが行えるのでしょうか。 よろしくお願いいたします。

みんなの回答

noname#30536
noname#30536
回答No.3

配列のある添え字だけの値をクリアする場合には、一旦セッションから配列を取得してクリアします。 具体的には、 HttpSession ses = request.getSession(); String[] abc = ses.getAttribute("abc"); abc[1] = null; セッションから配列自体をクリアするには、 ses.removeAttribute("abc"); でいいです。

jsg100
質問者

お礼

ありがとうございました。 お返事に感謝をしています。 そのように記述をすれば良かったのですね。 ただ、同一ページファイルでは、可能だったのですが、あるページファ イルで、設定をしました配列セッションを、他のページで呼び出す事が 出来ましても、クリアをする事ができなくて、まだ考えています。 これが、普通のセッションでしたら他のページでも、クリアが出来たの ですが、どのような事が問題なのでしょうか。

すると、全ての回答が全文表示されます。
noname#33813
noname#33813
回答No.2

// ----- セット側 ----- // HttpSession ses = request.getSession(); String[] strs = new String[3]; // ← 配列変数 ses.setAttribute("abc", strs); // ← でabcという名称でセッションにセット // ----- クリア側 ----- // HttpSession ses = request.getSession(); ses.removeAttribute("abc"); // ← でabcという名称でセッションに格納されている情報をクリア 普通にできると思いますが?

jsg100
質問者

お礼

ありがとうございました。 お返事に感謝をしています。 ただ、同一ページファイルでは、可能だったのですが、あるページファ イルで、設定をしました配列セッションを、他のページで呼び出す事が 出来ましても、クリアをする事ができなくて、まだ考えています。 これが、普通のセッションでしたら他のページでも、クリアが出来たの ですが、どのような事が問題なのでしょうか。

すると、全ての回答が全文表示されます。
  • WildBoar
  • ベストアンサー率63% (7/11)
回答No.1

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

参考URL:
http://www.jajakarta.org/tomcat/servletapi/servletapi-4.0/docs-ja/
jsg100
質問者

お礼

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

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

関連するQ&A