Tomcat服务器详解!详细说明Tomcat的安装部署和Tomcat的目录结构

这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战

Web基本概念

  • 软件架构:
    • C/S: 客户端/服务器端
    • B/S: 浏览器/服务器端
  • 资源分类:
    • 静态资源:
      • 所有用户访问后,得到的结果都是一样的. 称为静态资源
      • 静态资源可以被浏览器直接解析
      • 比如 : html, css, JavaScript, jpg...
    • 动态资源:
      • 每个用户访问相同的资源后,得到的结果可能不一样. 称为动态资源
      • 动态资源被访问后,需要先转化为静态资源,再返回给浏览器,然后被浏览器解析
      • 比如 : servlet, jsp, php, asp...
  • 网络通信三要素:
    • 传输协议:
      • 基础协议:
        • TCP: 安全协议, 三次握手, 速度较慢
        • UDP: 不安全协议, 速度快
    • IP: 计算机在网络中的唯一标识
    • 端口: 应用程序在计算机中的唯一标识,范围为0 - 65536 (2^16^)

Web服务器

  • 基本概念:
    • 服务器: 安装了服务器软件的计算机
    • 服务器软件: 接收用户的请求,处理请求,作出响应
    • Web服务器软件:
    • Web服务器软件中,可以部署Web项目,用户可以通过浏览器访问部署的Web项目
    • Web服务器可以接收用户的请求,处理请求,作出响应
  • Web服务器软件:
    • Tomcat: 仅仅支持少量的Java EE规范servletjsp
    • JBoss
    • webLogic
    • webSphere

Tomcat安装

  • Tomcat官网下载Tomcat的安装包
  • 将下载的Tomcat压缩包,解压到需要安装的目录下即可完成Tomcat的安装

Tomcat目录结构

目录 目录下的文件 描述
bin / 存放Tomcat的启动,停止等批处理脚本文件
startup.bat
startup.sh
用于在WindowsLinux下的启动脚本
shutdow.bat
shutdown.sh
用于在WindowsLinux下的停止脚本
conf / 用于存放Tomcat的相关配置文件
context.xml 用于定义所有web应用均需加载的默认Context配置
如果web应用指定了自定义的Context.xml文件配置,该文件将被覆盖
catalina.properties Tomcat的环境变量配置
catalina.policy Tomcat运行的安全策略配置
logging.properties Tomcat的日志配置文件,可以通过该文件修改Tomcat的日志级别和日志路径等
server.xml Tomcat服务的核心配置
tomcat-user.xml 定义Tomcat默认的用户及角色映射信息配置
web.xml Tomcat中所有应用默认的部署描述文件,主要定义了基础ServletMIME映射
lib / Tomcat服务器的依赖包
logs / Tomcat默认的日志存放目录
webapps / Tomcat默认的应用部署目录
work / web应用JSP代码生成和编译的临时目录

Tomcat启动与停止

  • 在启动Tomcat之前要确保本机安装了Java环境,因为Tomcat是使用Java语言开发的
java -version
复制代码
  • 通过双击Tomcatbin目录下的启动脚本启动Tomcat
startup
复制代码
  • 访问Tomcat服务器主页
http://localhost:8080
复制代码
  • 通过双击Tomcatbin目录下的停止脚本停止Tomcat
shutdown
复制代码

Tomcat源码环境

  • Tomcat官网下载Tomcat源码
  • 解压源码,配置成Maven项目启动
  • 添加主目录home,并将conf,webapps目录移动到home目录中.创建pom.xml文件引入tomcat依赖
  • 配置IDEA启动类,配置MainClass : Bootstrap.Java
    • 打开Run/Debug Configuration, 配置Main class
    org.apache.catalina.startup.Bootstrap
    复制代码
    • 配置VM参数:
    -Duser.language=en
    -Duser.region=US
    -Dfileencoding=UTF-8
    -Dcatalina.home=/Users/chova/Documents/GitHub/SourceCode/tomcat/home
    -Dcatalina.base=/Users/chova/Documents/GitHub/SourceCode/tomcat/home
    -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    -Djava.util.logging.config.file=/Users/chova/Documents/GitHub/SourceCode/tomcat/home/conf/logging.properties
    复制代码
    • 问题: 为什么要配置 -Dcatalina.home=/Users/chova/Documents/GitHub/SourceCode/tomcat/home找到Bootstrap.java来启动main函数?
      • Bootstrap.java的逻辑中 ,JVM加载Bootstrap.class时,会去读取系统设置的catalina.home变量代表的路径作为Tomcat的安装路径
      • 如果项目启动时,没有设置catalina.home变量,会默认将当前路径作为Tomcat的安装路径
      • 如果同时没有设置Tomcat的工作路径catalina.base, 那么会将catalina.base的路径设置为catalina.home的变量
      • 因为当前源码路径不是Tomcat的安装路径,原因在于当前源码路径中没有Tomcat启动所需要的lib, 以及与catalina.base相关联的conf/, logs/ ,temp/, webapps/,work/ 等要与软件版本一致
      • 所以在下载源码时同时需要下载对应版本的Tomcat服务器软件安装包,用来给启动项目时指定catalina.home, 并且指定catalina.base

在这里插入图片描述

localhost:8080
复制代码

猜你喜欢

转载自juejin.im/post/7031756302468513828