- PR -

URLに jsessionid をつけるときの認識エラー

投稿者投稿内容
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2003-03-28 10:50
お世話になっております。

サーブレットで開発しています。
セッションに名前をつけて継続させるためにjsessionidを使っているのですが
URLの後ろに ;jsessionid= をつけると
その記述部分もクラス名の一部と認識されてしまい
404ファイル未検出エラーが発生する事象に悩まされています。

調査しているのですが解決策が見つかりません。
ご教授のほどよろしくお願いします。
環境は apache 1.3.27、tomcat 3.2.4 です。
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2003-03-28 10:56
Tomcat 4.0.x または 4.1.x だとどうなりますか?
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2003-03-28 11:01
残念ながら 4.* の環境はないのですが
apache 1.3.26、tomcat 3.2.3 では問題の事象は起こりません。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-03-28 13:40
「&jsessionid=〜」じゃないのかなと思ったりして。
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2003-03-28 14:00
ご回答ありがとうございます。
"&"でも試してみたのですが解決しませんでした。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-03-28 19:07
すみません・・・
ひとこと突っ込みで間違えた。

「?jsessionid=〜」ではないかと。

何を言っているのかというと、";"はクエリ文字列の区切り文字ではないので
うまくいったとしてもコンテナ依存ではないですかというつもりだったのでした。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-03-29 00:43
URL RewritingでセッションIDを付け加える文字は
; なはずです。
SUNの研修テキストにも書いています。
?にするとパラメータになってしまいます。

SUNのテキストには
クラス名orJSPファイル名のあとに
;jsessionid=XXXとし
それをresponse.encodeURL()にてURLエンコードし
受け取ったサーブレットにてgetSession()すればよい
だけ書いていますね。
(http://localhost/test.jsp;jsessionid=XXX)
サーブレット、JSPのバージョンによるものなら
TOMCATのアップグレードしなければいけないかもしれませんね。

ご参考まで〜
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2003-03-29 11:54
ご回答ありがとうございます。
response.encodeURL()、response.encodeRedirectURL()とも試してみましたが
解決しません。

apacheの設定ファイル(httpd.conf?)に;jsessionの記述に関する設定があるらしいのですが
はっきりしません。
何かあったらお願いします。

[ メッセージ編集済み 編集者: ume 編集日時 2003-03-29 12:17 ]

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