• 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文件夹) 又有静态文件

        • 最后总结
  • 相关阅读:
    Nginx详解(正向代理、反向代理、负载均衡原理)
    java List的初始化
    nginx配置实现负载均衡
    SQL中where与having的区别
    数据库中where与having区别~~~
    group by的使用
    wm_concat函数
    Nginx配置upstream实现负载均衡1
    Nginx配置upstream实现负载均衡
    java
  • 原文地址:https://www.cnblogs.com/czy16/p/9597549.html
Copyright © 2020-2023  润新知