快速入门学会tomcat!

快速入门学会tomcat!

  • 最新Tomcat下载安装详细教程
  • Tomcat是什么?
  • 一、网络协议/网络协议包
    • 网络协议包:
  • 二、Http网络协议包:
  • 三、Http网络协议包分类:
    • 1.Http请求协议包:
    • 2.Http响应协议包:
    • 3)由Http服务器负责将Http响应协议包推送回发起请求的浏览器
  • 四、Http请求协议包内部结构:
    • 1.请求行:
    • 2.请求头:
    • 3.空白行:
    • 4.请求体:
  • 五、Http响应协议包内部结构
    • 1.状态行:
    • 2.响应头:
    • 3.空白行:
    • 4.响应体:
  • 六、Http服务器介绍
  • 七、Http服务器分类:
  • 八、tomcat服务器安装与配置
  • 九、tomcat服务器启动与关闭
  • 十、tomcat服务器启动失败原因
    • 1.忘记配置JAVA_HOME
    • 2.JAVA_HOME地址写错了
    • 3.CATALINA_HOME地址写错了
    • 4.tomcat服务器默认端口号8080.一个计算机只能启动一个tomcat
  • 十一、tomcat服务器工作文件
  • 十二、第一次BS通信模拟
  • 十三、标准网站内部结构
  • 十四、模拟tomcat调用动态资源文件
  • 十五、适配器设计模式
  • 十六、模板设计模式:

文章转自:https://mp.ofweek.com/Internet/a156714965187
各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

最新Tomcat下载安装详细教程

Tomcat下载链接: Tomcat下载
https://blog.csdn.net/hellow_xqs/article/details/135371205?spm=1001.2014.3001.5501

Tomcat是什么?

Tomcat是web容器。你在做web项目时,多数需要http协议,也就是基于请求和响应,比如你在百度输入一行内容搜索,那么百度服务器如何处理这个请求呢,他需要创建servlet来处理,servlet其实就是java程序,只是在服务器端的java程序servlet通过配置文件拦截你的请求,并进行相应处理,然后展示给你相应界面,那么servlet如何创建?

这时候tomcat用到了,它就是帮助你创建servlet的东西,所以也称web容器,没有它,没法运行web项目。相对应的web容器有很多,比如JBOSS,WEBLOGIC等。

Tomcat是一个应用服务器。他可以运行你按照J2EE中的Servlet规范编写好的Java程序。

简单的说它是一个Web网站的运行容器,把你写好的网站放进去就可以运行。

一、网络协议/网络协议包

在互联网通信过程中,在网络传递信息都是二进制形式。

此时接收方接收到信息之后必须进行一次解析。

但是由于传递信息量相对较大,增加接收方解析难度

浏览器: http://localhost:8080/myWeb/index.html

1010101010101010101011111000110101010

网络协议包:

一组有规律二进制数据,存在固定空间。在指定空间下专门存放指定数据,降低接收方解析难度

0000 服务端计算机ip地址 0000 Http服务器端口号 0000 资源文件 0000

二、Http网络协议包:

在B/S通信结构下,浏览器发送请求信息以及服务端返回资源文件内容都是通过Http网络协议包进行传递

三、Http网络协议包分类:

1.Http请求协议包:

1)在浏览器准备发送请求时,负责生成一个Http请求协议包

2)在浏览器准备发送请求时,负责将请求信息写入Http请求协议包

3)由浏览器负责推送Http请求协议包

2.Http响应协议包:

1)在Http服务器准备返回结果时,负责生成一个Http响应协议包

2)由Http服务器调用输出流将文件内容(文字,数字,像素,帧,命令)以二进制形式写入到Http响应协议包

3)由Http服务器负责将Http响应协议包推送回发起请求的浏览器

四、Http请求协议包内部结构:

自上而下分为4层结构

1.请求行:


url:请求地址
method:请求方式

2.请求头:


如果浏览器以GET方式发送请求
请求参数存放在请求头

3.空白行:


4.请求体:


如果浏览器以POST方式发送请求
请求参数存放在请求体

五、Http响应协议包内部结构

自上而下分为4层结构

1.状态行:


Http状态码

2.响应头:


content-type:指定浏览器使用对应解析器或则编译器
对返回二进制数据进行解析或则编译

3.空白行:


4.响应体:


本次索要文件内容(二进制形式存放)

六、Http服务器介绍

1.所有的Http服务器都是由java编程语言开发应用程序

2.Http服务器可以接收由浏览器发动的Http请求协议包

3.Http服务器可以解析Http请求协议包二进制数据了解用户请求

4.Http服务器可以自动定位被访问的资源文件

