Tomcat服务器详解!详细说明Tomcat的安装部署和Tomcat的目录结构
Web基本概念
软件架构:
C/S: 客户端/服务器端
B/S: 浏览器/服务器端
资源分类:
每个用户访问相同的资源后,得到的结果可能不一样. 称为动态资源
动态资源被访问后,需要先转化为静态资源,再返回给浏览器,然后被浏览器解析
比如 : servlet, jsp, php, asp...
所有用户访问后,得到的结果都是一样的. 称为静态资源
静态资源可以被浏览器直接解析
比如 : html, css, JavaScript, jpg...
静态资源:
动态资源:
网络通信三要素:
基础协议:
TCP: 安全协议, 三次握手, 速度较慢
UDP: 不安全协议, 速度快
传输协议:
IP: 计算机在网络中的唯一标识
端口: 应用程序在计算机中的唯一标识,范围为0 - 65536 (2^16^)
Web服务器
基本概念:
服务器: 安装了服务器软件的计算机
服务器软件: 接收用户的请求,处理请求,作出响应
Web服务器软件:
在Web服务器软件中,可以部署Web项目,用户可以通过浏览器访问部署的Web项目
Web服务器可以接收用户的请求,处理请求,作出响应
Web服务器软件:
Tomcat: 仅仅支持少量的Java EE规范servlet和jsp
JBoss
webLogic
webSphere
Tomcat安装
Tomcat官网下载Tomcat的安装包
将下载的Tomcat压缩包,解压到需要安装的目录下即可完成Tomcat的安装
Tomcat目录结构
目录 | 目录下的文件 | 描述 |
---|---|---|
bin | / | 存放Tomcat的启动,停止等批处理脚本文件 |
startup.bat startup.sh | 用于在Windows和Linux下的启动脚本 | |
shutdow.bat shutdown.sh | 用于在Windows和Linux下的停止脚本 | |
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中所有应用默认的部署描述文件,主要定义了基础Servlet和MIME映射 | |
lib | / | Tomcat服务器的依赖包 |
logs | / | Tomcat默认的日志存放目录 |
webapps | / | Tomcat默认的应用部署目录 |
work | / | web应用JSP代码生成和编译的临时目录 |
Tomcat启动与停止
在启动Tomcat之前要确保本机安装了Java环境,因为Tomcat是使用Java语言开发的
java -version 复制代码
通过双击Tomcat的bin目录下的启动脚本启动Tomcat
startup 复制代码
访问Tomcat服务器主页
http://localhost:8080 复制代码
通过双击Tomcat的bin目录下的停止脚本停止Tomcat
shutdown 复制代码
Tomcat源码环境
Tomcat官网下载Tomcat源码
解压源码,配置成Maven项目启动
添加主目录home,并将conf,webapps目录移动到home目录中.创建pom.xml文件引入tomcat依赖
配置IDEA启动类,配置MainClass : Bootstrap.Java
org.apache.catalina.startup.Bootstrap 复制代码
-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 复制代码
在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
问题: 为什么要配置 -Dcatalina.home=/Users/chova/Documents/GitHub/SourceCode/tomcat/home找到Bootstrap.java来启动main函数?
配置VM参数:
打开Run/Debug Configuration, 配置Main class
完成配置,启动tomcat项目
Tomcat源码启动部署问题解决
启动完成,访问Tomcat服务器:
localhost:8080
作者:攻城狮Chova
链接:https://juejin.cn/post/7031756302468513828