- - PR -
Cookieの書き換え
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-21 17:26
こんにちは
Cookieの扱いに関する質問なんですが、 ウィンドウで Cookie cookie = new Cookie("name", "value"); cookie .setDomain(domain); cookie .setMaxAge(0); cookie .setPath("/"); response.addCookie(cookie); を行ってcookieの値を変更しますが、そのウィンドウが開いている間は 前のcookieの値が反映されていて値を変更されません。 ブラウザを閉じれば当然反映されてくるのですが、ブラウザを開いたままでうまく 更新する方法はありませんか? 環境(java1.4.2、tomcat4.1、apache2) よろしくお願いいたします。 | ||||
|
投稿日時: 2005-04-21 17:56
レスポンスにクッキーをセットするタイミングで、参照しているリクエストオブジェクトは、クッキーがセットされる前に来たものなので当然新しいクッキーは参照できません。[ メッセージ編集済み 編集者: インギ 編集日時 2005-04-21 18:00 ] | ||||
|
投稿日時: 2005-04-21 18:17
返信ありがとうございます。
ただ、結果としてCookieは更新できないわけですね。どうもありがとうございます。 [ メッセージ編集済み 編集者: kei111 編集日時 2005-04-21 18:19 ] | ||||
|
投稿日時: 2005-04-21 19:08
うーん、更新できない、というのが具体的にどういう認識なのかはわかりませんが、更新はできます。
ブラウザを閉じないと反映されない、ということはないはずです。 | ||||
|
投稿日時: 2005-04-22 09:01
よく読んでみると、これはブラウザの画面上(つまり、JSP)で行っていますか? もしそうだとしたら、画面上に読み込まれた段階でcookieの値は決定していると思うのですが。。。(つまり反映されるのは次のレスポンスを受け取った画面のはず。) サーブレット内でリクエストに含まれているCookieを取得して、レスポンスに新しく値を追加すれば、レスポンスが帰った時点(画面が表示された時点)でCookieは新しい値を利用しますよ。 | ||||
|
投稿日時: 2005-04-22 22:01
返信ありがとうございます。
JSPで全て行っています。 サーブレットは使用していません。 使用した方がいいと思いますが、いろいろとありますので…。 あるウィンドウ(JSP1)から別のウィンドウ(JSP2)を開いて JSP2においてDBへの更新処理を行ってリクエストなどにクッキーの値をセットしようとしていました。 ここでJSP2でリクエストにセットするとかリダイレクトするとか処理しても元々開いているウィンドウのクッキーを変更できません。JavaのCookieオブジェクトを使用していますのが、JSP2で処理後にJSP1にうまく値を渡す方法はありますか? ウィンドウ操作なども必要になってくると思いますが。 ただ、この方法自体が良くないと思っていますので現在はサーブレットで処理するようにしようと考えています。 アドバイスありがとうございました。 | ||||
|
投稿日時: 2005-04-22 23:38
「元のウィンドウのクッキーが書き換わらない」というのはどうやって確認しているので
しょうか。もしかしてJSP1というのがリロードされればいいだけではないでしょうか。 |
1