Tomcat理论(Ⅰ)

ops/2025/2/22 17:17:19/

目录

服务器流程图一览

一、JavaWeb前奏(了解)

1. C/S结构

 2. B/S结构

 3. 静态网页&动态网页

4.常见的网页

5.Web服务器

知名服务器

​编辑

Tomcat%E5%AE%89%E8%A3%85%EF%BC%88%E7%86%9F%E7%BB%83%EF%BC%89-toc" name="tableOfContents" style="margin-left:0px"> 二、Tomcat安装(熟练)

Tomcat%E6%A6%82%E8%BF%B0-toc" name="tableOfContents" style="margin-left:40px">1.Tomcat概述

Tomcat%E7%9A%84%E4%BD%9C%E7%94%A8-toc" name="tableOfContents" style="margin-left:40px">2.Tomcat的作用

Tomcat%E5%AE%89%E8%A3%85-toc" name="tableOfContents" style="margin-left:40px"> 3.Tomcat安装

Tomcat%E6%B5%8B%E8%AF%95-toc" name="tableOfContents" style="margin-left:40px">4.Tomcat测试

Tomcat%E5%88%86%E6%9E%90%EF%BC%88%E7%86%9F%E7%BB%83%EF%BC%89-toc" name="tableOfContents" style="margin-left:40px">3.Tomcat分析(熟练)

Tomcat%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84-toc" name="tableOfContents" style="margin-left:80px">1.Tomcat目录结构

Tomcat%E4%BF%AE%E6%94%B9%E7%AB%AF%E5%8F%A3%E5%8F%B7-toc" name="tableOfContents" style="margin-left:80px">2.Tomcat修改端口号

Tomcat%E7%BB%93%E6%9E%84%E9%87%8D%E7%82%B9-toc" name="tableOfContents" style="margin-left:80px">3.Tomcat结构重点


早在自搭建Tomcat(一)---Socket&ServerSocket-CSDN博客  这篇博客起,一共有六篇博客中详细阐述了手写搭建Tomcat的代码全过程,在此篇博客中讲解一下服务器的一些理论知识。

服务器流程图一览

首先上面是学习服务器理论知识的一份思维导图。

一、JavaWeb前奏(了解)

1. C/S结构

C/S 结构即客户端/服务器(Client/Server),例如QQ就是C/S结构的。我们每个 人电脑上都需要安装QQ的客户端,客户端软件向服务器端软件发送请求,服务器端给客户 端返回响应。

但是,因为客户端需要不断的更新,用户使用起来就比较麻烦。现在的C/S结构的客 户端已经好多了,可以提示用户更新,用户只需要点击更新就可以了。最早时需要用户自己 去官网上下载最新客户端,然后把老版本卸载,再去安装新版本。 

 2. B/S结构

B/S 结构即浏览器/服务器(Browser/Server),例如网站都是B/S结构的。当然, 网站也只是B/S结构体系软件中的一种而已。网上银行也都是B/S结构的!

B/S 结构的好处在于不需要用户更新客户端,客户端只需要有一个浏览器就OK。当软 件需要更新时,开发人员只需要关心服务器端就行。就像你在浏览器中访问百度时,发现百 度的主页发生了变化,但你也不需要更新什么。

 3. 静态网页&动态网页

早期在Internet上都是静态网页,即html页面。静态网页的数据都是不能自动变 化的,例如网页上的当前用户信息:“欢迎XXX登录本系统”,这说明当前用户名为XXX。 如果有其他用户登录系统就应该显示其他用户的名字,而且无需修改页面!说白一点,用户 名应该是变量,而不是常量!这是静态网页做不到的!

动态网页可以中包含变量,数据的变化就不是问题了(就比如将上面那个“欢迎XXX登录本系统”的例子连接上JDBC,并用cookie动态改变用户名,那么就是动态页面)。但动态网页只能在服务器端使用, 客户端浏览器只能识别静态网页。所以,如果用户请求的是动态网页,那么就需要服务器先 把动态网页转换成静态网页发送给客户端浏览器!

动态网页必须有服务器来处理。

4.常见的网页

  • 静态网页:

    • htm、html

  • 动态网页:

    • php、asp、aspx

    • jsp、.do、.action

我们要学习的是JSP(Javaserverpages),与其相关的是do(struts1)、action (struts2)

5.Web服务器

Web 服务器的作用是接收客户端的请求,给客户端作出响应。

知名服务器

  • Tomcat (Apache):用来开发学习使用:免费,开源

  • JBoss (Redhat 红帽):

  • Weblogic (Oracle):要钱的!使用 Tomcat 开发,项目写完了,放到 Weblogic 上运行;

  • Websphere (IBM):要钱的!与 Weblogic 相似。

Tomcat%E5%AE%89%E8%A3%85%EF%BC%88%E7%86%9F%E7%BB%83%EF%BC%89" name="%C2%A0%E4%BA%8C%E3%80%81Tomcat%E5%AE%89%E8%A3%85%EF%BC%88%E7%86%9F%E7%BB%83%EF%BC%89"> 二、Tomcat安装(熟练)

