我能';无法从Servlet(JavaEE)获取实际路径
当我想在Java EE中获得真实路径时,请使用以下说明:我能';无法从Servlet(JavaEE)获取实际路径,java,tomcat,absolute-path,realpath,Java,Tomcat,Absolute Path,Realpath,当我想在Java EE中获得真实路径时,请使用以下说明: String rootPath = getServletConfig().getServletContext().getRealPath("/"); System.out.println(rootPath); 结果是: C:\Users\saad\Desktop\pds.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Metier\ 通常,我必须得到这个结果: C
String rootPath = getServletConfig().getServletContext().getRealPath("/");
System.out.println(rootPath);
结果是:
C:\Users\saad\Desktop\pds.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Metier\
通常,我必须得到这个结果:
C:\Users\saad\Desktop\pds\Metier\
有人能帮我吗?这是一个很好的例子,说明了为什么“相对于应用程序的文件系统路径”的概念在servlet中真的没有意义。当servlet部署到容器中时,不能保证它驻留在真正的文件系统位置。servlet容器可以选择直接从.war文件执行它,而无需扩展它,也可以从根本不受传统文件系统支持的URL读取应用程序代码 在您的例子中,您得到的长路径正是Eclipse部署应用程序的地方。在这种情况下,该路径是100%正确的,因为如果您查看该位置的文件系统,您将找到应用程序的副本,但显然不是您所期望的 一般来说,由于路径可能不存在,因此无法以可移植方式引用与应用程序相关的任何文件路径。Tomcat dir的路径(Tomcat/bin): 其他Tomcat目录的路径,“webapps”例如:
File inputFile = new File("../webapps/file.xml"); // tomcat_dir/webapps/file.xml
摆脱绝对路径的好方法:)
File inputFile = new File("../webapps/file.xml"); // tomcat_dir/webapps/file.xml