2012-02-27 10 views
0

私はWebアプリケーションを持っており、私はクラスの静的ブロック内のフォルダ(私の場合はWEB-INF)の絶対パスを取得する必要がありますサーブレットではありません。もちろん、私はプロパティファイルからこの値を取ることができますが、そうでなければこれを行うことはできますか?クラスの静的ブロック内のフォルダの実際のパスを取得するには

+1

「実際のフォルダのパス」とはどういう意味ですか? –

+1

プロパティファイルを使用していない理由がありますか? – DNA

答えて

1

あなたはそれがあるため、このようなWEB-INFフォルダ名を取得できないことがあり

String realPathOfImgFolder=req.getServletContext().getRealPath("/foldername"); 

ようなあなたのファイルシステム内の実際のフォルダを見つけるためにのServletContextにServletContext.getRealPathのgetRealPath()メソッドを使用することができますサーブレットコンテキストの公開ディレクトリに、あなたはそれ

String rootPath=req.getServletContext().getRealPath("/"); 
File webInfFolder=new File(rootPath,"WEB-INF"); 

のために、このような何かをする必要がありません[EDIT]あなたはrequestオブジェクトを持っていけない場合、あなたはServletContextListenerを使用する必要があり、そのを使用します。メソッドを使用してServletContextを取得し、パスを後で取得するためのアプリケーションスコープに格納します。

+0

私は静的ブロックのインスタンスを要求するアクセス権がありません。 –

+0

次に、ServletContextを取得し、後で取得するためにServletContextを取得し、アプリケーションスコープにそのパスを格納するために、 'ServletContextListener'を使用し、' contextInitialized(ServletContextEvent sce) 'メソッドを使用する必要があります。 –

+0

実際にあなたの最後のコメントは私が必要としたものです。あなたが答えとしてそれを作るなら、私はそれを受け入れるでしょう。 –

関連する問題