IDEA对以war包发布的一点观察

tagret文件夹里的classes文件夹,集结了 src-java-里的com文件夹 ,然后集结resources里的所有 。 tagert里的项目名字文件夹里 放的都是 webapp里的所有文件夹
也就是凡是被标记为root文件夹的,到最后编译,都是生成在class文件夹里

request.getSession().getServletContext() 获取的是Servlet容器对象,相当于tomcat容器了.

getRealPath(“/”) 获取实际路径,“/”指代项目根目录,所以代码返回的是项目在容器中的实际发布运行的根路径。

问题

那请问老师Tomcat 怎么部署才能让上传的文件在maven 项目的webapp/img目录下呢?

  1. 先用可运行项目跑起来,是可以实现上传功能的
  2. session.getServletContext.getRealPath("") 拿到的是运行时环境,而在idea里部署的话,运行环境不会是源代码webapp/img目录呢
  3. maven项目里src目录下的java,webapp和resource目录都不会参与部署,如果是通过idea部署的话,部署的位置是/target/tmall_ssm目录下呢
  4. 从你的截图来看,你应该采用的是tomcat独立部署方式吧。 这就对了呀,独立部署,那么获取到的路径肯定是tomcat那里的目录嘛。 想想真实环境,开发是在windows上做的,部署是在linux上做的,那么获取到的img路径,难道不应该是在linux上吗? 对嘛

额外发现

所以,一切还是最终生成的是tagert文件夹里的 项目名.文件夹,因为里面既有.class(都生成在WEB-INF里,还有lib文件夹) 又有静态文件

      • 最后总结
posted @ 2018-09-06 11:56  Pororo  阅读(155)  评论(0编辑  收藏  举报