intelliJ Idea + Tomcat部署(详细版本)

发布一个简单的项目

  1. 打开IntelliJ Idea—>New Project—>Java Enterprise—>Web Application 
    intelliJ Idea + Tomcat部署(详细版本)_第1张图片
    intelliJ Idea + Tomcat部署(详细版本)_第2张图片
  2. 修改index.jsp 
    intelliJ Idea + Tomcat部署(详细版本)_第3张图片
  3. File—>Project Structure—>Project Setting,因为Intellij Idea通常情况下会配置好,所以检查相关设置是否正确即可 
    intelliJ Idea + Tomcat部署(详细版本)_第4张图片
  4. 设置Modules选项中的Sources、Path、Dependencies 
    intelliJ Idea + Tomcat部署(详细版本)_第5张图片
    intelliJ Idea + Tomcat部署(详细版本)_第6张图片
    intelliJ Idea + Tomcat部署(详细版本)_第7张图片
  5. Edit Configuration—>add New Configuration—>Tomcat Server—>Local 
    intelliJ Idea + Tomcat部署(详细版本)_第8张图片
  6. 发布项目 
    intelliJ Idea + Tomcat部署(详细版本)_第9张图片
    intelliJ Idea + Tomcat部署(详细版本)_第10张图片
  7. 启动Tomcat,需要注意的是此时发布的web项目其目录为localhost:8080/demotwo,而项目的根目录即localhost:8080为tomcat webapps中自带的ROOT项目,具体原因涉及到tomcat的配置文件,会在之后详细说明 
    intelliJ Idea + Tomcat部署(详细版本)_第11张图片
    intelliJ Idea + Tomcat部署(详细版本)_第12张图片

Questions forTomcat

  • CATALINA_HOME与CATALINA_BASE的区别? 
    1. CATALINA_HOME即Tomcat的安装目录,CATALINA_BASE是Tomcat的工作目录。如果同时运行多个Tomcat实例,通常会配置多个工作目录。每个Tomcat实例独占一个工作目录,但是共享一个安装目录。
    2. Tomcat每个运行实例需要使用自己的conf、logs、temp、webapps、work和shared目录,因此CATALINA_BASE就 指向这些目录。 而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME就指向这些目录。intelliJ Idea在每次重新七栋Tomcat的时候都会重新建立或者说更新Tomcat工作目录的内容。
  • intelliJ Idea中的Tomcat项目为何在.IntelliJIdea2016.3\system\tomcat中? 
    1. intelliJ Idea在每次启动Tomcat服务器的时候都会修改CATALINA_BASE 
      Configure
  • tomcat服务器是如何找到localhost8080页面与localhost:8080/demotwo页面的? 
    1. IntelliJ Idea根据CATALINA_HOME的启动Tomcat服务器
    2. IntelliJ Idea在CATALINA_BASE指定的目录下生成项目独有的conf、logs、work等文件夹。
    3. 在CATALINA_BASE中的conf文件夹下,文件server.xml的Host标签指定了Tomcat的根目录(通常为CATALINA_HOME\webapps\ROOT),即在浏览器中显示的localhost:8080定位的就是此处。name属性和appBase属性起到了一个映射的作用 
      localhost
    4. conf的子目录Catalina\localhost\下的XML文件(以虚拟路径命名)Context标签中的path属性和docBase属性也起到了同样的映射作用。即name + path (localhost:8080/demotwo)对应的是项目的发布路径。 
      path
    5. 如果在发布项目的时候将虚拟路径设置成“\”,intelliJ Idea则不会生成Catalina子目录,而会在server.xml中将name属性映射到项目的发布路径

你可能感兴趣的:(Tomcat)