我在.war文件的根目录中有一个jsp文件.然后我有一个名为STUFF的文件夹.
如何访问STUFF中的read.txt文件?
/Name_of_war/STUFF/read.txt是正确的路径?
webapp相对路径是/STUFF/read.txt
.
您可以使用ServletContext#getRealPath()
将相对Web路径转换为绝对本地磁盘文件系统路径.这样你就可以在通常的java.io
东西中进一步使用它,它实际上对它正在运行的web上下文一无所知.例如
String relativeWebPath = "/STUFF/read.txt"; String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath); File file = new File(absoluteDiskPath); // Do your thing with File.
但是,如果将服务器配置为在内存而不是在磁盘上扩展WAR,则此操作无效.使用getRealPath()
总是这个警告,不建议在现实世界的应用程序中使用.如果你最终需要的只是得到一个InputStream
你可能已经使用过的文件FileInputStream
,你最好ServletContext#getResourceAsStream()
直接得到它InputStream
:
String relativeWebPath = "/STUFF/read.txt"; InputStream input = getServletContext().getResourceAsStream(relativeWebPath); // Do your thing with InputStream.