人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JSPでカレントディレクトリを取得しようとして、下記のリンク先で解説しているソースを試しましたが、どうもCATALINA_HOMEが示すディレクトリが取得されてしまい、うまくいきません。

http://itbtech.itboost.co.jp/jserv/jserv_16.php

------------引用始-----------------
File fileParentDirectory = new File(".").getAbsoluteFile().getParentFile();
String path = fileParentDirectory.getAbsolutePath();
------------引用終-----------------

JSPではなく、サーブレットでも試しました。全く同様の結果です。
1.なぜ、うまくいかないのでしょうか。
2.また、カレントディレクトリを取得するにはどうすればいいでしょうか。

●質問者: kyoko55
●カテゴリ:インターネット ウェブ制作
✍キーワード:JSP String カレント サーブレット ソース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KUROX
●35ポイント

的をはずしてるかもしれませんが・・・。

質問文は、仕様どおりだと思います。

カレントディレクトリが、CATALINA_HOMEが示すディレクトリだと思います。

---------

やりたいことは、

WEBアプリケーションルートディレクトリの取得(Servlet)

String path = this.getServletContext().getRealPath("/");

http://www.itmedia.co.jp/enterprise/articles/0408/03/news020.htm...

このあたりなんじゃないでしょうか?

getServletContextを使う場合は、コンテナ依存だったような気がするので

うまくいかない場合もあったと記憶してます。

#的をはずしてたら申し訳ないので、コメント欄をオープンしていただけると

#ありがたいです。

◎質問者からの返答

ttp://hoge.com/contextA/folderX/index.jsp

のように、コンテキスト「contextA」の下に、名前が変わるかもしれないサブフォルダ「folderX」があり、その中にあるjspファイルから、「folderX」の取得を行いたいと思っています。

getRealPathとgetContextPathなどを使えばcontextAまでは取得できると思いますが。。


2 ● okinaka
●35ポイント

1.なぜ、うまくいかないのでしょうか。

2.また、カレントディレクトリを取得するにはどうすればいいでしょうか。

コマンドラインから CATALINA_HOME ディレクトリ上で、

Tomcat を起動したのではないでしょうか?

コマンドを実行したディレクトリが、カレントディレクトリとなります。


サーバーアプリケーションの場合、カレントディレクトリ自体が曖昧な値なので、

それに頼った仕様はよくありません。

参照したいディレクトリなどの情報は、固定で指定する方がいいとおもいます。

(たとえば context.xml や、web.xml などの外部のファイル)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