0

我正在 Netbeans 中开发一个 JSP 项目。我正在使用一些 JSP 文件和一些 java 文件。项目结构如下:

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

所以,我的问题是:我想从一个 java 文件中引用 myIndex,该文件放在 myPackage.xml 中。

我首先假设java文件将“源包”视为root。所以,我认为索引的路径只是"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 文件是只读的。在 webapp 之外的文件系统上配置一些绝对目录,并使用这个绝对位置来存储新文件。不要使用相对位置,因为它取决于服务器的物理位置、它的启动方式、它的 JVM 的当前目录是什么等。如果服务器移动,一切都会中断。

于 2012-06-23T17:29:04.327 回答