Web 服务器 -【Tomcat】的简单学习

news2025/1/13 7:45:01

  • Tomcat
    • 1 简介
      • 1.1 什么是Web服务器
    • 2 基本使用
      • 2.1 下载
      • 2.2 安装
      • 2.3 卸载
      • 2.4 启动
      • 2.5 关闭
      • 2.6 配置
      • 2.7 部署
    • 3 Maven创建Web项目
      • 3.1 Web项目结构
      • 3.2 创建Maven Web项目
    • 4 IDEA使用Tomcat
      • 4.1 集成本地Tomcat
      • 4.2 Tomcat Maven插件

Tomcat

1 简介

1.1 什么是Web服务器

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-abKtSM7l-1691801125756)(assets/1627058356051.png)]

Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Web Tomcat服务器软件中,当Web服务器软件启动后,部署在Web服务器软件中的页面就可以直接通过浏览器来访问了。

Web服务器软件使用步骤

  • 准备静态资源
  • 下载安装Web服务器软件
  • 将静态资源部署到Web服务器上
  • 启动Web服务器使用浏览器访问对应的资源

上述内容在演示的时候,使用的是Apache下的Tomcat软件,至于Tomcat软件如何使用,后面会详细的讲到。而对于Web服务器来说,实现的方案有很多,Tomcat只是其中的一种,而除了Tomcat以外,还有很多优秀的Web服务器,比如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yv6WyzcN-1691801125757)(assets/1627060368806.png)]

Tomcat就是一款软件,我们主要是以学习如何去使用为主。具体我们会从以下这些方向去学习:

  1. 简介: 初步认识下Tomcat

  2. 基本使用: 安装、卸载、启动、关闭、配置和项目部署,这些都是对Tomcat的基本操作

  3. IDEA中如何创建Maven Web项目

  4. IDEA中如何使用Tomcat,后面这两个都是我们以后开发经常会用到的方式

首选我们来认识下Tomcat。

Tomcat

Tomcat的相关概念:

  • Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。

  • 概念中提到了JavaEE规范,那什么又是JavaEE规范呢?

    JavaEE: Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。

  • 因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖Tomcat才能运行。

  • Tomcat的官网: https://tomcat.apache.org/ 从官网上可以下载对应的版本进行使用。

Tomcat的LOGO

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3O9Qcq5-1691801125757)(assets/1627176045795.png)]

小结

通过这一节的学习,我们需要掌握以下内容:

  1. Web服务器的作用

封装HTTP协议操作,简化开发

可以将Web项目部署到服务器中,对外提供网上浏览服务

  1. Tomcat是一个轻量级的Web服务器,支持Servlet/JSP少量JavaEE规范,也称为Web容器,Servlet容器。

2 基本使用

Tomcat总共分两部分学习,先来学习Tomcat的基本使用,包括Tomcat的下载、安装、卸载、启动和关闭

2.1 下载

直接从官网下载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qx0IwhFR-1691801125757)(assets/1627178001030.png)]

2.2 安装

Tomcat是绿色版,直接解压即可

  • 在D盘的software目录下,将apache-tomcat-8.5.68-windows-x64.zip进行解压缩,会得到一个apache-tomcat-8.5.68的目录,Tomcat就已经安装成功。

    注意,Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。

  • 打开apache-tomcat-8.5.68目录就能看到如下目录结构,每个目录中包含的内容需要认识下,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AulIIwE6-1691801125758)(assets/1627178815892.png)]

    bin:目录下有两类文件,一种是以.bat结尾的,是Windows系统的可执行文件,一种是以.sh结尾的,是Linux系统的可执行文件。

    webapps:就是以后项目部署的目录

    到此,Tomcat的安装就已经完成。

2.3 卸载

卸载比较简单,可以直接删除目录即可

2.4 启动

双击: bin\startup.bat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1Ah3WLE-1691801125758)(assets/1627179006011.png)]

启动后,通过浏览器访问 http://localhost:8080能看到Apache Tomcat的内容就说明Tomcat已经启动成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zCAou0Gp-1691801125758)(assets/1627199957728.png)]

注意: 启动的过程中,控制台有中文乱码,需要修改conf/logging.prooperties

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7QFTa7Ab-1691801125759)(assets/1627199827589.png)]

2.5 关闭

关闭有三种方式

  • 直接x掉运行窗口:强制关闭[不建议]
  • bin\shutdown.bat:正常关闭
  • ctrl+c: 正常关闭

