IDEA部署tomcat原理小解
最近看到一个视频对IDEA部署启动tomcat有了新的理解。下面和大家分享一下。 
1.tomcat部署项目的三种方式 
在纯tomcat环境下,不使用开发工具tomcat部署项目有三种方式。

①把html放到tomcat的webapps目录下的hello文件夹中,如下图。

启动tomcat访问http://localhost:8080/hello/hello.html就能够连接到hello.html了。 
这里稍微提一下虚拟路径即web项目中ContextPath,servlet中配置的是ServletPath。上面这种方式配置的虚拟路径”/hello”和项目路径是相等的。但是这个方法配置的web项目都要在webapps的目录下。eclipse的web项目部署方法应该就是这种。 
②第二种方式如下图:

区别与第一种方式,第二种的项目放在了d盘,没有在webapps的目录下。那么tomcat如何访问里面的资源呢?见下图

在tomcat的conf下有一个server.xml文件打开编辑文件在上图所圈位置加入了一段代码

<Context docBase = "D:\hello" path = "/hi" />
1
不难发现,其中docBase指的是项目路径,path为虚拟路径。这里项目路径就和虚拟路径不一致了。大家可以联想到一个点:request有一个很常用的方法,就是request.getContextPath(),其实获取的就是这里的Context标签中属性名为path的值。启动tomcat,访问http://localhost:8080/hi/hello.html即能正确连接资源hello.html。使用eclipse的同学不妨去看一下自己的conf下的server.xml,会发现之前的web项目都有在context标签内配置。 
③以上两种都不是idea的部署方式,idea的部署方式是第三种.。 
在tomcat的conf\Catalina\localhost新建一个xml文件如下图

还是熟悉的配置,但是不需要在server.xml中修改,防止手残,把主要配置改了。 
访问http://localhost:8080/hey/hello.html即可访问到资源。这里要说明一下,第三章方法的虚拟路径为xml文件名字,而不是xml中配置的path,当你修改xml文件中的path与xml文件名字不一致时,以xml文件名字作为虚拟路径可以访问到资源,而用path中配置作为虚拟路径则访问不到资源。 
2.idea的部署方式 
在idea中启动tomcat时会看到下面这段日志

这里使用的是之前做的小demo,不用在意。我们把路径复制在计算机中打开

打开下图的xml文件

可以从配置中看出虚拟路径配置的和xml文件的名称一致。这个虚拟路径是我在idea的tomcat配置中的部署选项中配置的如下图

 
而项目的文件路径则在D:\ideawork\mycrm\out\artifacts\mycrm_war_exploded。

这里有一个点蛮有意思: 
idea采用的是上面说的第三种部署方式,而第三种部署的虚拟路径其实是xml文件名就算不配置Context标签中的Path也能访问到资源,那么idea为什么多此一举配置了 
path而且path中的值和xml文件名一致,是单纯的巧合吗,有什么意义? 
其实很简单,前面提到request.getContextPath获得的是Context标签中属性名为path的值。但是第三种部署的虚拟路径其实是xml文件名,保持一致可以认为获得的COntextPath就是虚拟路径。这样就可以访问到资源页面

END!
————————————————
版权声明:本文为CSDN博主「314程序员」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41116058/article/details/81435084

IDEA部署tomcat原理小解相关推荐

  1. IDEA/Tomcat 原理:如何将 Tomcat 集成到 IDEA?实现由传统部署延伸到热部署 Java EE 项目?

    文章目录 前言 一.将 Tomcat 集成到 IDEA 中 1.1.进入 IDEA Tomcat 配置页面 1.2.配置并集成 Tomcat 1.3.配置完成说明 1.4.集成检查 1.4.1.检查主 ...

  2. Docker原理及容器部署Tomcat(一)

    Docker虚拟化是虚拟化技术解决方案中的一种,轻量级.高性能的虚拟化技术,是目前互联网使用最广泛的虚拟化技术: Docker虚拟化技术概念和原理 Docker虚拟化技术的产物Docker容器(虚拟机 ...

  3. tomcat原理简要分析,java

    tomcat原理 tomcat位置 tomcat实际上是部署在服务器上的: tomcat作用 tomcat服务器是一个Servlet和JSP容器,它响应HTML页面的访问请求. 实际上Tomcat是A ...

  4. Tomcat原理系列之四:Tomat如何启动spring(加载web.xml)

    Tomcat原理系列之四:Tomat如何启动spring 熟悉的web.xml ContextLoaderListener Tomcat的初始化StandardContext.startInterna ...

  5. Linux部署tomcat项目的方法,使用linux部署tomcat项目

    1.下载对应的Tomcat服务器包 Apache Tomcat官网下载: http://tomcat.apache.org/download-70.cgi 比如我们使用的是  apache-tomca ...

  6. tomcat + spring mvc 原理(一):tomcat原理综述和静态架构

    tomcat + spring mvc 原理(一):tomcat原理综述和静态架构 tomcat + spring mvc的运作模式 tomcat内部的基本容器构成 tomcat容器对应的外部配置 t ...

  7. SpringBoot嵌入Tomcat原理分析

    SpringBoot嵌入Tomcat原理 内嵌Tomcat启动原理 首先,来到启动SpringBoot项目的地方,也就是朱配置类. @SpringBootApplication public clas ...

  8. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  9. ansible部署tomcat及 include机制

    1.本文尝试着使用ansible部署tomcat,test为测试工程 roles如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

最新文章

  1. 张孝祥javascript学习笔记1---HTMLCSS
  2. OpenCV实现0到9数字识别OCR
  3. csh shell_shell编程(一):初始shell
  4. 霹雳小组4显示不了服务器,霹雳小组4-指令码
  5. ZOJ 2334 HDU 1512 Monkey King
  6. mstsc连接远程桌面如何挂载本地磁盘
  7. 机器学习:结点的实现,决策树代码实现(二)
  8. 不装oracle进行远程连接解决办法 .
  9. SalesOrder Text determination
  10. CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
  11. PTA12、 统计文字中的单词数量并按出现次数排序 (10 分)
  12. centos mysql 5.5.57_centos 6.5装mysql5.7
  13. FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking 效果展示
  14. hive实战读书笔记(第4章)hive表DDL
  15. CF1190E Tokitsukaze and Explosion 二分、贪心、倍增、ST表
  16. Linux命令 - vi命令
  17. 通用计数器的检定方案
  18. 实现网页原路返回:从哪个页面跳转过来就返回哪个页面
  19. 在线思维导图怎么用?MindNow给你分享
  20. PS 2019 Mac版 自学入门系列(十二)—— 应用滤镜

热门文章

  1. python datatime字符串和日期转换
  2. win 10升级后不能访问服务器文件夹,Win10系统文件夹无法访问拒绝访问怎么办?...
  3. useEffect、useMemo、useCallback使用场景分析
  4. 如何做好现场英语翻译
  5. 候选人选票程序:设计一个候选人选票程序。假设有3个候选人,在屏幕上输入要选择的候选人姓名,有10个人进行投票,最后输出每个人的得票结果。
  6. 基于JSP+SSM+Springboot的毕业生信息招聘平台【毕业论文+源码】
  7. 自定义微信订阅号(一、接入AI机器人篇)
  8. Megacli基本操作
  9. IDAP出现的问题汇总
  10. 烧烤店引流客源最快的方法