IDEA部署tomcat原理小解
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原理小解相关推荐
- IDEA/Tomcat 原理:如何将 Tomcat 集成到 IDEA?实现由传统部署延伸到热部署 Java EE 项目?
文章目录 前言 一.将 Tomcat 集成到 IDEA 中 1.1.进入 IDEA Tomcat 配置页面 1.2.配置并集成 Tomcat 1.3.配置完成说明 1.4.集成检查 1.4.1.检查主 ...
- Docker原理及容器部署Tomcat(一)
Docker虚拟化是虚拟化技术解决方案中的一种,轻量级.高性能的虚拟化技术,是目前互联网使用最广泛的虚拟化技术: Docker虚拟化技术概念和原理 Docker虚拟化技术的产物Docker容器(虚拟机 ...
- tomcat原理简要分析,java
tomcat原理 tomcat位置 tomcat实际上是部署在服务器上的: tomcat作用 tomcat服务器是一个Servlet和JSP容器,它响应HTML页面的访问请求. 实际上Tomcat是A ...
- Tomcat原理系列之四:Tomat如何启动spring(加载web.xml)
Tomcat原理系列之四:Tomat如何启动spring 熟悉的web.xml ContextLoaderListener Tomcat的初始化StandardContext.startInterna ...
- Linux部署tomcat项目的方法,使用linux部署tomcat项目
1.下载对应的Tomcat服务器包 Apache Tomcat官网下载: http://tomcat.apache.org/download-70.cgi 比如我们使用的是 apache-tomca ...
- tomcat + spring mvc 原理(一):tomcat原理综述和静态架构
tomcat + spring mvc 原理(一):tomcat原理综述和静态架构 tomcat + spring mvc的运作模式 tomcat内部的基本容器构成 tomcat容器对应的外部配置 t ...
- SpringBoot嵌入Tomcat原理分析
SpringBoot嵌入Tomcat原理 内嵌Tomcat启动原理 首先,来到启动SpringBoot项目的地方,也就是朱配置类. @SpringBootApplication public clas ...
- 在docker上安装部署tomcat项目 超简单,拿来主义
在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...
- 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 ...
最新文章
- 张孝祥javascript学习笔记1---HTMLCSS
- OpenCV实现0到9数字识别OCR
- csh shell_shell编程(一):初始shell
- 霹雳小组4显示不了服务器,霹雳小组4-指令码
- ZOJ 2334 HDU 1512 Monkey King
- mstsc连接远程桌面如何挂载本地磁盘
- 机器学习:结点的实现,决策树代码实现(二)
- 不装oracle进行远程连接解决办法 .
- SalesOrder Text determination
- CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
- PTA12、 统计文字中的单词数量并按出现次数排序 (10 分)
- centos mysql 5.5.57_centos 6.5装mysql5.7
- FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking 效果展示
- hive实战读书笔记(第4章)hive表DDL
- CF1190E Tokitsukaze and Explosion 二分、贪心、倍增、ST表
- Linux命令 - vi命令
- 通用计数器的检定方案
- 实现网页原路返回:从哪个页面跳转过来就返回哪个页面
- 在线思维导图怎么用?MindNow给你分享
- PS 2019 Mac版 自学入门系列(十二)—— 应用滤镜
热门文章
- python datatime字符串和日期转换
- win 10升级后不能访问服务器文件夹,Win10系统文件夹无法访问拒绝访问怎么办?...
- useEffect、useMemo、useCallback使用场景分析
- 如何做好现场英语翻译
- 候选人选票程序:设计一个候选人选票程序。假设有3个候选人,在屏幕上输入要选择的候选人姓名,有10个人进行投票,最后输出每个人的得票结果。
- 基于JSP+SSM+Springboot的毕业生信息招聘平台【毕业论文+源码】
- 自定义微信订阅号(一、接入AI机器人篇)
- Megacli基本操作
- IDAP出现的问题汇总
- 烧烤店引流客源最快的方法