Tomcat%E6%A6%82%E8%BF%B0" name="1.Tomcat%E6%A6%82%E8%BF%B0">1.Tomcat概述

Tomcat 服务器由Apache提供,开源免费。开发学习使用最佳选择。安装Tomcat 之前需要先安装JDK,其实无论哪一种JavaWeb服务器都需要先安装JDK。我们现在使用 的Tomcat版本可以是Tomcat8.5或Tomcat9。

Tomcat6 支持Servlet2.5;

Tomcat7,8,9 支持Servlet3.0;

Tomcat%E7%9A%84%E4%BD%9C%E7%94%A8" name="2.Tomcat%E7%9A%84%E4%BD%9C%E7%94%A8">2.Tomcat的作用

当用户通过发送过来一个请求(通常是浏览器请求)后,Tomcat来接收请求,然后给用户返回响应(通常会是HTML,或是文件、图片等)。

Tomcat%E5%AE%89%E8%A3%85" name="%C2%A03.Tomcat%E5%AE%89%E8%A3%85"> 3.Tomcat安装

Tomcat%E6%B5%8B%E8%AF%95" name="4.Tomcat%E6%B5%8B%E8%AF%95">4.Tomcat测试

测试 Tomcat 需要在浏览器中输入:http://localhost:8080,或者是 http://127.0.0.1:8080。127.0.0.1 表示本机的IP地址,localhost表示本机的 主机名。

如果其他机器需要访问,那么要把localhost使用本机IP地址替换。

假如我的IP是192.168.1.100,你们要访问我机器上的Tomcat,那么需要在你们 的浏览器中访问:http://192.168.1.100:800

项目被访问到的必要条件 。

Tomcat%E5%88%86%E6%9E%90%EF%BC%88%E7%86%9F%E7%BB%83%EF%BC%89" name="3.Tomcat%E5%88%86%E6%9E%90%EF%BC%88%E7%86%9F%E7%BB%83%EF%BC%89">3.Tomcat分析(熟练)

Tomcat%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84" name="1.Tomcat%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84">1.Tomcat目录结构

有必要了解一下Tomcat的目录结构:
bin:该目录下存放的是可执行文件,有startup.bat和shutdown.bat文件, startup.bat 用来启动Tomcat,但需要先配置JAVA_HOME和shutdown.bat 用来停止Tomcat

在此就引申出来一个问题:配置环境变量的意义?

  1. 提供灵活性和便捷性:环境变量可以存储程序所需的配置信息,使得程序在运行时能够动态地获取资源路径(如bin目录)而无需硬编码固定的路径。这样,程序可以在不同的系统环境或场景下灵活运行,无需手动修改代码中的路径信息,从而实现随时随地的调用。

  2. 增强系统的安全性:通过环境变量管理配置信息,可以避免直接暴露敏感的系统路径或配置细节,从而在一定程度上保护系统的安全性和隐私性。

 conf:这是一个非常非常重要的目录,这个目录下有三个最为重要的文件:

①server.xml

  • 功能:配置整个服务器的信息。
  • 用途:例如,可以通过修改server.xml来设置服务器的端口号、定义虚拟主机、配置连接器(Connector)等。
  • 重要性:它是服务器的核心配置文件,决定了服务器的基本运行参数和架构。

②web.xml

  • 功能:部署描述符文件。
  • 用途:定义了Web应用程序的全局配置信息,包括Servlet映射、过滤器(Filter)、监听器(Listener)等。
  • MIME类型web.xml中还注册了许多MIME(Multipurpose Internet Mail Extensions)类型,这些类型用于说明文档的内容类型。

MIME(Multipurpose Internet Mail Extensions)类型是一种用于标识文件类型和格式的网络标准。它通过一个字符串(如text/htmlimage/jpeg)告诉客户端(如浏览器)如何处理接收到的数据,例如显示网页、渲染图片或下载文件。MIME类型由类型(如textimage)和子类型(如htmljpeg)组成,广泛应用于Web开发和网络通信中,确保数据正确传输和解析。

③context.xml

  • 功能:定义上下文(Context)级别的配置。
  • 用途:用于配置特定Web应用程序的运行环境,例如资源链接(Resource Links)、环境变量(Environment Variables)等。
  • 重要性:它为每个Web应用程序提供了独立的配置选项,使得应用程序可以独立于服务器全局配置运行,增强了灵活性和可维护性。

 libTomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的 jar 文件,可以把它放到这个目录中,当然也可以把项目依赖的jar文件放到这 个目录中,这个目录中的jar所有项目都可以共享之; 

logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动 Tomcat 时有错误,那么异常也会记录在日志文件中。

temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除! 

webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录 下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。  

work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当 客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再 编译Java文件生成class文件,生成的java和class文件都会存放到这个目 录下。

LICENSE:许可证。

NOTICE:说明文件。