2.6 配置

修改端口

  • Tomcat默认的端口是8080,要想修改Tomcat启动的端口号,需要修改 conf/server.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMINVw2k-1691801125759)(assets/1627200509883.png)]

注: HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。

启动时可能出现的错误

  • Tomcat的端口号取值范围是0-65535之间任意未被占用的端口,如果设置的端口号被占用,启动的时候就会包如下的错误

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ynx0ot6-1691801125759)(assets/1627200780590.png)]

  • Tomcat启动的时候,启动窗口一闪而过: 需要检查JAVA_HOME环境变量是否正确配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pAyhjfVS-1691801125759)(assets/1627201248802.png)]

2.7 部署

  • Tomcat部署项目: 将项目放置到webapps目录下,即部署完成。

    • 资料/2. Tomcat/hello 目录拷贝到Tomcat的webapps目录下

    • 通过浏览器访问http://localhost/hello/a.html,能看到下面的内容就说明项目已经部署成功。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ZNTMw0Z-1691801125760)(assets/1627201572748.png)]

      但是呢随着项目的增大,项目中的资源也会越来越多,项目在拷贝的过程中也会越来越费时间,该如何解决呢?

  • 一般JavaWeb项目会被打包称war包,然后将war包放到Webapps目录下,Tomcat会自动解压缩war文件

    • 资料/2. Tomcat/haha.war目录拷贝到Tomcat的webapps目录下

    • Tomcat检测到war包后会自动完成解压缩,在webapps目录下就会多一个haha目录

    • 通过浏览器访问http://localhost/haha/a.html,能看到下面的内容就说明项目已经部署成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nxGXdKW-1691801125760)(assets/1627201868752.png)]

至此,Tomcat的部署就已经完成了,至于如何获得项目对应的war包,后期我们会借助于IDEA工具来生成。

3 Maven创建Web项目

介绍完Tomcat的基本使用后,我们来学习在IDEA中如何创建Maven Web项目,学习这种方式的原因是以后Tomcat中运行的绝大多数都是Web项目,而使用Maven工具能更加简单快捷的把Web项目给创建出来,所以Maven的Web项目具体如何来构建呢?

在真正创建Maven Web项目之前,我们先要知道Web项目长什么样子,具体的结构是什么?

3.1 Web项目结构

Web项目的结构分为:开发中的项目和开发完可以部署的Web项目,这两种项目的结构是不一样的,我们一个个来介绍下:

  • Maven Web项目结构: 开发中的项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xCpTO8gC-1691801125760)(assets/1627202865978.png)]

  • 开发完成部署的Web项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkevkjrM-1691801125760)(assets/1627202903750.png)]

    • 开发项目通过执行Maven打包命令package,可以获取到部署的Web项目目录
    • 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下
    • pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下

3.2 创建Maven Web项目

介绍完Maven Web的项目结构后,接下来使用Maven来创建Web项目,创建方式有两种:使用骨架和不使用骨架

使用骨架

具体的步骤包含:

1.创建Maven项目

2.选择使用Web项目骨架

3.输入Maven项目坐标创建项目

4.确认Maven相关的配置信息后,完成项目创建

5.删除pom.xml中多余内容

6.补齐Maven Web项目缺失的目录结构

  1. 创建Maven项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0x2BPHA3-1691801125761)(assets/1627227574092.png)]

  2. 选择使用Web项目骨架

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EYQcp1v9-1691801125761)(assets/1627227650406.png)]

  3. 输入Maven项目坐标创建项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Lq2ZNfn-1691801125761)(assets/1627228065007.png)]

  4. 确认Maven相关的配置信息后,完成项目创建

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XnfFNCn8-1691801125761)(assets/1627228413280.png)]

  5. 删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZsryneQ0-1691801125762)(assets/1627228584625.png)]

  6. 补齐Maven Web项目缺失的目录结构,默认没有java和resources目录,需要手动完成创建补齐,最终的目录结果如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hovgd3oq-1691801125762)(assets/1627228673162.png)]

不使用骨架

具体的步骤包含:

1.创建Maven项目

2.选择不使用Web项目骨架

3.输入Maven项目坐标创建项目

4.在pom.xml设置打包方式为war

5.补齐Maven Web项目缺失webapp的目录结构

