我正在Netbeans中开发一个JSP项目。我正在使用一些JSP文件和一些java文件。 项目结构如下:
root
-Web Pages
--Jsp files
-Source Packages
--myPacakge
---Java files
--myIndex (it's a folder)
所以,我的问题是:我想从一个放在myPackage中的java文件中引用myIndex。
我首先假设java文件以root身份查看“Source Packages”。 所以,我认为索引的路径只是“myIndex”,但通过调试器我发现它正在查看 C:\ Program Files \ Apache Software Foundation \ Apache Tomcat 7.0.14 \ bin \ myIndex'
然后我尝试了以下路径:“\ myIndex”,但它现在正在查看 “C:\ myIndex”
请你帮我解决一下,myIndex应该是正确的路径,或者我应该把它放在项目的某个地方吗?
答案 0 :(得分:1)
您展示的是源项目的结构。当您运行已部署的Web应用程序时,不再有源项目。所有内容都捆绑在war文件中,包含JSP文件,其他Web资源,WEB-INF/classes
下的类文件和WEB-INF/lib
下的jar文件。如果要访问生成的war文件中WEB-INF/classes
内的文件,则应使用类加载器访问它,使用
InputStream in = SomeClassOfTheWebApp.class.getResourceAsStream("/myIndex/someFile.txt");
如果您计划在myIndex
目录中存储某些内容,那么请忘记它:war文件是只读的。在webapp之外的文件系统上配置一些绝对目录,并使用此绝对位置来存储新文件。不要使用相对位置,因为它取决于服务器的物理位置,启动方式,JVM的当前目录是什么等等。如果服务器被移动,一切都会中断。