WEB编程-了解Tomcat服务器

news2024/11/15 20:26:45

第⼀章⽹络编程

1.1 概述

计算机⽹络:是指将地理位置不同的具有独⽴功能的多台计算机及其外部设备,通过通信线路连接起来,在⽹络

操作系统、⽹络管理软件及⽹络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

⽹络编程:在⽹络通信协议下,实现⽹络互连的不同计算机上运⾏的程序间可以进⾏数据交换。(可以通过我们

编写的⽹络程序基于互联⽹去访问别⼈电脑上的程序和资源。)

⽬前的⽹络程序分两种结构:CS / BS

1.2 CS / BS

软件架构(结构) 的两种不同的表现形式

C/S结构:全称为 Client/Server 结构,是指客户端和服务器结构。常⻅程序有 QQ ,百度⽹盘等软件。

特点:  ⼀般服务端仅仅安装了数据库和数据存储,所有程序代码(功能/界⾯) 都编写在客户端软件中.

优点:  直观,⽤户体验好,界⾯美观,安全性⾼等.

缺点:  每次升级,需要重新安装,移植性较低,开发和维护成本较⾼,不跨平台

B/S结构:全称为 Browser/Server 结构,是指浏览器和服务器结构。常⻅浏览器有⾕歌、⽕狐等。
 

     特点: 在服务端编写代码,所有的业务逻辑都由服务端完成,客户端只负责界⾯渲染.

    优点: 可移植性很⾼,开发和维护较好.

    缺点: 以前⽤户体验不够好,界⾯不够丰富,安全性相对较低.

新型 BS 结构  : 需求和技术发展的产物

瘦客户端 : 传统的 B/S .   服务端: 负责业务逻辑;   客户端: 负责界⾯渲染.

富客户端 : 超级 BS=CS+BS , 界⾯华丽.  服务端:负责业务逻辑;   客户端: 负责界⾯渲染 + 少量的业务逻辑.

以上架构各有优势,但是⽆论哪种架构,都需要基于⽹络进⾏通信,那他们是如何通信的?

1.3 ⽹络通信三要素

1.3.1 IP 地址