6.补齐Maven Web项目缺失WEB-INF/web.xml的目录结构

  1. 创建Maven项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i394UL1D-1691801125762)(assets/1627229111549.png)]

  2. 选择不使用Web项目骨架

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhBvEMR0-1691801125762)(assets/1627229137316.png)]

  3. 输入Maven项目坐标创建项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c91XzC8a-1691801125763)(assets/1627229371251.png)]

  4. 在pom.xml设置打包方式为war,默认是不写代表打包方式为jar

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T52o1yQD-1691801125763)(assets/1627229428161.png)]

  5. 补齐Maven Web项目缺失webapp的目录结构

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tKlkiQNX-1691801125763)(assets/1627229584134.png)]

  6. 补齐Maven Web项目缺失WEB-INF/web.xml的目录结构
    6800

  7. 补充完后,最终的项目结构如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoNRM0fP-1691801125764)(assets/1627229478030.png)]

上述两种方式,创建的web项目,都不是很全,需要手动补充内容,至于最终采用哪种方式来创建Maven Web项目,都是可以的,根据各自的喜好来选择使用即可。

小结

1.掌握Maven Web项目的目录结构

2.掌握使用骨架的方式创建Maven Web项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eLq8QSbJ-1691801125764)(assets/1627204022604.png)]

3.掌握不使用骨架的方式创建Maven Web项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ohtdqvDa-1691801125764)(assets/1627204076090.png)]

4 IDEA使用Tomcat

  • Maven Web项目创建成功后,通过Maven的package命令可以将项目打包成war包,将war文件拷贝到Tomcat的webapps目录下,启动Tomcat就可以将项目部署成功,然后通过浏览器进行访问即可。
  • 然而我们在开发的过程中,项目中的内容会经常发生变化,如果按照上面这种方式来部署测试,是非常不方便的
  • 如何在IDEA中能快速使用Tomcat呢?

在IDEA中集成使用Tomcat有两种方式,分别是集成本地TomcatTomcat Maven插件

4.1 集成本地Tomcat

目标: 将刚才本地安装好的Tomcat8集成到IDEA中,完成项目部署,具体的实现步骤

  1. 打开添加本地Tomcat的面板

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TgOmGjSf-1691801125765)(assets/1627229992900.png)]

  2. 指定本地Tomcat的具体路径

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C8B9ejke-1691801125765)(assets/1627230313062.png)]

  3. 修改Tomcat的名称,此步骤可以不改,只是让名字看起来更有意义,HTTP port中的端口也可以进行修改,比如把8080改成80

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VsYabGTx-1691801125765)(assets/1627230366658.png)]

  4. 将开发项目部署项目到Tomcat中

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G9B2WVWm-1691801125766)(assets/1627230913259.png)]

    扩展内容: xxx.war和 xxx.war exploded这两种部署项目模式的区别?

    • war模式是将WEB工程打成war包,把war包发布到Tomcat服务器上

    • war exploded模式是将WEB工程以当前文件夹的位置关系发布到Tomcat服务器上

    • war模式部署成功后,Tomcat的webapps目录下会有部署的项目内容

    • war exploded模式部署成功后,Tomcat的webapps目录下没有,而使用的是项目的target目录下的内容进行部署

    • 建议大家都选war模式进行部署,更符合项目部署的实际情况

  5. 部署成功后,就可以启动项目,为了能更好的看到启动的效果,可以在webapp目录下添加a.html页面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbVYZygU-1691801125766)(assets/1627233265351.png)]

  6. 启动成功后,可以通过浏览器进行访问测试

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tbJnFCCS-1691801125766)(assets/1627232743706.png)]

  7. 最终的注意事项

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Gwe7dP5-1691801125766)(assets/1627232916624.png)]

至此,IDEA中集成本地Tomcat进行项目部署的内容我们就介绍完了,整体步骤如下,大家需要按照流程进行部署操作练习。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NuchlFE5-1691801125767)(assets/1627205657117.png)]

4.2 Tomcat Maven插件

在IDEA中使用本地Tomcat进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用Maven中的Tomcat插件来部署项目,具体的实现步骤,只需要两步,分别是:

  1. 在pom.xml中添加Tomcat插件

    <build>
        <plugins>
        	<!--Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </build>
    
  2. 使用Maven Helper插件快速启动项目,选中项目,右键–>Run Maven --> tomcat7:run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RR9rpmNh-1691801125767)(assets/1627233963315.png)]

