【JavaWeb】TomcatJavaWebHTTP

news2024/12/28 20:25:33

Tomcat&JavaWeb&HTTP

文章目录

  • Tomcat&JavaWeb&HTTP
  • 一、Tomcat
    • 1.1 版本选择及安装
    • 1.2 目录
    • 1.3 WEB项目部署的方式
  • 二、IDEA中Java Web开发部署流程
  • 三、HTTP协议
    • 3.1 发展历程
    • 3.2 HTTP协议的会话方式
    • 3.3 请求报文
    • 3.4 响应报文

一、Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

1.1 版本选择及安装

版本:企业用的比较广泛的是8.0和9.0,目前比较新正式发布版本是Tomcat10.0, Tomcat11仍然处于测试阶段。从 Java EE 迁移到 Jakarta EE 的结果是,所有已实现 API 的主包已从 更改 javax.*jakarta.*这几乎肯定需要更改代码以使应用程序能够从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。官方有提供迁移工具。

  • JAVAEE 版本和Servlet版本号对应关系 Jakarta EE Releases
Servlet VersionEE Version
6.1Jakarta EE ?
6.0Jakarta EE 10
5.0Jakarta EE 9/9.1
4.0JAVA EE 8
3.1JAVA EE 7
3.1JAVA EE 7
3.0JAVAEE 6
  • Tomcat 版本和Servlet版本之间的对应关系
Servlet VersionTomcat VersionJDK Version
6.111.0.x17 and later
6.010.1.x11 and later
5.010.0.x (superseded)8 and later
4.09.0.x8 and later
3.18.5.x7 and later
3.18.0.x (superseded)7 and later
3.07.0.x (archived)6 and later (7 and later for WebSocket)

下载

  • Tomcat官方网站:http://tomcat.apache.org/
  • 安装版:需要安装,一般不考虑使用。
  • 解压版:直接解压缩使用,我们使用的版本。

在这里插入图片描述

