Tomcat是一个HTTP服务器,在了解了HTTP协议后,知道了HTTP协议就是HTTP客户端和HTTP服务器之间交互数据的格式,同时也通过ajax构造了HTTP客户端,HTTP服务器也同样可以通过JavaSocket来实现,Tomcat就是基于Java实现的一个开源免费,被广泛使用的HTTP服务器
所谓的HTTP服务器,本质上是还是一个基于TCP socket实现的服务器,只不过能够处理HTTP请求和返回HTTP响应
例如,我们要去搭建一个网站,要实现页面和服务器,实现服务器没必要从TCP socket这个级别来写, 因为已经有大佬们实现除了一些HTTP服务器,直接就可以处理HTTP请求了,我们只需要基于现成的HTTP服务器来开发就行了
HTTP服务器会提供一些API,使用这些API就可以直接对HTTP请求和响应进行处理了

bin:bin表示二进制,里面存放的是一些可执行程序 .sh 是以后在 linux 上用的 ;.bat 是在 windows 上用的,startup.bat 启动服务,双击即可使用
Tomcat与系统无关,是运行在JVM上的
conf:相关的配置文件
lib:运行Tomcat需要的类库
logs:运行时的日志文件,可以通过查看日志来定位一些问题
temp:临时文件夹
webapps:存放我们要运行的webapp application的文件夹,也是最常用的一个文件夹,通俗来讲,放的就是我们自己写的代码
work:Tomcat内部进行预编译的文件夹
【webapps目录】 web applications 的简称, 意思是用来存放 web 应用的文
件夹.
由于Tomcat是一个通用型的HTTP服务器,自身是不带有"业务逻辑"的,想要开发一个网站,就需要编写代码来实现业务逻辑,再和Tomcat相结合,一个网站的后端代码就可以称为是一个webapp
“业务逻辑”:指的就是这个网站是用来干什么的,例如百度的业务就是"搜索",阿里的业务就是"电商",字节的业务是"短视频"
在 bin 目录中, 双击 startup.bat 即可启动 Tomcat 服务器
看到形如以下内容的日志, 说明启动成功.

【注意】:
在 Windows 上通过 cmd 方式启动 Tomcat 会出现乱码. 但是不影响 Tomcat 的使用.
乱码的原因是 Tomcat默认按照 UTF-8 的编码方式处理中文. 而 windows 的 cmd 默认是 GBK 编码.
如果使用 Linux 或者 IDEA中的终端来启动 Tomcat, 则没有乱码问题. 因此此处的乱码我们暂时不处理.
在浏览器中输入 127.0.0.1:8080 即可看到 Tomcat 的默认欢迎页面,8080是Tomcat服务器的默认端口

【注意】:
Tomcat自身是一个基于Java实现的程序,要想能正确运行,是依赖Java的,因此要保证在运行服务器之前安装好Java
Tomcat有什么作用呢?
最大的用途就是,我们可以把写好的代码放到Tomcat中,然后就可以通过浏览器进行访问了,例如一些前端页面和Java代码
【静态页面与动态页面】
静态页面:是内容始终固定的页面. 即使 用户不同/时间不同/输入的参数不同 , 页面内容也不会发生变化
Tomcat 的主页 https://tomcat.apache.org/ 就是一个静态页面.
动态页面:指的就是用户不同/时间不同/输入的参数不同, 页面内容会发生变化
搜狗的搜索页面是一个动态页面,输入不同, 页面也会发生变化
【部署一个HTML页面】
- 将我们实现写好的HTML拷贝到Tomcat的webapps/ROOT目录中
- 在浏览器中通过 URL http://127.0.0.1:8080/resume2.html 来访问
【双击HTML进行访问与部署到服务器上后通过url访问】
既然直接双击HTML文件就可访问,为什么还要部署到服务器上后通过url来访问呢?
直接双击的方式,是让浏览器打开一个本地文件,这种方式的前提是本地必须有这个文件才行
通过IP地址和端口号的方式访问,是在访问网络上的一个文件,即使本地没有这个文件也可以(只不过此处的IP是环回IP,还是访问的本机)
【部署HTML到一个目录中】
实际开发中我们的 HTML 可能不止一个, 依赖的 CSS / JavaScript 文件也可能比较多. 这个时候就不适合全都拷贝到webapps/ROOT 目录中了(这就会显的比较乱).
我们可以创建一个单独的目录, 和 ROOT 并列, 来存放我们要部署的内容.
例如,我们现在想要将博客系统的前端页面部署到服务器中
- 在webapps中创建目录blog_system,将博客的前端页面所依赖的html全都放过到这个目录中
- 前端页面所依赖的HTML代码
- 在浏览器中输入http://127.0.0.1:8080/blog_system/blog_list.html
- 但是可以看到路径上和之前发生了变化.由于我们把这些文件都放到了 blog_system目录中, 通过 GET 请求访问这些文件时的路径也要带上
blor_system,此处的 blog_system 称为 Application Path (应用路径) 或者 Context Path (上下文路径)- 如果忘记写Context Path,会出现下面这个页面
【部署博客系统到云服务器】
先把要部署的目录打一个 zip压缩包
使用 xshell 连上云服务器, 并切换到 Tomcat 的 webapps 目录
- 把 blog.zip 拖拽到 xshell 中 (此时通过 rz 命令传输)
- 解压缩 blog.zip 使用命令unzip blog.zip
- 在浏览器通过 http://http://116.205.238.34:8080/blog_system/blog_edit.html访问页面
116.205.238.34是一个云服务器的外网IP,此时别人就能通过这个IP访问到部署到云服务器上的博客系统了
【注意】:
部署在本机 Tomcat 上的页面只能在局域网内部访问. 而云服务器上的 Tomcat 可以被整个互联网访问.
上面部署的都是一些静态页面,要想将动态页面部署到Tomcat上面,就需要使用到Tomcat提供的API,Servlet是其中的一个API,我们可以通过Servlet编写代码,然后部署到Tomcat上面,就是动态页面了