你应该已经发现,访问ROOT项目时无需给出项目名,其实localhost是一个主 机名,每个主机都会对应一个项目空间,localhost对应的就是Tomcat目录下的 webapps,每个项目空间都可以有一个名为ROOT项目,这个ROOT项目被访问时无需给出 项目名称。

Tomcat%E4%BF%AE%E6%94%B9%E7%AB%AF%E5%8F%A3%E5%8F%B7" name="2.Tomcat%E4%BF%AE%E6%94%B9%E7%AB%AF%E5%8F%A3%E5%8F%B7">2.Tomcat修改端口号

打开conf\server.xml(这里面存放着服务器配置信息)

http 默认端口号为80,也就是说在URL中不给出端口号时就表示使用80端口。当 然你也可以修改为其它端口号。修改之后必须重新启动服务器

80 端口是默认的端口,如果使用80端口访问时就可以省略端口。

如果我们改成80端口,访问时就可以不加端口号。http://localhost/

项目提供给其他同学访问的必要条件:

1. 和其他同学在同一局域网内或本机在公网上有固定IP

2. Web项目部署到tomcat后,如果使用80端口的话,需要进行公安部备案(百度搜索)

引申问题:如何查看本机IP地址?  终端输入ipconfig查看 。

注:127.0.1和localhost代表本机,仅限于本机使用,如果想让其他人访问自己的电脑,需要用到IP地址。

Tomcat%E7%BB%93%E6%9E%84%E9%87%8D%E7%82%B9" name="3.Tomcat%E7%BB%93%E6%9E%84%E9%87%8D%E7%82%B9">3.Tomcat结构重点

bin、conf、webapps、work。

bin 目录中东西我们只关心启动和停止 Tomcat,现在大家也应该掌握了!

webapps 目录下存放的是项目,每个文件夹都对应一个项目,而且在访问项目时,其中包含了项目名,而项目名往往都对应项目目录名。这个也应该可以掌握了!还有就是 JavaEE Web 项目的目录结构,这个必须必须背下来!

work:这个东西有点小难度,现在只需要知道它存放的文件是通过 webapps 目录下的项目在运行时产生的,最终运行的都是 work 目录下的文件。这个目录下的东西可以删除,然后再次运行时还会产生!

上述就是有关Tomcat的相关理论知识。 


http://www.ppmy.cn/ops/160557.html

相关文章

超级详细,知识图谱系统的理论详解+部署过程

知识图谱系统(Knowledge Graph System)是一种用于表示、存储、查询和推理知识的系统。它通过结构化的方式将现实世界中的实体、概念及其相互关系组织成一个图结构,从而帮助机器理解和处理复杂的知识。 知识图谱的核心组成部分 实体(Entities): 实体是知识图谱中的节点,…

使用excel中的VBA合并多个excel文件

需求是这样的: 在Windows下,用excel文件让多个小组填写了统计信息,现在我需要把收集的多个文件汇总到一个文件中,前三行为标题可以忽略,第四行为收集信息的列名,处理每一行数据的时候,发现某一行…

如何使用 DeepSeek R1 构建开源 ChatGPT Operator 替代方案

开源大型语言模型(LLMs)的兴起使得创建 AI 驱动的工具比以往任何时候都更容易,这些工具可以与 OpenAI 的 ChatGPT Operator 等专有解决方案相媲美。在这些开源模型中,DeepSeek R1 以其强大的推理能力、自由的可访问性和适应性而脱…

基于vue和微信小程序的校园自助打印系统(springboot论文源码调试讲解)

第3章 系统设计 3.1系统功能结构设计 本系统的结构分为管理员和用户、店长。本系统的功能结构图如下图3.1所示: 图3.1系统功能结构图 3.2数据库设计 本系统为小程序类的预约平台,所以对信息的安全和稳定要求非常高。为了解决本问题,采用前端…

Github 2025-02-20 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2025-02-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10JavaScript项目1Moby 项目 - 软件容器化的开源工具集 创建周期:4059 天开发语言:Go协议类型:Apache License 2.0Star数量:67419 个…

springboot单机支持1w并发,需要做哪些优化

Spring Boot单机如何支持1万并发,需要做哪些优化。 首先,我得回想一下Spring Boot处理高并发的关键点在哪里。可能涉及到多个层面,比如Web服务器配置、数据库优化、代码层面的调整,还有JVM调优之类的。 首先,用户可能…

【单臂路由配置】

【单臂路由配置】 设备接口IP子网网关vlanR1G0/0/1.1192.168.1.254255.255.255.0NAvlan10R1G0/0/1.2192.168.2.254255.255.255.0NAvlan20R1G0/0/1.3192.168.3.254255.255.255.0NAvlan30PC1e0/0/1192.168.1.1255.255.255.0192.168.1.254vlan10PC2e0/0/1192.168.2.1255.255.255.0…

PHP脚本示例

/*** desc 清理产品商品无效数据* param Input $input* php think goods -m Clear -a clearGoods --endTime2020-01-01 -vvv* return void* author 陈龙* date 2024-04-02 9:45*/public function clearGoods(Input $input){$options $input->getOptions();$start_time mic…