- PR -

階層が違う場所でのクッキーのやりとり

1
投稿者投稿内容
ヒロシマケン
会議室デビュー日: 2005/05/13
投稿数: 10
投稿日時: 2005-09-22 20:47
階層が違う所でクッキーの操作をやりたいのですが、うまくいきません(取得できるクッキーの名前がJSESSIONIDのみです)。ちなみにクッキーの使用はリンク先とほぼ同じにしてあります。http://www.atmarkit.co.jp/fjava/rensai/jsp08/jsp08.html

(例)
hoge.com/write/write_cookie.jspでクッキーを書き、hoge.com/read_cookie.jspを読む。

write_cookie.jspとread_cookie.jspが同じフォルダにある場合ならうまくいくのです。クッキーやJSPの使用で不可能なのでしょうか?対応策を模索しています。YESなら対応策を、NOならば理由を説明していただけませんか?よろしくお願いします。
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2005-09-22 21:16
jsp門外漢なので、的外れだったらごめんなさい。

階層が異なる場所でのクッキーのやり取りに関して、
cookieの仕様(ですよね?)でダメってことはないです。

jsp門外漢なので、もしかしたらおかしなこといってるかもしれませんが、
ヒロシマケンさんも参照されている@ITの記事をみて私見ですが、
Set-Cookie HTTP 応答ヘッダーのpathに適切な値をセットしていないのではないでしょうか?

明示的にセットしていなければ、Set-Cookie HTTP 応答ヘッダーを送信しているURLの階層がセットされるので、それより上の階層で読めないだけではないでしょうか?

setPath(java.lang.String uri)
このメソッドがpathをセットするもののようなので、これでpathを明示的にセットしたらどうなりますか?

example.com/以下で取得できるようにしたいのであれば、
setDomain(java.lang.String pattern)メソッドで、example.comを、
setPath(java.lang.String uri)メソッドで、/を指定すれば、
ご希望のようになるのではないかなと思いました。


PerlやJavaScriptではcookie扱ったことあるんですが、
jspはまったく知らないので、頓珍漢なことを言っていたら御容赦ください……
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-09-22 23:19
setPath でクッキーのスコープをルートレベルにすれば良いと思います。
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/Cookie.html#setPath(java.lang.String)
1

スキルアップ/キャリアアップ(JOB@IT)