我想获取url的绝对路径。例如,http://localhost:8080将在根目录中为我提供可用的 tomcat 主页。如何通过在 java 中提供其 url http://localhost:8080来获取 tomcat 根目录的绝对路径。
我发现了类似的问题,但没有找到满意的答案,所以我在这里发布问题。
我想获取url的绝对路径。例如,http://localhost:8080将在根目录中为我提供可用的 tomcat 主页。如何通过在 java 中提供其 url http://localhost:8080来获取 tomcat 根目录的绝对路径。
我发现了类似的问题,但没有找到满意的答案,所以我在这里发布问题。
您可以使用javax.servlet.ServletContext.getRealPath(java.lang.String)
,尽管在某些情况下它不起作用。
从API 文档:
获取给定虚拟路径对应的真实路径。
例如,如果
path
等于/index.html
,此方法将返回服务器文件系统上的绝对文件路径,表单的请求http://<host>:<port>/<contextPath>/index.html
将映射到该路径,其中<contextPath>
对应于此 ServletContext 的上下文路径。返回的真实路径将采用适合运行 servlet 容器的计算机和操作系统的格式,包括正确的路径分隔符。
/META-INF/resources
仅当容器从包含 JAR 文件中解压它们时,才必须考虑捆绑在应用程序目录中的 JAR 文件目录中的资源/WEB-INF/lib
,在这种情况下,必须返回解压位置的路径。如果 servlet 容器无法将给定的虚拟路径转换为真实路径,则此方法返回 null。
参数:
path - 要转换为真实路径的虚拟路径返回:
真实路径,如果无法执行翻译,则返回 null