ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Servlet的web部署是怎么回事呢?

2021-09-10 18:06:29  阅读:177  来源: 互联网

标签:web bat 副本 Tomcat 怎么回事 启动 IDEA Servlet


在IDEA中开发 Servlet

1、在IDEA中开发 Servlet

1.1、创建web项目

IDEA2020.3中创建Javaweb工程完整记录

https://www.jb51.net/article/201043.htm

为项目添加 servl-api.jar包

image-20210525175640053

image-20210525175650448

image-20210525175657525

在IDEA中配置Tomcat

image-20210525175932862

image-20210525180009247

!!1.2、web项目部署

默认部署方式

在 Idea 中默认的并不会把 web 项目真正的部署到 Tomcat 的 webapps 目录中

image-20210525182118011

而是 通过为每个 web 项目创建一个独立的 Tomcat 副本这个 Tomcat副本的位置在哪里呢?

image-20210525182350940

image-20210525182418546

打开 Tomcat 副本webapps目录,发现是空的,说明 web 项目并不在其中,实际位置是在conf/catalina/localhost

image-20210525182543807

demo3.xml文件中,内容是 <Context/> 标签,意思就是 通过 Tomcat 的 Context 组件完成项目的目录指定

在 Context 组件的 docBase 属性 中会指定 Idea 对 web 项目编译后的目录 out/artifacts/…。 path 属性就是 访问的根路径

image-20210525182929750

而我们观察一下 Tomcat 副本和 Tomcat 的目录比较,发现 Tomcat 副本中是缺少了很多文件夹的。意味着这个 Tomcat 副本还是依赖 Tomcat的

image-20210525183229274

那IDEA如何启动 Tomcat 副本的呢?

IDEA 通过执行 Tomcat 的 catalina.bat 启动脚本启动 Tomcat,通过启动参数来指定启动 Tomcat 副本运行指定目录中的 web 项目

而我们一开始学习 Tomcat 的时候,是利用 bin/statup.bat 启动 Tomcat的,但实际上,startup.bat 还是会去执行 catalina.bat 脚本

image-20210525183456085

IDEA 在启动 Tomcat 之前会先在操作系统中设置一些临时环境变量,这些变量会被Tomcat 的启动脚本所读取

image-20210525183804617

在 Catalina.bat 启动时 , 会先去判断 脚本中的CATALINA_HOME 以及 CATALINA_BASE 是否有默认值,如果没有则直接读取系统环境变量中的值作为他们的默认值。 由于 Idea 在启动 Tomcat 之前已经设置了临时环境变量,所以 tomcat 在启动后就会运行部署在Tomcat 副本中的 web 项目。

总结:

  • IDEA 所生成的 Tomcat副本 和 IDEA 编译后的web工程,通过 XXX.xml 中 Context标签 已经联系起来
  • Tomcat 中 Catalina.bat 通过去读取 环境变量 去解析 Tomcat副本web项目 在哪里,这样就不会运行 当前的Tomcatweb项目 ——(移花接木)

image-20210525180517718

将web项目部署到 Tomcat的webapps中

点击项目结构选项

image-20210525185944784

指定输出 artifacts 的目录为 Tomcat 的 webapps 中的 demo 目录

image-20210525185958068

启动 Tomcat,查看 demo 目录中的内容

image-20210525190053971


                                    如果本文对你有帮助,记得关注点赞昂!!!谢谢啦

在这里插入图片描述

标签:web,bat,副本,Tomcat,怎么回事,启动,IDEA,Servlet
来源: https://blog.csdn.net/qq_41907769/article/details/120226984

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有