IP地址:互联⽹协议地址(Internet Protocol Address要想让⽹络中的计算机能够被识别,就必须为每台计

算机指定⼀个唯⼀的标识,通过改标识来找到相应的计算机,⽽IP就是这个标识。

IP地址分类

IPv4:是⼀个 32 位的⼆进制数,通常被分为 4 个字节,表示成a.b.c.d  的形式,例如 192.168.65.100  。

其中 abcd 都是0~255之间的⼗进制整数,那么最多可以表示⼤约43亿个。

IPv6:由于互联⽹的蓬勃发展,IP 地址的需求量愈来愈⼤,但是⽹络地址资源有限,使得 IP 的分配越发紧

张。有资料显示,全球 IPv4 地址在20112⽉分配完毕。

为了扩⼤地址空间,拟通过 IPv6 重新定义地址空间,采⽤128位地址⻓度,每 16个字节⼀组,分成8组⼗六进

制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 ,号称可以为全世界的每⼀粒沙⼦编上⼀个

⽹址,这样就解决了⽹络地址资源数量不够的问题。

域名: 映射到某个 ip 的⼀组英⽂单词组合(wolfcode.cn) ,为了更好记忆.

常⽤命令

查看本机 IP 地址,在控制台输⼊

1

ipconfig

检查⽹络是否连通,在控制台输⼊:

ping 空格 IP地址/域名

ping wolfcode.cn

ping 120.78.159.117

特殊的 IP 地址

本机 IP 地址:127.0.0.1localhost

1.3.2 端⼝号

⽹络的通信,本质上是两个进程(应⽤程序)的通信。每台计算机都有很多的进程,那么在⽹络通信时,如何区分

这些进程呢?

如果说IP地址可以唯⼀标识⽹络中的设备,那么端⼝号就可以唯⼀标识设备中的进程(应⽤程序)了。

端⼝号:⽤两个字节表示的整数,它的取值范围是0~65535。其中,0~1023之间的端⼝号⽤于⼀些知名的⽹络

服务和应⽤,普通的应⽤程序需要使⽤1024以上的端⼝号。如果端⼝号被另外⼀个服务或应⽤所占⽤,会导

致当前程序启动失败。

1.3.3 通信协议

⽹络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进⾏通信。这就

好⽐在道路中⾏驶的汽⻋⼀定要遵守交通规则⼀样,协议中对数据的传输格式、传输速率、传输步骤等做了

统⼀规定,通信双⽅必须同时遵守,最终完成数据交换。(⼈和⼈之间交流语⾔需互通)

java.net 包中提供了两种常⻅的⽹络协议的⽀持: UDP  TCP

1.3.3.1 UDP 协议

UDP (User Datagram Protocol) ⽆连接通信协议,不建⽴逻辑连接,当⼀台计算机向另外⼀台计算机发送数据时,

发送端不会确认接收端是否存在,直接发数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

特点: ⾯向⽆连接的协议,消耗资源⼩,通信效率⾼,通常⽤于⾳频、视频等数据传输,因为偶尔丢失⼀两个数据包,不会对接收结果产⽣太⼤影响。

但是在使⽤ UDP 协议传送数据时,由于 UDP 的⾯向⽆连接性,不能保证数据的完整性,因此在传输重要数据时不建议使⽤ UDP 协议。

UDP通信过程如下图所示:

1.3.3.2 TCP 协议

1 TCP 协议概述

TCP(Transmission Control Protocol)协议是⾯向连接的通信协议,即在传输数据前先在客户端和服务器端建⽴

逻辑连接,然后再传输数据。它提供了两台计算机之间可靠⽆差错的数据传输。TCP通信过程如下图所示:

2 TCP 协议特点

⾯向连接的协议

建⽴连接,形成传输数据的通道。

传输数据⼤⼩不受限制

通过三次握⼿完成连接。

通过四次挥⼿断开连接。

TCP是基于 IO 流传输数据。

因为需要建⽴连接,效率会稍低但是可靠协议

第⼀次握⼿: 客户端询问服务器端是在线

第⼆次握⼿: 服务器端通知客户端在线并询问客户端是否在线

第三次握⼿: 客户端通知服务器还在线

建⽴连接通道,开始做数据传输

第⼀次挥⼿: 客户端请求断开连接

第⼆次挥⼿: 服务器发送已经知道要断开,之后把数据发送完.

第三次挥⼿: 服务器发送完数据通知客户端正式断开

第四次挥⼿: 客户端告知服务器确定要断开并等待 2MSL 之后断开

结论: 涉及到数据安全不可丢失的,使⽤ TCP,BS 底层就是使⽤ TCP 协议.

3 基于 TCP ⽹络编程

书写基于⽹络来传输数据的两个程序.

成员和职责:

客户端:  往服务端程序发送数据,然后接收服务端返回的数据.

服务端:  接收客户端程序发送的数据,并做出反馈.

TCP编程-客户端

步骤:

1:创建⼀个连接某个服务端的 Socket 对象

2:Socket中拿到输出流往服务端发送数据

3:调⽤Socket对象对象 shutdownOutput ⽅法通知服务端数据发送完毕

4:Socket中拿到输⼊流获取服务端回馈的数据

5:调⽤Socket对象对象 shutdownInput ⽅法通知服务端数据接收完毕

6:关闭Socket对象

此时由于没有服务端,所以三握⼿不能成功,肯定报错

要想检验该程序是否正确,必须要先把服务端实现之后并正常启动才能验证客户端编写是否正确

接下来就是要编写服务端

TCP编程-服务端

步骤:

1:创建⼀个服务端对象(ServerSocket)

2:侦听客户端的连接,获取和客户端通信的Socket对象

3:Socket获取输⼊流,接收服务器发送的数据

4:调⽤Socket对象对象shutdownInput⽅法通知客户端数据接收完毕

5:Socket中拿到输出流往客户端发送数据

6:调⽤Socket对象对象shutdownOutput⽅法通知客户端数据发送完毕

7:关闭Socket对象

注意: 服务端⼀般都是⻓期开启的,因为服务端⼀旦关闭就不能给客户端提供服务了.

最终⽬标:  浏览器和 Java 程序交互,能显示 Java 程序(数据库)中的数据.

浏览器和服务端程序交互

由于使⽤浏览器接收到的数据是⼀⾏⼀⾏,所有咱们把数据接收改为⼀⾏⼀⾏接收,反馈也改为⼀⾏⼀⾏输出.

以上程序已经实现可以和浏览器进⾏通信,但是存在许多的问题:

1:该程序在并发的情况下,效率低

2:启动服务绑定的端⼝是写死了,万⼀该端⼝被其他程序占⽤,则服务器⽆法启动

3:以上编程模型中的 IO 是属于阻塞IO,传输数据的效率极低等等.

解决: 使⽤别⼈封装好,写好的服务端程序.(软件服务器: Tomcat)

第⼆章 Tomcat 服务器

2.1 WEB 资源概述

2.1.1 什么是 web 资源

浏览器⽹⻚上看到的所有内容都称为 web 资源,⽐如⽂字,图⽚,⾳频,视频,链接等等内容。

2.1.2 Web资源分类

分类

概述

使⽤的技术

静态资源是相对于动态资源⽽⾔,是指没有后台数据库、

不含程序和⼀些不可交互的⽹⻚。你编的是什么它显示的

就是什么、不会有任何改变。

静态资源

HTML/CSS/JS

动态资源会因时因⼈⽽异,以数据库为基础

每次访问内容都可能不⼀样

动态资源

JSP / Servlet

2.2 什么是服务器

2.2.1 服务器分类

软件服务器: 其实就是⼀个软件:提供了B(browser)/S(server)应⽤运⾏的环境(管理了Web应⽤)

作⽤:可以将我们开发好的静态资源或动态资源提供给外界(浏览器)访问。

硬件服务器: 其实就是⼀台电脑,该电脑安装了软件服务器。

2.2.2 软件服务器分类

http 服务器:⽤于运⾏静态的⽹⻚(html)

Web服务器:实现了 JavaEE 部分规范(⽐如Servlet/JSP)、没有实现 JavaEE 中的 EJB 规范。

常⽤的 Web服务器有:Tomcat(Java代码写的,开源的服务器), Jetty

应⽤服务器:实现了 JavaEE 全部的规范/⽀持 EJB 的:TomEE,GlassFish,JBoss,Weblogic,WebSphere

2.2.3 JavaEE 规范

 Java 中所有的服务器要实现⼀组 sun 公司规定的接⼝,这些接⼝称为 JavaEE 规范。不同⼚商的 JavaWeb

服务器都实现了这些接⼝。在 JavaEE 中⼀共有 13 种规范。

常⻅的 JavaEE 规范有: JSPServletJDBCXMLEJB

2.3 Tomcat 安装配置

2.3.1 Tomcat 下载

apache

tomcat 的产品⻚⾯:  

2.3.2 Tomcat安装

解压即完成安装!注意事项:安装路径不能包含中⽂或空格等特殊符号

2.3.3 Tomcat 环境变量配置

Tomcat 是使⽤ Java 语⾔编写的⼀个服务器(程序),要运⾏Tomcat必须得有 jre。必须先配置 JAVA_HOME 或者

JRE_HOME 的环境变量⼀般的我们只配置 JAVA_HOME

上⾯是设置  JAVA_HOME  环境变量,启动 Tomcat 需要执⾏安装⽬录下的  bin ⽬录下⾯的 startup.bat 可执⾏⽂

2.3.4 Tomcat 启动和关闭

1.  启动:双击 bin/startup.bat

测试是否可以访问

2.  关闭:运⾏的是 bin/shutdown.bat

再次访问

2.4 修改 Tomcat 的端⼝号

Tomcat 的默认端⼝是 8080 HTTP  80。所以在访问 8080 端⼝的 Tomcat 中的资

源时,必须要加上端⼝号  

如果想在访问的时候不加端⼝号,我们可以将 tomcat 的端⼝号修改为80

修改 Tomcat 安装⽬录下 /conf/server.xml ⽂件中默认第 69 ⾏,将 8080 修改为 80

配置⽂件改变后需要重新启动 Tomcat,然后访问地址上就不需要输⼊端⼝号了。

2.5 Tomcat ⽬录结构

⽬录

作⽤

bin

启动和关闭Tomcat可执⾏⽂件

配置⽂件夹,有些重要配置⽂件在这下⾯。如:server.xml, web.xml等不建议乱修改,可能导致

Tomcat不能启动

conf

lib

Tomcat使⽤时依赖的⼀些第三⽅jar

logs

⽇志记录⽂件,记录服务器运⾏过程中⼀些事件。包括运⾏过程中出现异常

临时⽂件夹,保存服务器运⾏过程中⽣成的⼀些垃圾⽂件

我们做好的项⽬发布的⽬录,可以通过浏览器来直接访问

ROOT⽬录:在浏览器上看到的欢迎⻚⾯,在这个⽬录下

temp

webapps

work

Tomcat ⼯作⽬录,存储 Tomcat 运⾏过程中产⽣的⽂件,⽐如 jsp 翻译后的class⽂件

2.6 Tomcat 运⾏常⻅问题

2.6.1 未设置 JAVA_HOME 环境变量

出错信息:没有 JAVA_HOME 的配置,执⾏ startup.bat ,窗⼝⼀闪⽽过, cmd 运⾏ startup.bat 会报⼀下环境变

量没配置问题.

解决办法:配置 JAVA_HOME 环境变量

2.6.2 端⼝号被占⽤

出错信息: 地址被占⽤,端⼝号被占⽤

也可以通过⽇志⽂件看得到同样的错误信息:⽇志⽂件位置:安装⽬录/logs⽬录下

解决⽅法

⽅法⼀:找到占⽤ 8080 端⼝的程序并中⽌

⽅法⼆:修改 Tomcat 的端⼝号为其他,⽐如 9090。修改配置⽂件:tomcat/conf/server.xml

修改之后重启Tomcat服务器。

2.6.3 出现 404 的错误提示

当前访问的资源不存在的时候就报404错误. 此时的问题,是我们⾃⼰造成的,把资源的名字写错了或者说根本就没

有此资源。

⽂件编码和内容编码不⼀致的问题,写了中⽂出错

2.7 Tomcat 部署项⽬

了解,推荐掌握第⼆种,虚拟⽬录配置.

2.7.1 web项⽬标准结构

2.7.2 web 项⽬部署⽅式

⽅式1webapps

 tomcat/webapps ⽬录下创建⼀个⽂件夹 PSS,在⽂本夹下⾯有⼀个 abc.html

启动服务器并通过浏览器访问:

⽅式2:虚拟⽬录(推荐)

⽅式1, 发布项⽬的缺点:发布在 webapps 下,webapps 项⽬越多,导致 Tomcat 启动越慢。

Context 标签

conf/server.xml⽂件的 host 元素中配置 Context 标签

说明

虚拟访问⽬录的名称

path 属性

配置的名称必须是唯⼀的

docBase 属性

Web 应⽤所在⽬录

 pss 项⽬存放在:D://openSource/

找到 tomcat/conf/server.xml ⽂件,在 host 元素写下⾯的代码

启动服务器并通过浏览器访问:

⽅式3:配置独⽴ xml ⽂件

1.   tomcat/conf ⽬录下新建⼀个 Catalina⽬录(如果已经存在⽆需创建)

2.  Catalina ⽬录下创建 localhost ⽬录

3.   localhost 中创建 xml 配置⽂件,名称可以任意:qq(注:这个名称是浏览器访问路径)

4.   xml ⽂件添加内容为

<Context  docBase="D://openSource/pss" />

5.   重启服务器并浏览器访问

命令修改⽂件名称为空

2.8 IDEA 中部署项⽬

2.8.1 IDEA 绑定 Tomcat

我们要将 idea  tomcat 集成到⼀起,可以通过 idea 就控制 tomcat 的启动和关闭

1.   编辑运⾏配置

2.  添加 Tomcat 的配置信息

如果看不到 Tomcat Server,点下⾯的 xx  more items

3.   配置服务器详细信息

 1 次配置需要点击 Configure...按钮关联本地Tomcat安装路径

2.8.2  IDEA 部署 WEB 项⽬

1.  创建 JavaWeb 项⽬

2.  创建好的 WEB 项⽬结构

3.  web⽬录下创建⼀个 index.html⽂件

4.  部署项⽬到 Tomcat 服务器 (编辑配置

1.  点击 Deployemet  (在导⼊项⽬时,是没有导⼊项⽬到tomcat 服务器,需要在此处去加⼊项⽬)

2.  点击 Server 可以看到所有详细信息

2.8.2  IDEA 中启动服务器

1.  点右上⻆的启动图标,启动Tomcat服务器

2.   控制台显示服务器启动的状态信息

3.   浏览器测试访问

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

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

相关文章

cs224n作业3 代码及运行结果

代码里要求用pytorch1.0.0版本&#xff0c;其实不用也可以的。 【删掉run.py里的assert(torch.version “1.0.0”)即可】 代码里面也有提示让你实现什么&#xff0c;弄懂代码什么意思基本就可以了&#xff0c;看多了感觉大框架都大差不差。多看多练慢慢来&#xff0c;加油&am…

前端位置布局汇总

1、位置&#xff1a;绝对位置和相对位置 绝对位置 style"position: absolute;left: 218px;top: 0%;" style"position: absolute;bottom:5px;right:5px ;" 相对位置 :margin外边距 padding内边距 style"border:1px solid black;width:200px;text-ali…

vue事件处理v-on或@

事件处理v-on或 我们可以使用v-on指令&#xff08;简写&#xff09;来监听DOM事件&#xff0c;并在事件触发时执行对应的Javascript。用法&#xff1a;v-on:click"methodName"或click"hander" 事件处理器的值可以是&#xff1a; 内敛事件处理器&#xff1…

Yolo v7网络实现细节(一)

Yolo v7网络实现细节 YOLO v7网络架构的整体介绍 不同GPU和对应模型&#xff1a; ​​​​​​​边缘GPU&#xff1a;YOLOv7-tiny普通GPU&#xff1a;YOLOv7​​​​​​​云GPU的基本模型&#xff1a; YOLOv7-W6 激活函数&#xff1a; YOLOv7 tiny&#xff1a; leaky ReLU其…

南方健康2024米思会:科普患教赋能医药增长闭环,千亿蓝海市场大爆发!

2024年6月25日-28日&#xff0c;在中国•南太湖举办的2024米思会如约而至&#xff0c;顺利落下帷幕&#xff0c;本次大会以“韧进启新局”为主题&#xff0c;以不懈进取的“韧劲”&#xff0c;立身破局&#xff0c;迎变启新。通过4天3夜的思想碰撞和互动交流&#xff0c;引领行…

使用shell脚本实现DM8开机自动启动

编写shell脚本 #!/bin/bashsu -dmdba >>EOF cd /home/dmdba/dmdbms/bin ./DmServiceDMTEST start echo "dm start ... " EOF注意&#xff1a;DmServiceDMTEST每个服务器设置的不一样&#xff0c;根据实际进行更换 授权脚本可执行权限 chmod -x /dmdata/dmse…

策略为王股票软件源代码-----如何修改为自己软件61----资讯菜单修改-----举例---------调用同花顺网页------

http://stock.sina.com.cn 将原来的新浪行情,修改为同花顺, 搜索 stock.sina.com.cn... StkUI\View\InfoView.cpp(58):char

【C++:默认成员函数初始化列表】

构造函数 特点 没有返回值支持函数重载对象实例化时&#xff0c;编译器自动调用作用不是构造&#xff0c;而是初始化函数名与类名相同无参函数和全缺省的函数&#xff0c;不用传参就能调用的函数叫做默认构造函数 构造函数是一个特殊的成员函数 注&#xff1a;无参构造函数在实…

Lock4j简单的支持不同方案的高性能分布式锁实现及源码解析

文章目录 1.Lock4j是什么?1.1简介1.2项目地址1.3 我之前手写的分布式锁和限流的实现 2.特性3.如何使用3.1引入相关依赖3.2 配置redis或zookeeper3.3 使用方式3.3.1 注解式自动式3.3.2 手动式 4.源码解析4.1项目目录4.2实现思路 5.总结 1.Lock4j是什么? 1.1简介 lock4j是苞米…

平均102天 Accept的国产医学顶刊,影响因子4连涨,还免版面费!

《Asian Journal of Pharmaceutical Sciences》 (亚洲药物制剂科学) 是由沈阳药科大学主办、Elsevier合作出版的全英文药剂学学术期刊&#xff0c;是“中国科技期刊卓越行动计划”资助期刊&#xff0c;现已被SCIE、PubMed Central、Scopus和DOAJ等国际著名检索系统收录&#xf…

【已解决】“import ... =“ 只能在 TypeScript 文件中使用

现象 在使用 import 语法的时候&#xff0c;代码报红&#xff0c;提示&#xff1a;“import ... “ 只能在 TypeScript 文件中使用 原因 代码被 VSCode 解析成 TypeScript 语法 解决方案&#xff1a; 关闭 JavaScript 的验证启用即可。 mac 快捷方式&#xff1a;comman s…

25.【C语言】循环结构之for 上

1.基本使用 类比while 在while循环中&#xff0c;有三个不可或缺的部分&#xff1a;初始化&#xff0c;判断部分&#xff0c;调整部分 int i 0;//初始化 while (i < 10)//判断部分 {……i;//调整部分 }三个部分太分散&#xff0c;用for循环可集为一体&#xff0c;简洁 …

【海贼王的数据航海】ST表——RMQ问题

目录 1 -> RMQ问题 1.1 -> 定义 1.2 -> 解决策略 2 -> ST表 2.1 -> 定义 2.2 什么是可重复贡献问题 2.3 -> 预处理ST表 2.4 -> 处理查询 2.5 -> 实际问题 1 -> RMQ问题 1.1 -> 定义 RMQ (Range Minimum/Maximum Query)即区间最值查询…

印度第二大移动提供商 3.75 亿数据待售

一个名为“xenZen”的威胁行为者已在 BreachForums 上出售 Airtel 的数据库。 该列表包含来自 3.75 亿客户的数据。 数据详情&#xff1a; 手机号码 名 出生日期 父亲的名字 地址 电子邮件ID 类型 国籍 阿达尔 带照片的身份证明详细信息 地址详细信息证明等 鉴于…

【反悔堆 优先队列 临项交换 决策包容性】630. 课程表 III

本文涉及知识点 贪心 反悔堆 优先队列 临项交换 Leetcode630. 课程表 III 这里有 n 门不同的在线课程&#xff0c;按从 1 到 n 编号。给你一个数组 courses &#xff0c;其中 courses[i] [durationi, lastDayi] 表示第 i 门课将会 持续 上 durationi 天课&#xff0c;并且必…

应用信息查看器更新至1.5.0

https://download.csdn.net/download/zzmzzff/89518318

构建滑块组件_第 1 部分

前言 ● 本次将和大家一起学习实现滑块的功能 ● 由于这有些错乱&#xff0c;我们将用图片来代替&#xff0c;以实现功能 ● 这里我们简单的说一下原理&#xff0c;如下图所示&#xff0c;通过改变tanslateX的值来达到滑动的效果&#xff0c;所以最核心的就是我们需要通过…

ODOO17的邮件机制-系统自动推送修改密码的邮件

用户收到被要求重置密码的邮件&#xff1a; 我们来分析一下ODOO此邮件的工作机制&#xff1a; 1、邮件模板定义 2、渲染模板的函数&#xff1a; 3、调用此函数的机制&#xff1a; 当用户移除或增加了信任的设备&#xff08;如电脑、手机端等&#xff09;&#xff0c;系统会自…

银河麒麟V10 SP1 审计工具 auditd更新

前言 银河麒麟V10 SP1 审计工具 auditd 引发的内存占用过高&#xff0c; 内存使用率一直在 60% 以上&#xff0c; 内存一直不释放 排查 可以使用ps或者top查看系统进程使用情况 ps -aux|sort -k4nr|head -n 5 发现银河麒麟审计工具 auditd 一直占用内存不释放 解决 办法一…

GD32MCU如何实现掉电数据保存?

大家在GD32 MCU应用时&#xff0c;是否会碰到以下应用需求&#xff1a;希望在MCU掉电时保存一定的数据或标志&#xff0c;用以记录一些关键的数据。 以GD32E103为例&#xff0c;数据的存储介质可以选择内部Flash或者备份数据寄存器。 如下图所示&#xff0c;片内Flash具有10年…