Javaでファイルをアップロードする際に、Server.MapPath()をどのように使用しますか?
JavaにはServer.MapPath()に相当するメソッドはありませんが、ファイルの実際のパスを取得するためにServletContextのgetRealPath()メソッドを使用することができます。
以下の手順に従って実行してください。
- あなたのサーブレットでServletContextオブジェクトを取得してください。getServletContext()メソッドをdoGet()やdoPost()メソッド内で使用することで取得することができます。
- サーブレットコンテキスト servletContext = getServletContext();
- getRealPath()メソッドを使用してファイルの実際のパスを取得します。例えば、”file.txt”という名前のファイルの実際のパスを取得したい場合:
- servletContext.getRealPath(“/file.txt”); を使用して、 filePath にファイルのパスを代入します。
- WEB-INFディレクトリ内のファイルに対する実際のパスを取得したい場合は、または、
- String filePath = servletContext.getRealPath(“/WEB-INF/file.txt”);ファイルのパス = servletContext.getRealPath(“/WEB-INF/file.txt”);
- getRealPath()メソッドは、該当ファイルの実際のパスを表すString型のパスを返します。
- 今、あなたはfilePathを使用してファイルを操作することができます。例えば、ファイルをアップロードすることができます。
注意:getRealPath()メソッドは、特にアプリケーションがパッケージ化されていないWARファイルにデプロイされた場合など、いくつかの状況ではnullを返す可能性があります。そのような場合には、ファイルのパスを取得するために他の方法を検討する必要があります。