0

Netbeans で JSP プロジェクトを開発しています。私はいくつかの JSP ファイルといくつかの Java ファイルを使用しています。プロジェクトの構造は次のとおりです。

root
-Web Pages
  --Jsp files
-Source Packages
  --myPacakge
    ---Java files
  --myIndex (it's a folder)

したがって、私の問題は次のとおりです。myPackage に配置されている Java ファイルから myIndex を参照したい。

最初に、Java ファイルは「ソース パッケージ」をルートとして認識していると想定しました。したがって、インデックスへのパスは"myIndex"になると思いましたが、デバッガーを介して、 C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.14\bin\myIndex'を見ていることがわかりました

次に、次のパスを試しました: "\myIndex"が、現在は"C:\myIndex"を見ています。

myIndex への正しいパスはどうあるべきか、またはプロジェクトのどこかに配置する必要があるかどうか、それについて私を助けてもらえますか?

4

1 に答える 1

1

表示されるのは、ソース プロジェクトの構造です。デプロイされた Web アプリケーションを実行している場合、ソース プロジェクトはもうありません。すべてが war ファイルにバンドルされており、JSP ファイル、その他の Web リソース、クラス ファイルは の下WEB-INF/classesに、jar ファイルは の下に含まれてWEB-INF/libいます。生成された war ファイル内のファイルにWEB-INF/classesアクセスする場合は、クラスローダーを使用してアクセスする必要があります。

InputStream in = SomeClassOfTheWebApp.class.getResourceAsStream("/myIndex/someFile.txt");

また、ディレクトリ内に何かを格納する予定がある場合はmyIndex、忘れてください。war ファイルは読み取り専用です。Web アプリケーションの外部のファイル システムに絶対ディレクトリを構成し、この絶対的な場所を使用して新しいファイルを保存します。サーバーが物理的に配置されている場所、起動方法、JVM の現在のディレクトリなどに依存するため、相対位置を使用しないでください。サーバーが移動すると、すべてが壊れます。

于 2012-06-23T17:29:04.327 に答える