在IDEA中开发 Servlet
1、在IDEA中开发 Servlet
1.1、创建web项目
IDEA2020.3中创建Javaweb工程完整记录
https://www.jb51.net/article/201043.htm
为项目添加 servl-api.jar包
在IDEA中配置Tomcat
!!1.2、web项目部署
默认部署方式
在 Idea 中默认的并不会把 web 项目真正的部署到 Tomcat 的 webapps
目录中
而是 通过为每个 web 项目创建一个独立的 Tomcat 副本,这个 Tomcat副本的位置在哪里呢?
打开 Tomcat 副本
下 webapps
目录,发现是空的,说明 web 项目并不在其中,实际位置是在conf/catalina/localhost
在demo3.xml文件
中,内容是 <Context/> 标签
,意思就是 通过 Tomcat 的 Context 组件完成项目的目录指定,
在 Context 组件的 docBase 属性
中会指定 Idea 对 web 项目编译后的目录 out/artifacts/…。 path
属性就是 访问的根路径
而我们观察一下 Tomcat 副本和 Tomcat 的目录比较,发现 Tomcat 副本中是缺少了很多文件夹的。意味着这个 Tomcat 副本还是依赖 Tomcat的
那IDEA如何启动 Tomcat 副本的呢?
IDEA 通过执行 Tomcat 的 catalina.bat
启动脚本启动 Tomcat,通过启动参数来指定启动 Tomcat 副本运行指定目录中的 web 项目
而我们一开始学习 Tomcat 的时候,是利用 bin/statup.bat
启动 Tomcat的,但实际上,startup.bat
还是会去执行 catalina.bat
脚本
IDEA 在启动 Tomcat 之前会先在操作系统中设置一些临时环境变量,这些变量会被Tomcat 的启动脚本所读取。
在 Catalina.bat 启动时 , 会先去判断 脚本中的CATALINA_HOME 以及 CATALINA_BASE 是否有默认值,如果没有则直接读取系统环境变量中的值作为他们的默认值。 由于 Idea 在启动 Tomcat 之前已经设置了临时环境变量,所以 tomcat 在启动后就会运行部署在Tomcat 副本中的 web 项目。
总结:
- IDEA 所生成的
Tomcat副本
和 IDEA 编译后的web工程
,通过 XXX.xml 中Context标签
已经联系起来 - Tomcat 中
Catalina.bat
通过去读取环境变量
去解析Tomcat副本
的web项目
在哪里,这样就不会运行当前的Tomcat
的web项目
——(移花接木)
将web项目部署到 Tomcat的webapps中
点击项目结构选项
指定输出 artifacts
的目录为 Tomcat 的 webapps
中的 demo
目录
启动 Tomcat,查看 demo
目录中的内容
如果本文对你有帮助,记得关注点赞昂!!!谢谢啦