5.Http服务器可以自动将被访问文件内容或则文件运行结果通过输出流以二进制形式写入到Http响应协议包中响应体

6.Http服务器可以自动将Http响应协议包推送回发起请求的浏览器

七、Http服务器分类:

1.功能最强---Websphere

2.功能最新---GlassFish

3.最轻量级---tomcat

八、tomcat服务器安装与配置

1.tomcat服务器下载: tomcat.apache.org/

2.tomcat安装:tomcat9.0版本是绿色免安装版

3.tomcat配置:

1)JAVA_HOME环境变量: 用于向tomcat服务器提供当前计算机中JDK位置
2)CATALINA_HOME环境变量:通知本次启动的tomcat服务器存放位置

九、tomcat服务器启动与关闭

1.tomcat服务器启动时生成一个管理对象。如果手动关闭,时间一长。

这个管理对象将脱离管理,导致无法再次启动tomcat

2.管理命令位置: tomcat安装地址/bin文件夹

3.启动tomcat命令: startup

4.关闭tomcat命令: shutdown

十、tomcat服务器启动失败原因

1.忘记配置JAVA_HOME

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

2.JAVA_HOME地址写错了

The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program

3.CATALINA_HOME地址写错了

The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program

4.tomcat服务器默认端口号8080.一个计算机只能启动一个tomcat

java.net.BindException: Address already in use: JVM_Bind

十一、tomcat服务器工作文件

1.bin : tomcat管理命令

2.conf:tomcat配置文件。server.xml是tomcat核心配置文件

3.lib: tomcat应用程序在运行时依赖的第三方jar

4.logs:存放tomcat运行日志

5.temp:存放tomcat运行时生成临时文件

6.webapps:tomcat在默认情况下,接收到请求之后到webapps下定位资源文件

7.work: tomcat在默认情况下,在work文件下将jsp文件编辑为java文件并编译为class文件

十二、第一次BS通信模拟

1.在webapps下创建一个网站

网站:网络资源站点,存放可以被浏览器访问的资源文件

2.启动tomcat

3.启动浏览器,向tomcat发起请求

在地址栏输入资源文件定位命令(url):

http://服务端计算机IP地址:http服务器端口号/网站名/资源文件名.后缀名

http://localhost:8080/myWeb/one.html

十三、标准网站内部结构

|_________src文件夹:java文件和动态资源文件

|_________web文件夹 :静态资源文件/第三jar/网站核心配置文件

|________WEB-INF: 第三jar/网站核心配置文件

|______lib文件夹(手动) 第三jar

|______web.xml 网站核心配置文件

|______________静态资源文件

十四、模拟tomcat调用动态资源文件

1.对于一个网站来说,tomcat只能调用网站中Servlet接口实现类

2.Tomcat接收到请求之后,根据url中文件名称定位被访问Servlet接口实现类。

1)Tomcat通过Class.forName方法将硬盘类文件加载到内存

2)Tomcat通过反色机制通知JVM创建当前类的实例对象

3)Tomcat通过实例对象调用init方法来实现对实例对象初始化操作

4)Tomcat通过实例对象调用service方法处理当前用户请求

5)Tomcat通过输出流将service方法处理结果写入到响应体交还给发起请求浏览器

十五、适配器设计模式

1.作用: 降低接口实现类开发难度的。可以让接口实现类自由选择接口中方法重写

2.解决方案:

1)使用抽象类实现接口,对接口中不受欢迎抽象方法进行空实现

2)创建接口实现类 继承与抽象类,此时接口实现类开发时只要重写感兴趣方法

十六、模板设计模式:

1.作用:子类只需要考虑相关方法重写实现,不需要考虑方法调用场景。子类方法调用规则由父类负责控制

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

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

相关文章

Android WiFi基础概览

Android WiFi 基础概览 1、WiFi协议2、Android WLAN 架构2.1 应用框架2.2 Wi-Fi 服务2.3 Wi-Fi HAL 3、相关编译 android13-release 1、WiFi协议 Wi-Fi(无线通信技术)_百度百科 2.4GHz 频段支持以下标准(802.11b/g/n/ax)&#xff…

科锐16位汇编学习笔记 04 乘除和移位指令

乘法和除法指令用的不多,因为效率很低 比较指令CMP (compare) •格式:CMP OPD,OPS •功能:(OPD) — (OPS),跟减法指令很像,但是不存结果 •说明:目的操作数减去源操作数,然后根据结果设置标志位,但该结…

作业三详解

作业3: 在作业1的基础上,整合修改、删除功能,可实现如下功能 1.进入新增页面,页面填入新增数据,提交表单,然后跳转到查询列表页面,列表页面显示所有记录(多一条新增的数据) 2.进入修改增页面,页面填入修改数据,提交表单,然后跳转到查询列表页面,列表页面显示所有…

