
Webアプリケーション開発初心者です。
Struts 1.28 を使っているのですが、トップページにいくつかリンクがあるのですが、実行するとそれらの後ろに;jsessionid=...(省略)の文字列が自動的に追加されます。画面のリロードをすると消えるのですが、画像のソースのところも追加されるので画像が表示されません。jsessionidが自動的に追加されないようにしたいと思います。
JSPでセッションを有効にしても無効にしても解決されません。また、リンクのところは Struts の <html:link を使っています。
どなたか解決方法を教えていただけないでしょうか。よろしくお願いいたします。
ちなみに環境は
Apache 5.5
JDK 1.5
Struts 1.2.8
web.xml 2.4

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

No.1
- 回答日時:
jsessionidは、セッションをトラッキングするためのキーとして扱われるものです。
サーブレットでは通常、クッキーとして保存されますが、それできない場合にはURLに付加した形でURLリライトされます。Strutsは、常にセッションを確立した形で機能するよう設計されています。このため、クッキーのように状況によって使えないこともある方式では問題がある場合には、どのような状況でも常にセッショントラッキングが可能なURLリライティングを使ってjsessionidを受け渡しているのだろうと思います。
jsessionidを受け渡さないということはセッションがトラッキングできない場合が生ずるということであり、これはStrutsの設計そのものが破綻しますので、できないようになっているのではないかと思うのですが。
これはStrutsに限らず、例えばセッションを常に使うJSFなどでも同様の現象が見られますから、セッション必須のフレームワークでは避けられないものなのではないでしょうか。
ちなみに、「画像のソースのところも追加されるので画像が表示されません。」この意味が分からないのですが。Strutsを使っていて、jsessionidが原因でイメージが表示できなくなったことがないので、どういう状況なのかよくわかりません。そのあたり、どのようにして記述をしていてどういう表示になって動かないのかをもう少し具体的に書いていただければと思います。
この回答への補足
ご回答ありがとうございます。
イメージが表示されないのはたとえば以下のような場合に発生します。
変換前
<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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
プログラミングの問題です。大...
-
googleスプレッドシートのスク...
-
JDONWROADER2のエラー修復
-
スプレッドシートからリマイン...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
list の空は [] ってあわらすのに
-
あんまりお料理しないのに台所...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コネクション・セッション・ト...
-
コンピュータへの接続数が最大...
-
DVD-Rの「セッションを閉じる」...
-
ブラウザの×(閉じる)ボタンの...
-
セッションIDを取得したい
-
WCFのwsDualHttpBindingについて
-
SESSIDってなんですか?
-
会社への勤怠届出にGoogleフォ...
-
ブラウザを閉じずにセッション...
-
セッション変数の破棄と再設定
-
ディスクのセッションを閉じる...
-
WebBrowserを初期化
-
ASPで別ページにPOSTで送信した...
-
Apacheでセッション管理
-
CDの編集について
-
DVDの中身が表示されません。
-
JSPでポップアップウィンド...
-
遠隔操作されてる?
-
CD-Rのセッションクローズを調...
-
リンクのjssessionid付加について
おすすめ情報