• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リンクのjssessionid付加について)

リンクのjsessionid付加について

このQ&Aのポイント
  • Webアプリケーション開発初心者です。Struts 1.28を使っているのですが、リンク先に自動的に「;jsessionid=...」という文字列が追加されます。画像のソースにも追加されるため、画像が表示されません。解決方法を教えてください。
  • リンク先のURLに自動的に「;jsessionid=...」という文字列が追加されます。これにより、画像のソースにも追加されてしまい、画像が表示されません。解決方法を教えてください。
  • Struts 1.28を使用していると、リンク先のURLに自動的に「;jsessionid=...」という文字列が追加されます。このため、画像のソースにも追加されてしまい、画像が表示されません。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.2

> 変換後 > <a href="/;jsessionid=ECEB94195E55DCB9D7ECE9BD4559D871"> > <img src="/images/logo.gif;jsessionid=ECEB94195E55DCB9D7ECE9BD4559D871"> > </a> 時間があったので同じものを作って、クッキーをオフにし、強制的にjsessionidが付加される形にして試してみました。 全く同じように<a hrefにも<img srcにもjsessionidが付加されましたが、イメージは問題なく表示されましたし、リンクも問題なく移動できました。ローカル上からだけでなく、LAN内ですが他のマシンからアクセスしても問題はありませんでした。  つまり、;jsessionidがついているためにファイルやページが認識できなくなってしまうわけではないようですね。となると、そちらの環境か設定の問題なのかもしれません。  とりあえず、補足のコードそのものはこちらでは動くということだけご報告しておきます。他の原因となると、ちょっと今は思いつかないのですけど・・・。

sublime3544
質問者

お礼

わざわざテストしていただきありがとうございます。 こちらでも一度画面のリロードすると表示されることがわかりました。キャッシュとかの問題かなと思っています。

その他の回答 (1)

noname#49664
noname#49664
回答No.1

jsessionidは、セッションをトラッキングするためのキーとして扱われるものです。サーブレットでは通常、クッキーとして保存されますが、それできない場合にはURLに付加した形でURLリライトされます。  Strutsは、常にセッションを確立した形で機能するよう設計されています。このため、クッキーのように状況によって使えないこともある方式では問題がある場合には、どのような状況でも常にセッショントラッキングが可能なURLリライティングを使ってjsessionidを受け渡しているのだろうと思います。  jsessionidを受け渡さないということはセッションがトラッキングできない場合が生ずるということであり、これはStrutsの設計そのものが破綻しますので、できないようになっているのではないかと思うのですが。  これはStrutsに限らず、例えばセッションを常に使うJSFなどでも同様の現象が見られますから、セッション必須のフレームワークでは避けられないものなのではないでしょうか。 ちなみに、「画像のソースのところも追加されるので画像が表示されません。」この意味が分からないのですが。Strutsを使っていて、jsessionidが原因でイメージが表示できなくなったことがないので、どういう状況なのかよくわかりません。そのあたり、どのようにして記述をしていてどういう表示になって動かないのかをもう少し具体的に書いていただければと思います。

sublime3544
質問者

補足

ご回答ありがとうございます。 イメージが表示されないのはたとえば以下のような場合に発生します。 変換前 <html:link forward="top"> <html:img src="/images/logo.gif"/> </html:link> 変換後 <a href="/;jsessionid=ECEB94195E55DCB9D7ECE9BD4559D871"> <img src="/images/logo.gif;jsessionid=ECEB94195E55DCB9D7ECE9BD4559D871"> </a> imgタグのsrcの部分にもjsessionidが付加されます。そのため、画像が見つからずに表示されません。 以上、よろしくお願いいたします。

関連するQ&A