Tomcat理论(Ⅰ)

目录

服务器流程图一览

一、JavaWeb前奏(了解)

1. C/S结构

 2. B/S结构

 3. 静态网页&动态网页

4.常见的网页

5.Web服务器

知名服务器:

​编辑

 二、Tomcat安装(熟练)

1.Tomcat概述

2.Tomcat的作用

 3.Tomcat安装

4.Tomcat测试

3.Tomcat分析(熟练)

1.Tomcat目录结构

2.Tomcat修改端口号

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安装(熟练)

1.Tomcat概述

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

Tomcat6 支持Servlet2.5;

Tomcat7,8,9 支持Servlet3.0;

2.Tomcat的作用

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

 3.Tomcat安装

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

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

3.Tomcat分析(熟练)

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应用程序提供了独立的配置选项,使得应用程序可以独立于服务器全局配置运行,增强了灵活性和可维护性。

 lib:Tomcat的类库,里面是一大堆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项目被访问时无需给出 项目名称。

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地址。

3.Tomcat结构重点

bin、conf、webapps、work。

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22047.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[实现Rpc] 通信-Muduo库的实现 | 完美转发 | reserve | unique_lock

目录 MudouBuffer ⭕右值引用 | 完美转发 右值引用 完美转发 实现原理 结合右值引用和完美转发的例子 LVProtocol ⭕vector 的 reserve 函数 1. 背景 2. reserve 函数原型 3. 示例代码 4. 输出结果 5. 结果解析 6. 关键点说明 MuduoConnection ⭕mudou 库 &am…

[OD E 100] 生成哈夫曼树

题目 题目描述 给定长度为 n 的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于 1 。请完成一个函数,根据输入的数字数组,生成哈夫曼树,并将哈夫曼树按照中序遍历输出。 为了保证输出的二…

网络安全知识:网络安全概念、内容和主要技术纵览

21世纪全世界的计算机都将通过Internet联到一起,随着Internet的发展,网络丰富的信息资源给用户带来了极大的方便,但同时也给上网用户带来了安全问题。由于Internet的开放性和超越组织与国界等特点,使它在安全性上存在一些隐患。而…

【机器学习】多元线性回归算法和正规方程解求解

多元线性方差和正规方差解 一、摘要二、多元线性回归介绍三、正规方程解的求解及代码实现 一、摘要 本文围绕多元线性回归的正规方程解展开,为初学者系统介绍了相关基本概念、求解方法、实际应用以及算法封装要点。 首先,深入阐释了正规方程解这一多元…

Arcmap和ArcgisPro重装及配置迁移

近期要重装一下ArcgisPro,在此记录并作为大家的借鉴 1.备份配置文件:其中Desktop10.8为Arcmap的配置文件 2.通过控制面板卸载,arcpro卸载时间较长,先将语言包等卸载,最后再卸载5G主程序,有些文章会介绍清理…

【天线】IFA天线知识点摘抄

MIFA天线的尺寸与性能关系 1,辐射效率 天线越小,辐射效率越低。唯一好处是减少PCB占用空间 2,带宽 一般MIFA天线在2.4G频段内的带宽:S11≤-10dB的范围为2.44GHz230MHz。较小的尺寸可能会限制带宽 3,增益 MIFA天线的…

路由基本配置

学习目标 • 根据拓扑图进行网络布线。 • 清除启动配置并将路由器重新加载为默认状态。 • 在路由器上执行基本配置任务。 • 配置并激活以太网接口。 • 测试并检验配置。 • 思考网络实施方案并整理成文档。 任务 1:网络布线 使用适当的电缆类型连接网络设备。…

力扣27. 移除元素(快慢指针)

Problem: 27. 移除元素 文章目录 题目描述思路Code 题目描述 思路 定义快慢指针均指向数组起始位置,当fast指针指向的元素不等于val时将fast指针指向的元素赋值给slow并让slow指针向前移动,fast指针一直向前移动 时间复杂度: O ( n ) O(n) O(n); 空间复杂…

jemalloc 5.3.0里的快速路径分配逻辑及可借鉴的高性能编程思路

