2012-04-21 11 views
0

URLの絶対パスを取得します。たとえば、http://localhost:8080はルートディレクトリにあるtomcatのホームページを私に与えます。どのように私はURLをhttp://localhost:8080 javaで提供することによって、tomcatのルートディレクトリの絶対パスを取得できますか?URLを絶対パスで取得する方法を教えてください。

私は同様の質問を見つけましたが、満足のいく回答が見つかりませんでしたので、ここに問題を掲載しています。

+1

あなたはそれをすることはできません! – adarshr

答えて

0

javax.servlet.ServletContext.getRealPath(java.lang.String)を使用できますが、動作しない場合もあります。 API documentationから

は、与えられた仮想パスに対応本当パスを取得します。例えば

path/index.htmlに等しい場合、この方法は<contextPath>本のServletContextのコンテキストパスに対応する形http://<host>:<port>/<contextPath>/index.htmlの要求は、マッピングされる先のサーバのファイルシステム上の絶対ファイルパスを返します。

返される実際のパスは、適切なパス区切り文字を含め、サーブレットコンテナが実行されているコンピュータとオペレーティングシステムに適した形式になります。

アプリケーションの/WEB-INF/libディレクトリにバンドルされたJARファイルのディレクトリ内のリソースは、コンテナが含まれているJARファイルからアンパックした場合にのみ考慮する必要があります。この場合、アンパックした場所へのパスを返す必要があります。

サーブレットコンテナが指定された仮想パスを実際のパスに変換できない場合、このメソッドはnullを返します。

パラメータ:
パス - 実際のパスに変換する仮想パス

戻り値:
実際のパス、またはnull翻訳は

を実行できない場合
関連する問題