注意:

  • 如果选中项目并右键点击后,看不到Run Maven和Debug Maven,这个时候就需要在IDEA中下载Maven Helper插件,具体的操作方式为: File --> Settings --> Plugins --> Maven Helper —> Install,安装完后按照提示重启IDEA,就可以看到了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sih830zy-1691801125767)(assets/1627234184076.png)]

  • Maven Tomcat插件目前只有Tomcat7版本,没有更高的版本可以使用
  • 使用Maven Tomcat插件,要想修改Tomcat的端口和访问路径,可以直接修改pom.xml
<build>
    <plugins>
    	<!--Tomcat插件 -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
            	<port>80</port><!--访问端口号 -->
                <!--项目访问路径
					未配置访问路径: http://localhost:80/tomcat-demo2/a.html
					配置/后访问路径: http://localhost:80/a.html
					如果配置成 /hello,访问路径会变成什么?
						答案: http://localhost:80/hello/a.html
				-->
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
</build>

小结

通过这一节的学习,大家要掌握在IDEA中使用Tomcat的两种方式,集成本地Tomcat和使用Maven的Tomcat插件。后者更简单,推荐大家使用,但是如果对于Tomcat的版本有比较高的要求,要在Tomcat7以上,这个时候就只能用前者了。

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

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

相关文章

【MySQL】并发执行事务可能存在的问题, 事务的四种隔离级别

文章目录 前言一、并发执行事务可能存在的问题1, 脏读问题2, 不可重复读3, 幻读 二、MySQL 的四种隔离级别1, READ UNCOMMITTED 读未提交2, READ COMMITTED 读已提交3, REPEATABLE READ 可重复读 (MySQL 的默认事务隔离级别)4, SERIALIZABLE 串行化 总结 前言 各位读者好, 我是…

Mac如何打开隐藏文件中Redis的配置文件redis.conf

