详细的记叙了intelliJ Idea中Tomcat的部署,主要是在Tomcat部署的时候一些细节性的东西。环境:intelliJ Idea(Ultimate) + Tomcat 9.0
发布一个简单的项目
- 打开IntelliJ Idea—>New Project—>Java Enterprise—>Web Application
- 修改index.jsp
- File—>Project Structure—>Project Setting,因为Intellij Idea通常情况下会配置好,所以检查相关设置是否正确即可
- 设置Modules选项中的Sources、Path、Dependencies
- Edit Configuration—>add New Configuration—>Tomcat Server—>Local
- 发布项目
- 启动Tomcat,需要注意的是此时发布的web项目其目录为localhost:8080/demotwo,而项目的根目录即localhost:8080为tomcat webapps中自带的ROOT项目,具体原因涉及到tomcat的配置文件,会在之后详细说明
Questions forTomcat
- CATALINA_HOME与CATALINA_BASE的区别
- CATALINA_HOME即Tomcat的安装目录,CATALINA_BASE是Tomcat的工作目录。如果同时运行多个Tomcat实例,通常会配置多个工作目录。每个Tomcat实例独占一个工作目录,但是共享一个安装目录。
- Tomcat每个运行实例需要使用自己的conf、logs、temp、webapps、work和shared目录,因此CATALINA_BASE就 指向这些目录。 而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME就指向这些目录。intelliJ Idea在每次重新七栋Tomcat的时候都会重新建立或者说更新Tomcat工作目录的内容。
- intelliJ Idea中的Tomcat项目为何在.IntelliJIdea2016.3system omcat中?
- intelliJ Idea在每次启动Tomcat服务器的时候都会修改CATALINA_BASE
- intelliJ Idea在每次启动Tomcat服务器的时候都会修改CATALINA_BASE
- tomcat服务器是如何找到localhost8080页面与localhost:8080/demotwo页面的?
- IntelliJ Idea根据CATALINA_HOME的启动Tomcat服务器
- IntelliJ Idea在CATALINA_BASE指定的目录下生成项目独有的conf、logs、work等文件夹。
- 在CATALINA_BASE中的conf文件夹下,文件server.xml的Host标签指定了Tomcat的根目录(通常为CATALINA_HOMEwebappsROOT),即在浏览器中显示的localhost:8080定位的就是此处。name属性和appBase属性起到了一个映射的作用
- conf的子目录Catalinalocalhost下的XML文件(以虚拟路径命名)Context标签中的path属性和docBase属性也起到了同样的映射作用。即name + path (localhost:8080/demotwo)对应的是项目的发布路径。
- 如果在发布项目的时候将虚拟路径设置成“”,intelliJ Idea则不会生成Catalina子目录,而会在server.xml中将name属性映射到项目的发布路径