一、背景 jemalloc 5.3.0的介绍,我们已经持续了一段时间了,在 jemalloc 5.3.0的tsd模块的源码分析-CSDN博客 博客里,我们介绍了jemalloc的编译和调试,在 跟踪jemalloc 5.3.0的第一次malloc的源头原因及jemalloc相关初始化细节拓展…

Vue前端开发-Vant之Layout组件

在Vant 中,Layout组件用于元素的响应式布局,分别由van-row和van-col两个组件来实现,前者表示行,后者被包裹在van-row组件中,表示列,共有24列栅格组成,在van-col组件中,span属性表示所…

【UCB CS 61B SP24】Lecture 5 - Lists 3: DLLists and Arrays学习笔记

本文内容为构建双向循环链表、使用 Java 的泛型将其优化为通用类型的链表以及数组的基本语法介绍。 1. 双向链表 回顾上一节课写的代码,当执行 addLast() 与 getLast() 方法时需要遍历链表,效率不高,因此可以添加一个指向链表末尾的索引&am…

Ubuntu 22.04 Install deepseek

前言 deepseekAI助手。它具有聊天机器人功能,可以与用户进行自然语言交互,回答问题、提供建议和帮助解决问题。DeepSeek 的特点包括: 强大的语言理解能力:能够理解和生成自然语言,与用户进行流畅的对话。多领域知识&…

边缘安全加速(ESA)套餐

为帮助不同规模和需求的企业选择合适的解决方案,边缘安全加速(ESA)提供了多种套餐。以下是四种主要套餐的介绍,每个套餐都根据企业需求提供不同的功能和服务水平,从基础安全保护到企业级的全面防护与加速。 1. 各版本详…

I²C简介

前言 IC(Inter-Integrated Circuit, 内置集成电路)总线是由Philips公司(现属于恩智浦)在上世纪80年代开发的两线式串行通信总线,用于连接微控制器及其外围设备,控制设备之间的通信。 IC总线的物理拓扑示意…

Frp部署文档

Frp部署文档 开源项目地址:https://github.com/fatedier/frp项目中文文档地址:https://github.com/fatedier/frp/blob/dev/README_zh.md官网文档地址: https://gofrp.org/zh-cn/docs/发布包地址:https://github.com/fatedier/frp/releases 要注意对应的…

ArcGIS Pro进行坡度与坡向分析

在地理信息系统中,坡度分析是一项至关重要的空间分析方法,旨在精确计算地表或地形的坡度,为地形特征识别、土地资源规划、环境保护、灾害预警等领域提供科学依据。本文将详细介绍如何利用ArcGIS Pro这一强大的地理信息系统软件,进…

从卡顿到丝滑:火山引擎DeepSeek-R1引领AI工具新体验

方舟大模型体验中心全新上线,免登录体验满血联网版Deep Seek R1 模型及豆包最新版模型:https://www.volcengine.com/experience/ark?utm_term202502dsinvite&acDSASUQY5&rcGO9H7M38 告别DeepSeek卡顿,探索火山引擎DeepSeek-R1的丝滑之旅 在A…

Python的那些事第二十八篇:数据分析与操作的利器Pandas

Pandas:数据分析与操作的利器 摘要 Pandas是基于Python的开源数据分析库,广泛应用于数据科学、机器学习和商业智能等领域。它提供了高效的数据结构和丰富的分析工具,能够处理结构化数据、时间序列数据以及复杂的数据转换任务。本文从Pandas的基础概念入手,深入探讨其核心…

Linux-CentOS 7安装

Centos 7镜像:https://pan.baidu.com/s/1fkQHYT64RMFRGLZy1xnSWw 提取码: q2w2 VMware Workstation:https://pan.baidu.com/s/1JnRcDBIIOWGf6FnGY_0LgA 提取码: w2e2 1、打开vmware workstation 2、选择主界面的"创建新的虚拟机"或者点击左上…

如何基于transformers库通过训练Qwen/DeepSeek模型的传统分类能力实现文本分类任务

文章目录 模型与环境准备文档分析源码解读模型训练及推理方式进阶:CPU与显存的切换进阶:多卡数据并行训练🔑 DDP 训练过程核心步骤🚫 DDP 不适用于模型并行⚖️ DDP vs. Model Parallelism⚙️ 解决大模型训练的推荐方法🎉进入大模型应用与实战专栏 | 🚀查看更多专栏…