• ベストアンサー
※ 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

  • jsp実行時に、taglibのuriが解決されない

    Eclipse4.2Juno Pleiades All in Oneをダウンロードして、 strutsの簡単なサンプルコードを作成しているのですが、 jspの冒頭に、 <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> と記述しているのですが、 実行すると、 「絶対URI: http://struts.apache.org/tags-html はweb.xmlとこのアプリケーションを配備したJARファイルのどちらかでも解決できません」 というエラーメッセージが出てしまい、うまくいきません。 現状、 「struts-taglib-1.3.10.jar」を WEB-INF/lib に置いてビルドパスに指定すると、 JSPの実行前のコンパイルエラーは消えるのですが、 いざ実行すると上記エラーになってしまうという状況です。 どなたかもしおわかりになる方がいらっしゃいましたら、教えてください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Weblogicのセッションについて

    Weblogic10.0.3にてWebアプリケーションの 開発を行っていますが、解決しない問題があり 質問させていただきます。 現在、ログイン画面にてユーザーIDとパスワードを 入力してログイン後各処理を行うアプリを開発していますが、 ログイン時のユーザー情報をセッションに保持する作りに していますが、ログイン時にjsessionidがURLに 表示されてしまいます。 (例:http://testserver:9000/TestApp/Test.do;jsessionid=vFqyK3xMrJ9QCLJnW0X0r2w17ylBVhhD2VQT4qGwdMsGvhnZHdJQ!-425034523) 一度ログインするとそのブラウザを閉じるまでは、画面遷移をしても 何度ログイン・ログアウト処理(セッションの生成・削除)を 行っても二度と表示されません。 (画面遷移はStrutsで制御しています) セッションIDをCookieに保持する方法もあるようですが、 なるべくCookieを使いたくないので、セッションに保持するように したいのです。 web.xml、weblogic.xml、Weblogicサーバーの設定などで セッションIDを表示しなくなる方法がありましたら 教えてください。よろしくお願いします。

  • ◆Struts サンプルプログラムのURLがわかりません。◆

    Struts初心者です。教えて下さい。 http://www.stackasterisk.jp/tech/java/strutsSec01_03.jsp#5 上記サイトで勉強中にいきずまってしまいました。初歩的質問で申し訳御座いませんが教えて下さい。 4.Strutsアプリケーションの作成 で記載されている通りに jspファイル、javaファイルを配置し、struts-configファイルも記載されているようにしました。 画面を表示させたいのですが、どのような URLにアクセスすれば画面が表示されるのでしょうか・・?? web.xmlの中に urlマッピングする情報を追記したり、struts-configに追記したりする必要がありますのでしょうか・・・?? servletだと web.xmlに、<servlet-mapping>要素に<url-pattern>を定義してURLが判断できたのですが・・・・ 以下のようなURLでアクセスしているのですが、TomcatがHTTPステータス 404を表示します。。tomcatの再起動なども行なっております。 http://localhost:8080/struts-blank/jsp/loginForm.jsp 根本的に理解できていないと思うので、参考になるサイト、書籍などもあったら教えて下さい。 環境 WinXP,JDK1.5,Eclipse3.2,Struts1.2,Tomcat5.x 宜しくお願いします。

  • strutsのサンプル画面について

    初めてstruts開発に携わる初心者です。 下記環境で、strutsのインストール確認を行おうと思うのですが 「The requested resource (/struts-examples/) is not available.」とエラーが発生してしまい大変困っています。 <環境> struts-1.3.8 Tomcat 6.0 jdk1.6.0_06 windowsXP <手順> (1)それぞれをダウンロード&インストール (2)JAVA_HOME、CATALINA_HOMEを設定 (3)struts-1.3.8\apps下のwarファイルをTomcat 6.0\webappsにコピー (4)http://localhost:8080/struts-blank-1.3.8で動作確認 <出力されたログ> 情報: Coyote HTTP/1.1を http-8080 で初期化します 2008/07/26 22:07:38 org.apache.catalina.startup.Catalina load 情報: Initialization processed in 1148 ms 2008/07/26 22:07:38 org.apache.catalina.core.StandardService start 情報: サービス Catalina を起動します 2008/07/26 22:07:38 org.apache.catalina.core.StandardEngine start 情報: Starting Servlet Engine: Apache Tomcat/6.0.16 2008/07/26 22:07:38 org.apache.catalina.startup.HostConfig deployWAR 情報: Webアプリケーションアーカイブ struts-examples-1.3.8.war を配備します 2008/07/26 22:07:41 org.apache.struts.action.ActionServlet initChain 情報: Loading chain catalog from jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/struts-examples-1.3.8/WEB-INF/lib/struts-core-1.3.8.jar!/org/apache/struts/chain/chain-config.xml 2008/07/26 22:07:42 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/org/apache/struts/validator/validator-rules.xml' 2008/07/26 22:07:42 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/upload/validation.xml' 2008/07/26 22:07:43 org.apache.struts.config.impl.ModuleConfigImpl addFormBeanConfig 警告: Overriding ActionForm of name localeForm 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/org/apache/struts/validator/validator-rules-compressed.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-bundles.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-i18nVariables.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-type.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-validwhen.xml' 2008/07/26 22:07:44 org.apache.coyote.http11.Http11Protocol start 情報: Coyote HTTP/1.1を http-8080 で起動します 2008/07/26 22:07:44 org.apache.jk.common.ChannelSocket init 情報: JK: ajp13 listening on /0.0.0.0:8009 2008/07/26 22:07:44 org.apache.jk.server.JkMain start 情報: Jk running ID=0 time=0/46 config=null 2008/07/26 22:07:44 org.apache.catalina.startup.Catalina start 情報: Server startup in 5831 ms 初歩的な質問ですが何卒よろしくお願いします。

    • ベストアンサー
    • Java
  • strutsで、任意の画面からの任意のURLを受け付けた時の処理がしたい。

    strutsを勉強中の者です。 strutsで、  (1)a.jsp→(2)b.do→(3)b.class→(4)c.jsp という画面遷移はできるようになったのですが、(現在b.doとb.classは同じ名前にしています。) 任意の画面からの呼び出しで、  (1)*.jsp→(2)*.do→(3)b.class→(4)c.jsp とし、(2)で入力された任意のURLを(3)で解析し、そのURLによって(3)内部での処理を分岐したいのです。 ちなみに、struts-config.xmlの定義で、 <action-mappings> <action className="test.ShowMain" path="/ShowMain" input="/jsp/html/*.jsp"> <forward name="success" path="/jsp/html/main.jsp"/> </action> </action-mappings> と、*を使って編集しようとしても、 画面に、HTTPステータス 500 が表示され、 コンソールには、 ---- 致命的: End event threw exception java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: test.ShowMain 2008/08/17 10:43:13 org.apache.struts.action.ActionServlet handleConfigException 致命的: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: test.ShowMain 情報: サーブレット action を利用不可能にマークします 2008/08/17 10:43:13 org.apache.catalina.core.StandardContext loadOnStartup 致命的: サーブレット /test がload()例外を投げました javax.servlet.UnavailableException: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー ---- と表示されてしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  GEF3.3  struts-1.3.8  JDK1.5  「Eclipseパーフェクトマニュアル ベストセレクション」  という本をもとに勉強しています。 a.こうした任意のページを受信する、という方法はStrutsで可能なのでしょうか? b.可能である場合、どのような方法を取れば良いでしょうか? どなたかご存知の方がいらっしゃいましたら教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • struts使用時のソースの位置

    お世話になります。 他で似た質問をしているのですが strutsのソースの格納場所について質問します。 WTP+strutsを使用し画面を作成しているのですが以下のような質問がでました。 致命的: サーブレット jsp のServlet.service()が例外を投げました javax.servlet.jsp.JspException: ActionMappingsまたはActionFormBeansコレクションが見つかりません おそらくstruts.config.xmlフォルダでactionタグに関連した箇所を探しているけれど見つからない・ソースのある箇所がわからない、といってるようには思うのですが。 情報: サーブレット action を利用不可能にマークします 2007/10/11 17:06:04 org.apache.catalina.core.StandardContext loadOnStartup 致命的: サーブレット /struts-blank がload()例外を投げました javax.servlet.UnavailableException: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー ソースの構成は struts-blank プロジェクト名 配下に Deployment Descriptor Java Resources build -class 実際javaソースをビルド時ここにclassが作成される WebContent 配下に METE-INF pages ここにすでにWelcome.jspソースが作成されている WEB-INF 配下に lib ここにjarファイルがある src 配下にjava ここにMessageResources.properties build.xml README.txt struts-config.xml tldファイル tiles.def.xml validation.xml validator-rules.xml Web.xml index.jsp すでに作成されている という構成なのですがどこが問題なのでしょうか? 実際には WEB-INF/src/配下にフォルダを作りそこにjavaソースを入れている感じなのですが よろしくお願いします

    • ベストアンサー
    • Java
  • TOMCATを使用したStrutsエラーについて

    動作環境 OS:WindowsXP Browser:IE8 Tomcat6.0 Tomcatをインストールしたwebapps直下にあるjspファイルを実行したいと思っています。 その中にStrutsを使用する記述があるのですが、実行するとエラーが出ます。 ネットでも色々と調べたのですが、原因がつかめません。 1.jspファイル <%@ page pageEncoding = "Shift_JIS" %> <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html> <body> <html:form action="cancel_view" > <html:text property="stringData" size="15" maxlength="15" /> <html:submit property="submit" value="送信" /> </html:form> </body></html> 2.web.xmlファイル <taglib> <taglib-uri>/tabs/struts-html</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> 3.エラー内容 3.1.IE8 org.apache.jasper.JasperException: JSP ファイル "/tags/struts-html" が見つかりません 3.2.Tomcat6 2010/11/20 21:13:17 org.apache.jasper.compiler.TldLocationsCache processWebDotXml 警告: 内部エラー: ファイル /WEB-INF/web.xml が見つかりません 「1.」の3行目にエラーがあるみたいです。何故ならその行を外せばエラーは消えます。 ですが、何も表示されません。 「3.2.」にweb.xmlは保存されています。そこに必要な*.tldファイルも保存されています。 libフォルダも作り動作に必要な*.jarファイルを保存しています。 web.xmlがあるにもかかわらず、見つかりませんと出るのは何故でしょうか? 環境変数のパスが足りないとも思えません。 どなたか詳しい方、エラー解消のご教授の程よろしくお願いします。

  • struts java ログインのセッション情報を確認するには?

    struts java ログインのセッション情報を確認するには? Login.jspからログインボタンを押下(この時にセッション情報を取得)して、画面遷移をしてB.jspに行きます。 この時にBAction.javaでセッション情報をB.jspが表示される前に取得したいのですがどうすればいいのでしょうか? B.jsp画面が表示される前に、セッション情報を取得してセッション情報があるかないかの判定を行いあればB.jspを表示してなければログイン画面を表示しようと考えています。 BAction.javaに記述したい処理です。 HttpSession session = request.getSession(false); if ( session.getAttribute("sessionInformation") != null ) { System.out.println("セッション有効") ; return mapping.findForward("success"); } else { //論理名"error"に該当するページへ移動(struts-config.xmlを参照) return mapping.findForward("errorSession"); } この処理をActionクラスにどのように記述すればいいのでしょうか? struts-config.xmlファイルの内容 <action <forward name="errorSession" path="/Login.jsp" /> <forward name="success" path="/B.jsp" /> </action> です。 URL直打ちをしてB.jspにアクセスしようとしたときに、セッション情報をもっていない為、上記のelseになり、ログイン画面に遷移しようと考えております。 かなりネットで調べましたが全く分かりませんでした。

    • ベストアンサー
    • Java
  • Strutsで画面遷移させない。

    Strutsでwebアプリを作成しているのですが、jsp上のボタンを押下時、sessionに持ってる変数を書き換えたいのですが、画面遷移はさせたくないのです。それって可能ですか? どなたかご教授ください。

    • ベストアンサー
    • Java
  • 画面の遷移先の取得

    状況 Strutsを使っています。 やりたいこと ActionMappingや、ActionForwardのオブジェクトから、 次の画面遷移先を取得したいです。 ※struts-config.xml上で、 forward name="success" path="/WEB-INF/jsp/GamenName.jsp"/ というように記述をしているわけですし、その情報を取れるのかなぁと思っていますが、不可能でしょうか?

    • ベストアンサー
    • Java
このQ&Aのポイント
  • 突然表示される「印刷できません50」のエラーメッセージに困っていませんか?この記事では、ブラザー製品DCP-J982Nを使用している際に発生する印刷トラブルについて解決方法をご紹介します。
  • 印刷トラブルの解決方法には、まずパソコンのOSが適切に設定されているかを確認しましょう。また、接続方法や関連するソフト・アプリ、電話回線の種類などもチェックすることが重要です。
  • もしも上記の設定が正しく行われているにもかかわらず印刷ができない場合は、ブラザーサポートセンターにお問い合わせいただくことをおすすめします。専門のサポートスタッフがトラブル解決の手助けをしてくれます。
回答を見る