我想知道如何获取文件的路径,以便在托管模式下访问它。我的应用程序正在使用servlet读取一些文件。最初,这些文件位于"war“文件夹下(例如,"war/ data /file1.txt"),在开发过程中,servlet读取文件并将数据发送到客户端。然而,当我在Tomcat中部署应用程序时,我遇到了一些问题。
我复制了war文件夹的内容,并将其放入"webapps“目录下的一个文件夹中(Tomcat中)。在开发模式下,我使用路径" data /file1.txt“访问数据文件,但这在托管模式下不起作用,因为我发现在使用该路径时,servlet在Tomcat安装目录的"bin”文件夹中查找文件,而不是在应用程序的文件夹中查找。
因此,我想知道如何通过编程找到访问文件的正确路径,并在将应用程序部署到Tomcat或任何其他服务器时避免出现问题。
发布于 2011-09-26 21:40:16
使用ServletContext.getRealPath()。您可以从Servlet.getServletConfig().getServletContext()获取ServletContext实例。
您之所以看到它在开发模式下工作,而不是在Tomcat中工作,是因为路径通常是相对于工作目录的。如果您在web应用程序目录中启动Tomcat,或者将Tomcat快捷方式修改为在web应用程序中具有工作目录,那么您可能也可以让Tomcat工作。但你绝对不应该依赖它。
发布于 2011-09-26 22:04:16
看看GWT.isProdMode()。如果在生产模式下运行,则返回true;如果在开发模式下运行,则返回false。您可以通过将适当的路径放在if语句中来选择适当的路径
https://stackoverflow.com/questions/7555369
复制相似问题