安装

  1. 正确安装JDK并配置JAVA_HOME( https://injdk.cn中可以下载各种版本的JDK),配置了才能启动

  2. 解压tomcat到非中文无空格目录

  3. 点击bin/startup.bat启动

  4. 打开浏览器输入 http://localhost:8080访问测试

  5. 直接关闭窗口或者运行 bin/shutdown.bat关闭tomcat

  6. 处理dos窗口日志中文乱码问题: 修改 conf/logging.properties ,将所有的UTF-8修改为GBK

1.2 目录

  • bin:该目录下存放的是二进制可执行文件;解压版会有startup.bat和shutdown.bat文件控制服务器启停
  • conf:配置文件目录,这个目录下有四个最为重要的文件:
    • server.xml:配置整个服务器信息。例如修改端口号。默认HTTP请求的端口号是:8080
    • tomcat-users.xml:存储tomcat用户的文件,以及用户的角色信息。用于从主页进入Tomcat Manager页面
    • web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。文件类型映射配置文件
    • context.xml:对所有应用的统一配置,通常不会去配置它
  • lib:Tomcat的类库
  • logs:日志文件目录,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中
  • temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除
  • webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果目录下已经存在目录,这些是tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中访问:http://127.0.0.1:8080,没有给出项目目录时,对应的就是ROOT项目。http://localhost:8080/examples,进入示例项目。其中examples 就是项目名,即文件夹的名字
  • work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的。可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下

1.3 WEB项目部署的方式

  • 方式1:直接将编译好的项目或者war包(tomcat启动后会自动解压war包)放在 webapps 目录下
  • 方式2:在tomcat中通过配置文件指向app的实际磁盘路径
    • 在tomcat的conf下创建Catalina/localhost目录,并在该目录下准备一个app.xml文件
<!-- 
	path: 项目的访问路径,也是项目的上下文路径,就是在浏览器中,输入的项目名称
    docBase: 项目在磁盘中的实际路径
 -->
<Context path="/app" docBase="D:\mywebapps\app" />

二、IDEA中Java Web开发部署流程

  1. idea配置应用服务器:settings -> Build, Execution, Deployment -> Application Servers

在这里插入图片描述

  1. 新建项目后,新建 Module,为 Module 添加 Tomcat 依赖

在这里插入图片描述

  1. 选择module,双击shift,添加 framework support;idea低版本选中 module 右键也有该选项。添加 Web Application 并且勾选 web.xml

在这里插入图片描述

  1. IDEA部署-运行web项目:在运行和debug旁边有编辑配置,添加tomcat Server,选择 Local,之后点击右下角 Fix的配置项目,选择带 _exploded 的(或者到该页面 Deployment 页签配置),配置完即可启动了,浏览器将打开 index 页面

在这里插入图片描述

IDEA部署并运行项目的原理

  • idea并没有直接将编译好的项目放入tomcat的webapps中
  • idea根据关联的tomcat,创建了一个tomcat副本,将项目部署到了这个副本中
  • idea的tomcat副本在C:\用户\当前用户\AppData\Local\JetBrains\IntelliJIdea2022.2\tomcat\中
  • idea的tomcat副本并不是一个完整的tomcat,副本里只是准备了和当前项目相关的配置文件而已
  • idea启动tomcat时,是让本地tomcat程序按照tomcat副本里的配置文件运行
  • idea的tomcat副本部署项目的模式是通过conf/Catalina/localhost/*.xml配置文件的形式实现项目部署的

三、HTTP协议

3.1 发展历程

HTTP/1.1

  • HTTP 的第一个标准化版本 HTTP/1.1 ( RFC 2068 ) 于 1997 年初发布,支持七种请求方法:OPTIONS,GET,HEAD,POST,PUT,DELETE,和TRACE
  • 发布后15年非常稳定,但之后出现了 HTTPS(安全超文本传输协议)。它是使用 SSL/TLS 进行安全加密通信的 HTTP 的安全版本

HTTP/2

  • 由IETF在2015年发布。HTTP/2旨在提高Web性能,减少延迟,增加安全性,使Web应用更加快速、高效和可靠
  • 多路复用:HTTP/2 允许同时发送多个请求和响应,而不是像 HTTP/1.1 一样只能一个一个地处理。这样可以减少延迟,提高效率,提高网络吞吐量
  • 二进制传输:HTTP/2 使用二进制协议,与 HTTP/1.1 使用的文本协议不同。二进制协议可以更快地解析,更有效地传输数据,减少了传输过程中的开销和延迟
  • 头部压缩:HTTP/2 使用 HPACK 算法对 HTTP 头部进行压缩,减少了头部传输的数据量,从而减少了网络延迟
  • 服务器推送:HTTP/2 支持服务器推送,允许服务器在客户端请求之前推送资源,以提高性能
  • 改进的安全性:HTTP/2 默认使用 TLS(Transport Layer Security)加密传输数据,提高了安全性
  • 兼容 HTTP/1.1:HTTP/2 可以与 HTTP/1.1 共存,服务器可以同时支持 HTTP/1.1 和 HTTP/2。如果客户端不支持 HTTP/2,服务器可以回退到 HTTP/1.1

HTTP/3

  • 于 2021 年 5 月 27 日发布 , HTTP/3 是一种新的、快速、可靠且安全的协议,适用于所有形式的设备。 HTTP/3 没有使用 TCP,而是使用谷歌在 2012 年开发的新协议 QUIC
  • HTTP/3 带来了革命性的变化,以提高 Web 性能和安全性。设置 HTTP/3 网站需要服务器和浏览器支持
  • 目前,谷歌云、Cloudflare和Fastly支持 HTTP/3。Chrome、Firefox、Edge、Opera 和一些移动浏览器支持 HTTP/3

3.2 HTTP协议的会话方式

浏览器与服务器之间的通信过程要经历四个步骤

在这里插入图片描述

  • 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接
  • 浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对

3.3 请求报文

请求报文组成:

  • 请求首行(请求行); GET/POST 资源路径?参数 HTTP/1.1
    • 请求方式 GET
    • 访问服务器的资源路径?参数1=值1&参数2=值2 …
    • 协议及版本 HTTP/1.1
  • 请求头信息(请求头);
  • 空行;
  • 请求体;POST请求才有请求体
- 请求行
GET http://localhost:8080/TestWeb_war_exploded/ HTTP/1.1
- 请求头
- 主机虚拟地址
Host: localhost:8080
- 长连接
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
- 请求协议的自动升级[http的请求,服务器却是https的,浏览器自动会将请求协议升级为https的]
Upgrade-Insecure-Requests: 1
- 用户系统信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
- 浏览器支持的文件类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
- 当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]:   可以通过此路径跳转回上一个页面, 广告计费,防止盗链
Referer: http://localhost:8080/TestWeb_war_exploded/login.html
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
- 浏览器支持的压缩格式
Accept-Encoding: gzip, deflate, br
- 浏览器支持的语言
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=4A572D771E3A36F8CBCB791AB56C9D9E

3.4 响应报文

响应报文组成:

  • 响应首行(响应行); 协议/版本 状态码 状态码描述
    • 协议及版本 HTTP/1.1
    • 响应状态码 200;HTTP 状态码(英语:HTTP Status Code)是用以表示 HTTP 响应状态的 3 位数字代码。
    • 状态描述 OK (缺省)
  • 响应头信息(响应头);
  • 空行;
  • 响应体;
- 响应行
HTTP/1.1 200
- 响应头
- 响应体数据的类型[浏览器根据类型解析响应体数据,如果响应的是html页面,最终响应体内容会被浏览器显示到页面中]
Content-Type: text/html;charset=UTF-8
- 响应体内容的字节数
Content-Length: 111
- 响应的时间,这可能会有8小时的时区差
Date: Fri, 24 Nov 2023 08:22:39 GMT
Keep-Alive: timeout=20
Connection: keep-alive
- 下面是空行及响应体


<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  $END$
  <br />
  老铁666
  </body>
</html>

常见响应状态码:

  • 200: 请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
  • 302: 重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location指定新请求的URL地址;
  • 304: 使用了本地缓存
  • 404: 请求的资源没有找到,说明客户端错误的请求了不存在的资源;
  • 405: 请求的方式不允许
  • 500: 请求资源找到了,但服务器内部出现了错误;

一般含义:

  • 1xx:消息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客户端错误
  • 5xx:服务器错误

更多状态码:

状态码状态码英文描述中文含义
1**消息
100Continue继续。客户端应继续其请求
101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
2**成功
200OK请求成功。一般用于GET与POST请求
201Created已创建。成功请求并创建了新的资源
202Accepted已接受。已经接受请求,但未处理完成
203Non-Authoritative Information非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204No Content无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205Reset Content重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206Partial Content部分内容。服务器成功处理了部分GET请求
3**重定向
300Multiple Choices多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303See Other查看其它地址。与301类似。使用GET和POST请求查看
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305Use Proxy使用代理。所请求的资源必须通过代理访问
306Unused已经被废弃的HTTP状态码
307Temporary Redirect临时重定向。与302类似。使用GET请求重定向
4**客户端错误
400Bad Request客户端请求的语法错误,服务器无法理解
401Unauthorized请求要求用户的身份认证
402Payment Required保留,将来使用
403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求
404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405Method Not Allowed客户端请求中的方法被禁止
406Not Acceptable服务器无法根据客户端请求的内容特性完成请求
407Proxy Authentication Required请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408Request Time-out服务器等待客户端发送的请求时间过长,超时
409Conflict服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
410Gone客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411Length Required服务器无法处理客户端发送的不带Content-Length的请求信息
412Precondition Failed客户端请求信息的先决条件错误
413Request Entity Too Large由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414Request-URI Too Large请求的URI过长(URI通常为网址),服务器无法处理
415Unsupported Media Type服务器无法处理请求附带的媒体格式
416Requested range not satisfiable客户端请求的范围无效
417Expectation Failed服务器无法满足Expect的请求头信息
5**服务器错误
500Internal Server Error服务器内部错误,无法完成请求
501Not Implemented服务器不支持请求的功能,无法完成请求
502Bad Gateway作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求
505HTTP Version not supported服务器不支持请求的HTTP协议的版本,无法完成处理

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

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

相关文章

机器学习探索计划——KNN算法流程的简易了解

文章目录 数据准备阶段KNN预测的过程1.计算新样本与已知样本点的距离2.按照举例排序3.确定k值4.距离最近的k个点投票 scikit-learn中的KNN算法 数据准备阶段 import matplotlib.pyplot as plt import numpy as np# 样本特征 data_X [[0.5, 2],[1.8, 3],[3.9, 1],[4.7, 4],[6.…

通过JMeter压测结果来分析Eureka多种服务下线机制后的服务感知情况

文章目录 前言1. Eureka-Server的设计2. EurekaRibbon感知下线服务机制3.服务调用接口压测模型4.Eureka几种服务下线的方式4.1强制下线压测 4.2 发送delete&#xff08;&#xff09;请求压测 4.3 调用DiscoveryManager压测 4. 三方工具Actuator 总结 前言 上文末尾讲到了Eurek…

跑步运动耳机哪个牌子好?运动型无线耳机排行榜

​运动耳机是我们运动时不可或缺的装备&#xff0c;它可以让你享受高品质的音乐&#xff0c;还提供了高舒适佩戴体验以及稳定的连接。然而面对市面上层出不穷的运动耳机&#xff0c;到底哪款更值得入手&#xff1f;今天我为大家推荐几款市面上备受好评的运动耳机&#xff0c;是…

【数据库】数据库物理执行计划最基本操作-表扫描机制与可选路径,基于代价的评估模型以及模型参数的含义

物理执行计划基本操作符 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏…

SAS9.2软件“OLE:对象的类没有在注册数据库中注册“问题的解决. 2023-11-25

操作系统测试平台: Win7 sp1 32bit (6.1.7601.26321 (Win7 RTM)) ; Win 11 64bit(具体版本不详) 其它win平台理论上也可以,可自行测试 1.安装依赖库(必要步骤) 下载地址: Microsoft Visual C 2005 Redistributable 下载 Microsoft Visual C 2008 Redistributable 官方vc库总…

十大排序之计数排序、桶排序、基数排序(详解)

文章目录 &#x1f412;个人主页&#x1f3c5;算法思维框架&#x1f4d6;前言&#xff1a; &#x1f380;计数排序 时间复杂度O(nk)&#x1f387;1. 算法步骤思想&#x1f387;2.动画实现&#x1f387; 3.代码实现 &#x1f380;桶排序&#x1f387;1. 算法步骤思想&#x1f38…

ros2文件package.xml与cmakelists.txt比较

每次在ros2里面添加文件以后&#xff0c;都要修改packages.xml,与cmakelists.txt文件。

P10 C++类和结构体的区别

目录 01 前言 02 struct 与 class格式上的区别 03 struct 与 class 使用上的区别 04 常用的代码风格 01 前言 今天这期我们主要解决一个问题&#xff0c;就是 C 中的类和结构体有什么区别。 本期我们有两个术语&#xff0c;结构体 struct&#xff0c;它是 structure 的缩写…

中国信通院王蕴韬:从“好用”到“高效”,AIGC需要被再次颠覆

当下AIGC又有了怎样的颠覆式技术&#xff1f;处于一个怎样的发展阶段&#xff1f;产业应用如何&#xff1f;以及存在哪些风险&#xff1f;针对这些问题&#xff0c;我们与中国信通院云计算与大数据研究所副总工程师王蕴韬进行了一次深度对话&#xff0c;从他哪里找到了这些问题…

crontab 定时检测 Tomcat 状态脚本实现及注意事项

背景 Jenkins 所在的 Tomcat 总是莫名挂掉&#xff0c;虽然任务配置了 NOKILLME 参数&#xff0c;而且并不是总是发生在编译完成后才挂的。怀疑是机器资源不足导致的&#xff0c;没有依据。最简单的办法是创建一个定时任务&#xff0c;检测 Tomcat 状态&#xff0c;不见了就拉…

我的崩溃。。想鼠??!

身为程序员哪一个瞬间让你最奔溃&#xff1f; 某天一个下午崩溃产生。。。 一个让我最奔溃的瞬间是关于一个看似无害的拼写错误。我当时正在为一个电子商务网站添加支付功能&#xff0c;使用了一个第三方支付库。所有的配置看起来都正确&#xff0c;代码也没有报错&#xff0c;…

prometheus|云原生|grafana-9.4.3版本的主题更改

一&#xff0c; grafana-9.4.3版本的主题更改 grafana-9.4.3版本应该是目前比较高的版本了&#xff0c;但不知道是什么原因&#xff0c;grafana的主题界面并不多&#xff0c;只有暗色&#xff0c;亮色和系统色三种 配置管理----首选项里可以看到 亮色&#xff1a; 暗色&…

网络层(IP协议)

文章目录 网络层IP协议IP协议报头32位源IP地址和目的IP地址:为了解决IP地址不够用的情况 IP地址管理子网掩码特殊IP 路由选择(简介) 网络层 网络层主要负责地址管理和路由选择.代表协议就是IP协议. IP协议 IP协议报头 4位版本: 4: 表示IPv4 ; 6: 表示IPv6 4位首部长度: 描述…

vscode导入STM32CubeIDE工程文件夹未定义警告清除方法

0 前言 在我们使用vscode去编辑STM32CubeIDE的工程文件时&#xff0c;经常会出现一些类型未定义、头文件路径无效的问题&#xff0c;无法正常使用且非常影响观感。本文介绍如何设置vscode导入的STM32CubeIDE配置文件&#xff0c;解决这一问题。 1 vscode导入STM32CubeIDE工程…

如何设置图像的尺寸大小?用它提高效率100%

调整图片像素和大小是一种常见的图像处理操作&#xff0c;可以根据需要改变图片的宽度和高度&#xff0c;在许多场景中都很有用&#xff0c;如网页设计、图像制作、打印和展示等&#xff0c;想要准确的对图片尺寸修改就需要用到专业的修改图片大小工具&#xff0c;下面就详细介…

今年的校招薪资真的让人咋舌!

秋招接近尾声&#xff0c;各大公司基本也陆续开奖了。这里整理了部分公司的薪资情况&#xff0c;数据来源于 OfferShow 和牛客网。 ps&#xff1a;爆料薪资的几乎都是 211 和 985 的&#xff0c;并不是刻意只选取学校好的。另外&#xff0c;无法保证数据的严格准确性。 淘天 …

MYSQL基础知识之【数据类型】

文章目录 前言标题一数值类型日期和时间类型字符串类型后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Mysql &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错…

基于IDEA+MySQL+SSM开发的证券交易结算系统

基于SSM的证券交易结算系统 项目介绍&#x1f481;&#x1f3fb; 网上交易克服了传统现场交易的弊端&#xff0c;用户通过网上交易可以随时、随地进行交易&#xff1b;同时&#xff0c;网上交易具有速度快、透明度高、成本低、安全性高等优点&#xff0c;与传统的基于营业部的证…

tinyViT论文笔记

论文&#xff1a;https://arxiv.org/abs/2207.10666 GitHub&#xff1a;https://github.com/microsoft/Cream/tree/main/TinyViT 摘要 在计算机视觉任务中&#xff0c;视觉ViT由于其优秀的模型能力已经引起了极大关注。但是&#xff0c;由于大多数ViT模型的参数量巨大&#x…

基于人工蜂鸟算法优化概率神经网络PNN的分类预测 - 附代码

基于人工蜂鸟算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工蜂鸟算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工蜂鸟优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…