• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jspでファイルを読み込む)

jspでファイルを読み込む処理についてのアドバイスをお願いします

このQ&Aのポイント
  • jspでajaxを使ってファイルを読み込む処理がうまくいきません。
  • 直接jspのページを見る場合、アドレスはhttp://localhost:8080/xxx/sample.jspとなりますが、サーブレットから値を受け取る場合はアドレスがhttp://localhost:8080/xxx/servlet/クラスファイル名?変数名=値となり、この場合ファイルを読み込む処理がうまくいきません。
  • readfile.txtのパスの書き方を試してみましたが、うまくいきません。アドバイスをお願いします。

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

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

>​readfile.txtはsample.jspと同じ階層に置いてます。 同じ階層においてあるのなら、 > http://localhost:8080/xxx/servlet/readfile.txt​ こうではなくて、 http://localhost:8080/xxx/readfile.txt​ こうですよね? http://localhost:8080/xxx/sample.jsp でjspを起動していて同じ階層なら、servletの下ではありませんよね?

himarimo
質問者

お礼

返信ありがとうございます。 http://localhost:8080/xxx/readfile.txtで試してもできませんでした。 現在、サーブレット→sample.jspとなっているのですが、sample.jspのソースのサーブレットから受け取る処理の部分を削って、JavaScriptとボタンとdivタグのみにして、sample.jspのアドレスを直に打ち込んで試してみると相対パスでも絶対パスでも問題なくreadfile.txtの内容が表示されます。 サーブレットからは req.setAttribute("reserve_id",reserve_id); req.setAttribute("DBbean1",sel_bean1); ServletContext sc = getServletContext(); sc.getRequestDispatcher("/sample.jsp").forward(req,res); こんな感じでJSPに渡しています。 サーブレットから制御を渡された場合と、JSPのアドレスをじかに打ち込んだ場合でカレントが違ってくるのでしょうか・・・。

himarimo
質問者

補足

解決しました! 今までは <script type="text/javascript"src="./js/prototype.js"></script> としていたのを <script type="text/javascript"src="../js/prototype.js"></script> にして、 テキストファイルのパスも"../readfile.txt"としたら無事動作しました。 ../ということはカレントはjspファイルより一つ深い階層ということになりますよね。 ということはWEB-INFがカレントということに・・・。 よく分かりませんが解決しました! ありがとうございました!

その他の回答 (1)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

これ、prototype.jsの話ですよね? なぜ、これがjspでファイルを読み込むというタイトルになるのか不思議ですが(笑) Ajaxはクライアント側から、JSP/Servletはサーバ側から  動作するものなので、直接的には関係ありません。 むしろ、JavaScriptの方で聞いていただいたほうが的確な回答が得られそうな気がします。 >readfile.txtのパスの書き方が悪いのかと思いいろいろ試しました 試した内容も書いていただくと良かったのですが、 単純に絶対パスで書かれていないので、相対パスで読もうとしているためではないのでしょうか? http://~ とフルパスでURL指定をすればよろしいのでは? http://www.imgsrc.co.jp/~kuriyama/prototype/prototype.js.html#UsingAjaxUpdater

himarimo
質問者

お礼

返信ありがとうございます。 prototype.jsのことです。 絶対パスも試しましたが無理でした。 http://localhost:8080/xxx/servlet/readfile.txt 絶対パスってこういうことですよね・・・。 readfile.txtはsample.jspと同じ階層に置いてます。

関連するQ&A