## 基本概念
### B-S 架构
B-S 架构即 Browser-Server 架构,用户只需要一个浏览器,就可以通过不同的 URL,访问不同的服务器端程序,开发、安装,部署,维护简单。
### B-S 架构下资源的分类
1. 静态资源
静态资源即使用静态网页开发技术发布的资源,对于所有访问用户来说,得到的结果都是相同的,如文本、图片、音频、视频、HTML、CSS、JavaScript。如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器,浏览器中内置了静态资源的解析引擎,可以解析展示静态资源。
2. 动态资源
动态资源即使用动态网页开发技术发布的资源,对于不同的访问用户来说,可能呈现不同的结果,如 JSP、Servlet、php。如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器。

### 网络通信三要素
1. IP:计算机或其他网络设备在网络中的唯一标识
2. 端口:应用程序在计算机中的唯一标识
3. 传输协议:规定了数据传输的规则,例如 TCP、UDP、HTTP协议
### JavaWeb和JavaEE
* 一般所说的 JavaWeb 即使用 Java 语言开发基于互联网的项目
* JavaEE 是指 Java 语言在企业级开发中使用的技术规范的总和,一共有 13 项大的规范
### Web 服务器软件
* 服务器:安装了**服务器软件**的计算机
* Web 服务器软件:用于接收用户的请求,处理请求,做出响应,在 Web 服务器软件中,可以部署 Web 项目,让用户通过浏览器来访问这些项目,所以也可称为 Web 容器
## Tomcat 服务器
Tomcat是一款来自 Apache 基金组织的开源、免费、中小型的服务器软件,支持少量的 JavaEE 规范,比如Servlet、JSP
### 下载
直接去官网下载即可
* [官网下载](http://tomcat.apache.org/)
### 安装
解压即用,但是注意安装目录不要有中文和空格

### 启动
启动前需要正确配置 Java 的环境变量,Windows 下需要用 JAVA_HOME 路径,然后运行 bin/startup.bat(Windows)、bin//startup.sh(Linux) 即可启动,tomcat 默认端口 8080,如果运行窗口,浏览器打开 http://localhost:8080 可以看到启动成功页面

### 关闭
**正常关闭**
运行 bin/shutdown.bat(sh) 或者 ctrl+C
**强制关闭**
点击启动窗口的 ×
### 部署项目
1. 直接将项目放到 /webapps 目录下即可
* 如果项目打成了 war 包,tomcat会自动解压缩
2. 配置 /conf/server.xml 文件
在 `` 标签体中配置 ` `
* docBase:项目存放的路径
* path:虚拟目录
3. 在 \conf\Catalina\localhost 目录下创建任意名称的 xml 文件,在文件中编写 ` `
* docBase:项目存放的路径
* 项目的虚拟目录即该 xml 文件的名称
**注**
* 推荐使用方法三,不会限制项目的存放位置,对 Tomcat 配置文件的侵入性最小
* 访问项目的方式为 http://localhost:8080/项目虚拟目录
### 修改 Tomcat 端口
配置 /cof/server.xml 文件,port 即为端口号,但是不建议修改,可以配合使用 Nginx 反向代理
```xml
```
### 动态项目的目录结构
动态项目中必须有 WEB-INF 目录,WEB-INF中 web.xml 文件为 Web项目的核心配置文件,classes 目录放置字节码文件,lib 目录存放依赖的外部 jar 包
## IDEA 集成 Tomcat
可以将 Tomcat 集成到 IDEA 中,方便开发,IDEA 会为每一个 Tomcat 部署的项目单独建立一份配置文件,项目启动时查看控制台的 log 即可看到配置文件的目录 `Using CATALINA_BASE: .../...`,使用 IDEA 启动项目,会在 `Project` 根目录生成 `out` 目录,其中的 `artifacts` 存放着真正的 Tomcat 部署的项目

点击 Configure 配置 Tomcat 的路径
## 参考
* [黑马 JavaWeb](https://www.bilibili.com/video/BV1J4411877m)
* [JavaWeb 复习笔记](https://blog.csdn.net/m0_37989980/article/details/103987924)

Tomcat 服务器介绍