getRealPath详细解释

今天在获取路径的时候突然发现request中也有getRealPath这个方法,最后查了查文档,说是request.getRealPath("")不推荐使用,已摈弃。

getServlet().getServletContext().getRealPath("/");可以取代上者,都是取得应用绝对路径。

比如,有个servlet 叫 UploadServlet,它部署在tomcat 下面以后的绝对路径如下:

“C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet”

那么,
ServletContext.getRealPath("/") 返回
“C:\Program Files\apache-tomcat-8.0.3\webapps\UploadServlet”

ServletContext.getRealPath("/attachment")返回

“C:\ProgramFiles\apache-tomcat-8.0.3\webapps\UploadServlet\attachment”

ServletContext.getRealPath(“attachment”) 会导致NullPointerException

结论就是:

在使用ServletContext.getRealPath() 时,传入的参数是从 当前servlet 部署在tomcat中的文件夹算起的相对路径,要以"/" 开头,否则会找不到路径,导致NullPointerException

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