getRealPath( )方法概述
在Web开发中,我们经常使用javax.servlet.ServletContext.getRealPath(String path)方法获取虚拟路径的真实路径。换句话说,该方法用于获取项目部署后某文件或目录的真实路径。
String javax.servlet.ServletContext.getRealPath(String path)
在该方法中:输入参数 path表示虚拟路径;返回值String表示服务器上的真实路径。
getRealPath( )方法示例
在此,以示例形式详细介绍getRealPath( )方法。
创建JavaWeb项目RealPath,图示如下:
TestServlet代码如下:
package cn.com;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
* 示例描述:javax.servlet.ServletContext.getRealPath(String path)方法的使用
*/
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 5529686401477267959L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = request.getServletContext();
String path1 = servletContext.getRealPath("");
System.out.println(path1);
String path2 = servletContext.getRealPath("/imgs");
System.out.println(path2);
String path3 = servletContext.getRealPath("/WEB-INF");
System.out.println(path3);
}
}
打印结果:
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\RealPath\
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\RealPath\imgs
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\RealPath\WEB-INF
其中, C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\RealPath 正是项目RealPath部署后在服务器上的路径。
结果分析:
ServletContext.getRealPath("") 获取到的是项目部署到服务器后的项目根路径。
ServletContext.getRealPath("文件名或文件夹名") 获取到的是项目部署到服务器后某文件或文件夹的路径。