ServletContext getRealPath方法 - 什么是虚拟路径?

Kye*_*JmD 3 java servlets servlet-container

我正在阅读文档,getRealPath(String s)当我阅读本声明时,我感到困惑

返回包含给定虚拟路径的实际路径的String.例如,路径/index.html返回服务器文件系统上的绝对文件路径将由请求提供服务http://host/contextPath/index.html,其中contextPath是此ServletContext的上下文路径.

什么是虚拟路径?假设我在我的部署环境中,当我说getRealPath("index.html")这通常指向WEB-INF目录时?或者getRealPath()是否开始读取根目录(在Web应用程序的文件夹名称内)?

Jop*_*ops 8

您从Web容器中访问的资源的路径都是虚拟路径.它们的虚拟根是Web应用程序的基本文件夹.但是在它们所在的实际操作系统中,它们肯定会处于"具体"位置.getRealPath给你那条路.

假设你有一个名为index.jsp的jsp :

在此输入图像描述

在此输入图像描述

请注意,无论何时使用此功能,都会对Web应用程序的可移植性造成破坏.