当前位置:  开发笔记 > 编程语言 > 正文

在servlet(Web应用程序)中,我如何知道相对路径?

如何解决《在servlet(Web应用程序)中,我如何知道相对路径?》经验,为你挑选了1个好方法。

我在.war文件的根目录中有一个jsp文件.然后我有一个名为STUFF的文件夹.

如何访问STUFF中的read.txt文件?

/Name_of_war/STUFF/read.txt是正确的路径?



1> BalusC..:

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.


I wasted one day trying and trying.. faced `FileNotFoundException` and it's working in local but not in web. got frustrated.. but finally i come across your answer and tried.. it works awesome.. Thanks a lot.. :)
推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有