Servlets request.getServletContext().getRealPath()在jsp servlet中返回null

Servlets request.getServletContext().getRealPath()在jsp servlet中返回null,servlets,Servlets,声明如下: System.out.println("getServletContext : " + request.getServletContext().getRealPath(File.separator)); System.out.println(request.getServletContext()); 输出: getServletContext : null 声明如下: System.out.println("getServletContext : " + request.get

声明如下:

System.out.println("getServletContext : " + request.getServletContext().getRealPath(File.separator));
System.out.println(request.getServletContext());
输出:

getServletContext : null
声明如下:

System.out.println("getServletContext : " + request.getServletContext().getRealPath(File.separator));
System.out.println(request.getServletContext());
输出:

org.apache.catalina.core.ApplicationContextFacade@1cb0b163

我需要实际的文件路径,因为我需要将文件上载到应用程序目录中。

您查看了吗?不要使用getRealPath方法。是否将Word或Excel文档保存到Office的安装目录中?没有。理由很充分:这些是不属于那里的数据。如果重新安装Office,您确实不希望所有这些文档都显示出来。此处相同:上传的数据不属于应用程序目录。更不用说,如果你部署一个war文件,你甚至可能没有任何目录。是的,这是真的。但是我的文件上传到哪里呢?请给我更多的想法。对不起。我说的是应用程序目录。我的错误。我指的是我的项目目录。将从我的war文件创建的目录。那个文件夹可以吗?还是应该将文件保存在项目目录外的文件夹中@jbnizet如果它是从您的war文件创建的,则在您重新部署应用程序时,每当您修复一些错误并发布新版本时,它都会被删除并重新创建。将该文件夹的名称从“应用程序目录”更改为“项目目录”不会改变任何内容。您应该将文件保存在此目录之外。