• 计算机网络(八) | Tomcat


    Tomcat是什么

    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请求和响应进行处理了

    Tomcat的目录结构

    在这里插入图片描述

    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
    “业务逻辑”:指的就是这个网站是用来干什么的,例如百度的业务就是"搜索",阿里的业务就是"电商",字节的业务是"短视频"

    启动Tomcat服务器

    在 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上面,就是动态页面了

  • 相关阅读:
    SpringMVC实现文件的上传和下载
    零基础学Python的必备基础语法
    深度学习中的常用的归一化方法汇总
    诙谐有趣的《UVM实战》笔记——第二章 一个简单的UVM验证平台
    机器学习笔记 - HaGRID—手势识别图像数据集简介
    Python高级语法-类访问控制
    解决方案:可以ping别人,但是别人不能ping我
    【muduo源码剖析】Buffer类的设计
    laravel框架介绍(二)
    【深入MaxCompute】人力家:借助Information Schema合理治理费用
  • 原文地址:https://blog.csdn.net/m0_60631323/article/details/127571609