Redis下载(通过⬇️博客下载的Redis默认路径为&#xff1a;/usr/local/etc) Redis下载 1.打开终端进入/usr文件夹 cd /usr 2.打开/local/文件夹 open local 3.找到redis.conf并打开,即可修改配置信息

MATLAB算法实战应用案例精讲-【图像处理】图像分类模型Swin TrasnformerViT

目录 Swin Trasnformer 1. 模型介绍 2. 模型结构 3. 模型实现 4. 模型特点 5. 模型效果 ViT( Vision Transformer) 模型介绍 模型结构与实现 1. 图像分块嵌入 2. 多头注意力 3. 多层感知机&#xff08;MLP&#xff09; 4. DropPath 5. 基础模块 6. 定义ViT网络 …

gulimall-缓存-缓存使用

文章目录 前言一、本地缓存与分布式缓存1.1 使用缓存1.2 本地缓存1.3 本地模式在分布式下的问题1.4 分布式缓存 二、整合redis测试2.1 引入依赖2.2 配置信息2.3 测试 三、改造三级分类业务3.1 代码改造 四、高并发下缓存失效问题4.1 缓存穿透4.2 缓存雪崩4.3 缓存击穿 五、分布…

零售行业供应链管理核心KPI指标(一) – 能力、速度、效率和成本

有关零售行业供应链管理KPI指标的综合性分享&#xff0c;涉及到供应链能力、速度、效率和成本总共九大指标&#xff0c;是一个大框架&#xff0c;比较核心也比较综合。 衡量消费品零售企业供应链管理效率和水平的核心KPI通常有哪些&#xff1f; 图片来源-派可数据&#xff08;…

OPENCV C++(十二)模板匹配

正常模板匹配函数 matchTemplate(img, templatee, resultMat, 0);//模板匹配 这里0代表的是方法&#xff0c;一般默认为0就ok img是输入图像 templatee是模板 resultmat是输出 1、cv::TM_SQDIFF&#xff1a;该方法使用平方差进行匹配&#xff0c;因此最佳的匹配结果在结果为…

【java】递归

java递归 递归的概念求135...19求阶乘 递归的概念 所谓的递归就是&#xff0c;方法调用自身&#xff0c;称之为递归方法 求135…19 public class Java16_Object_Recursion {public static void main(String[] args) {// 1 3 5 7 9... 19int result computeAP( 10 );Sys…

【移动机器人运动规划】04 ——轨迹生成

文章目录 前言相关代码整理: 介绍Minimum Snap OptimizationDifferential Flatness(微分平坦)Minimum-snapSmooth 1D TrajectorySmooth Multi-Segment TrajectoryOptimization-based Trajectory Generation Convex Optimization&#xff08;凸优化&#xff09;凸函数和凸集凸优…

第3章:线性模型

线性回归 优点&#xff1a;简单、基本、可理解性好。 适用于处理数值型数据。编码&#xff1a;序关系&#xff08;衣服号码s、m、l等等&#xff09;独热编码&#xff08;00010&#xff09; 求解 求偏导让导数为0&#xff1f;为什么&#xff1f; 希望找到极值点&#xff0c;即…

vector【1】介绍与使用(超详解哦)

vector 引言vector介绍接口使用默认成员函数迭代器容量元素访问数据修改 总结 引言 在string部分&#xff0c;我们详细的介绍了各个接口的使用&#xff0c;虽然其不属于STL的一部分&#xff0c;但是接口与STL中的容器相似&#xff0c;所以我们在学习使用vector等STL容器的使用…

最强自动化测试框架Playwright(7)- 使用cookie避免重复登录

playwright在称为浏览器上下文的隔离环境中执行测试。这种隔离模型提高了可重复性&#xff0c;并防止了级联测试失败。测试可以加载现有的经过身份验证的状态。这消除了在每次测试中进行身份验证的需要&#xff0c;并加快了测试执行速度。 每次测试前登录 以下示例登录到 Git…

工单管理系统有什么优点?工单系统是如何提高企业服务质量和运营效率的?

工单管理系统是一款基于云平台打造的高效报修工单管理系统&#xff0c;为企业报修管理、维保流程优化和后勤决策分析提供全面支持。通过应用工单管理系统&#xff0c;企业能够轻松提升报修效率&#xff0c;降低人工成本&#xff0c;同时提高后勤管理的质量和效益。系统利用先进…

【数据结构•堆】堆排序(理论基础)

堆的定义  • 堆是一个完全二叉树   –所有叶子在同一层或者两个连续层   –最后一层的结点占据尽量左的位置  • 堆性质   –为空, 或者最小元素在根上   –两棵子树也是堆 存储方式  • 最小堆的元素保存在heap[1..hs]内   – 根在heap[1]   –K的左儿子是2k,…

C++语法中bitset位图介绍及模拟实现

一、位图的引入 先来看下边一道面试题&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。 经过我们之前的学习&#xff0c;我们可能会有以下的思路&#xff1a; 对这些数进行排序&#xff…

Openlayers实战:列表与图层双向信息提示

在Openlayers的实际项目中,经常会在左侧列出信息列表,右边的地图上显示的是对应的图层内容,两边是一一对应的,为了看出来选择的是哪一个,就需要两边互相提示,本示例就很好的展示了这种效果,具体的方法请参考源代码。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhu…

HICP学习--BGP综合小实验

一、实验拓扑 二、实验需求 1、R2-7每台路由器均存在一个环回接口用于建立邻居&#xff0c;同时还存在一个环回来代表连接用户的接口;最终这些连接用户的接口网络需要可以和R1/8的环回通讯 2、AS2网段地址172.16.0.0/16 减路由条目数量 三、实验步骤 首先配置IP R1配置 [r1]…

2023国赛数学建模D题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

拓扑布局和建立小型网络

练习 2.6.1&#xff1a;拓扑布局和建立小型网络 地址表 本实验不包括地址表。 拓扑图 学习目标 正确识别网络中使用的电缆物理连接点对点交换网络验证每个网络的基本连通性 简介&#xff1a; 许多网络问题都可以在网络的物理层解决。因此&#xff0c;必须清楚了解网络连接…

软件测试基础篇——LAMP环境搭建

LAMP 1、Linux系统的其他命令 find命令&#xff1a;在目录下查找文件 ​ 格式一&#xff1a;find 路径 参数 文件名 ​ 路径&#xff1a;如果没有指定路径&#xff0c;默认是在当前目录下 ​ 参数&#xff1a;-name 根据文件名来查找&#xff0c;区分大小写&#xff1b; -…

番外13:使用ADS进行容差分析(蒙特卡洛分析、灵敏度分析、良率分析、良率优化),以带通滤波器设计为例

番外13&#xff1a;使用ADS进行容差分析&#xff08;蒙特卡洛分析、灵敏度分析、良率分析、良率优化&#xff09;&#xff0c;以带通滤波器设计为例 资源下载 https://download.csdn.net/download/weixin_44584198/88210327 技术背景 容差分析是当前电子可靠性设计中最先进…