项目场景:
使用IDEA编译器写上传文件时,想要将上传的文件放入到根目录的webapp文件夹下,而不是target目录下。
如何找到webapp项目路径:下面详细说明。
问题描述
首先要确保tomcat服务器配置是war exploed模式。
什么是 war exploed模式?
war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
将tomcat服务器配置完毕后,进行接下来的操作。
将上述配置完成后,可以正常使用代码例:
String path = request.getSession().getServletContext().getRealPath("/images/");
获得到路径之后,就可以正常的使用文件上传功能了。
获取到的路径为:D:\idea_workspace\bookmanager\src\main\webapp\images\
原因分析:
因为idea默认选择在target目录下编译完成发布项目,所以我们想要获取到项目的webapp目录就需要修改掉默认的配置。
问题扩展:如果tomcat服务器配置是war模式 则获取到的路径是tomcat服务器中部署的项目文件夹中。
例:String path = request.getSession().getServletContext().getRealPath("/images/");
得到的路径是:D:\apache-tomcat-8.5.43\webapps\bookmanager\images