Zoho SalesIQ:构建客户服务知识库的实用工具与指南

客服人员每天都有很多事情要做,包括在线聊天、音频通话、屏幕共享和发送电子邮件。为什么要将搜索常用信息添加到他们列表中呢?因为客户在遇到问题的同时想快速解决问题。所以,我们要使用Zoho SalesIQ客服系统构建客户服务知识库。 一、什么…

鸿蒙开发之拖拽事件

一、拖拽涉及的方法 Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)//拖拽开始.onDragStart((event: DragEvent) > {console.log(drag event onDragStartevent.getX())})//拖拽进入组件范围,需要监听onDrop配合.onDragEnter((event: DragEvent) …

【MongoDB】MongoDB查询语句find的使用,和提高查询速度的游标的使用,非常详细!!!

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:MongoDB数据库 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前…

联合体类型和枚举类型

联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。 所以给联合体其中⼀个成员赋值,其他成员的值也跟着…

Postman 并发测试入门指南:如何模拟用户并发请求?

背景介绍 最近,我们发起了一个在线图书管理系统的项目。我负责的一个关键模块包括三个主要后台接口: 实现对books数据的检索。实施对likes数据的获取。通过collections端点访问数据。 应对高流量的挑战 在设计并部署接口时,我们不可避免地…

Vue3集成scss实现清除浏览器默认样式

1.首先去npm官网找到对应的reset.scss文件,复制内容在本地src下style建一个一模一样的文件,内容复制进去npm | Home 2.在style文件夹下再建一个index.scss文件,在它里边引入刚刚建好的reset.scss文件,如下 import ./reset.scss; …

我用 midjourney 创作的那些好看的图片

下面这些是个人的midjourney v5的关键词,各种类型都有 抽象画 One piece of original artwork from 1998 , in the style of confucian ideology, pop art-inspired collages, recycled material murals, meticulous military scenes, close-up intensity, grocer…

基于OpenCV的透视变换

基础概念 透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。 原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下&#…

如何查询 ESP-IDF 中使用的第三方组件的版本?

引言 随着开源的日益普及,开源包的漏洞数量也在增加。这会给公司带来多种风险和挑战,比如: 库版本更新导致的兼容性问题库许可证违反引发潜在法律纠纷库漏洞被利用导致被攻击(含供应链攻击) 越来越多的用户希望使用…

八大算法排序@快速排序、递归版本一(C语言版本)

目录 快速排序版本一概念算法思想一二三 快排步骤代码实现时间复杂度空间复杂度特性总结 快速排序版本一 概念 快速排序(Quicksort)是一种高效的排序算法,它是由英国计算机科学家 Tony Hoare 在1960年提出的。快速排序是基于分治&#xff08…

C++中string的库函数

山再高,往上攀,总能登顶! 路再长,走下去,定能到达! 🎥烟雨长虹,孤鹜齐飞的个人主页 🔥个人专栏c 期待小伙伴们的支持与关注!!! 目录 前…

Pandas DataFrame中将True/False映射到1/0

在本文中,我们将看到如何在Pandas DataFrame中将True/False映射到1/0。True/False到1/0的转换在执行计算时至关重要,并且可以轻松分析数据。 1. replace方法 在这个例子中,我们使用Pandas replace()方法将True/False映射到1/0。在这里&…

【Spark精讲】记一个SparkSQL引擎层面的优化:SortMergeJoinExec

SparkSQL的Join执行流程 如下图所示,在分析不同类型的Join具体执行之前,先介绍Join执行的基本框架,框架中的一些概念和定义是在不同的SQL场景中使用的。 在Spark SQL中Join的实现都基于一个基本的流程,根据角色的不同&#xff0…

信息论与编码期末复习——计算题+基础汇总(二)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

centos安装tesseract

1.安装相关依赖 sudo yum install autoconf automake sudo yum install libjpeg-devel libpng-devel libtiff-devel zlib-devel 2.安装leptonica 下载 wget http://www.leptonica.org/source/leptonica-1.78.0.tar.gz 解压 tar -zxvf leptonica-1.78.0.tar.gz 安装 cd le…

【计算机毕业设计】SSM网上外卖订餐管理系统

项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录; 普通用户主要功能包括: 登录注册,查看商品,提交订单,然后留言,查看购物…

DS|静态查找

题目一:DS静态查找 -- 顺序查找 题目描述: 给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始 要求使用带哨兵的顺序查找算法 输入要求: 第一行输入n,表示队列有n个数据 第二行输入…