Tomcat基本概念
Web基本概念
- 软件架构:
- C/S: 客户端/服务器端
- B/S: 浏览器/服务器端
- 资源分类:
- 静态资源:
- 所有用户访问后,得到的结果都是一样的. 称为静态资源
- 静态资源可以被浏览器直接解析
- 比如 : html, css, JavaScript, jpg…
- 动态资源:
- 每个用户访问相同的资源后,得到的结果可能不一样. 称为动态资源
- 动态资源被访问后,需要先转化为静态资源,再返回给浏览器,然后被浏览器解析
- 比如 : servlet, jsp, php, asp…
- 静态资源:
- 网络通信三要素:
- 传输协议:
- 基础协议:
- TCP: 安全协议, 三次握手, 速度较慢
- UDP: 不安全协议, 速度快
- 基础协议:
- IP: 计算机在网络中的唯一标识
- 端口: 应用程序在计算机中的唯一标识,范围为0 - 65536 (216)
- 传输协议:
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
- 打开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
- 完成配置,启动tomcat项目
- Tomcat源码启动部署问题解决
- 启动完成,访问Tomcat服务器:
localhost:8080