当前位置: 首页 > news >正文

Web基础:HTML快速入门

HTML基础语法

HTML(超文本标记语言) 是用于创建网页内容的 标记语言,通过定义页面的 结构和内容 来告诉浏览器如何呈现网页。

超文本(Hypertext) 是一种通过 链接(Hyperlinks) 将不同文本、图像、视频等内容关联起来的信息组织形式,其核心特点是 非线性可扩展性

为什么需要掌握HTML?

学习Web渗透需要掌握HTML,因为HTML是网页内容的结构语言,渗透测试的核心目标是发现并利用网站漏洞。通过HTML标签(如<form><input><a>)可以:

  1. 分析页面逻辑:快速定位漏洞入口(如登录表单、上传功能);

  2. 构造恶意请求:直接篡改HTML参数(如SQL注入、XSS攻击)或绕过前端验证;

  3. 绕过安全防护:利用HTML结构识别WAF规则盲区或隐藏接口;

html代码编辑方式
文本编辑器

HTML代码的编辑方式多种多样,可以根据需求、场景和技术水平选择不同的工具或方法。

  • Visual Studio Code(推荐,功能强大且免费)

  • Sublime Text(轻量高效)

在线编辑器
  • JSFiddle

  • CodeSandbox

我建议从CodePen开始。它用户友好,非常适合初学者。

图片

让我们编写我们的第一个HTML代码!这里有一个简单的例子:

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>我的第一个网页</title></head><body><h1>你好,世界!</h1><p>这是我的第一个HTML页面。</p></body></html>

代码含义如下:

  • <!DOCTYPE html> 告诉浏览器这是一个HTML5文档。

  • <html> 是HTML页面的根元素。

  • <head> 包含关于文档的元信息。

  • <title> 指定页面的标题(显示在浏览器的标题栏中)。

  • <body> 定义文档的正文,其中包含可见内容。

  • <h1> 定义一个大标题。

  • <p> 定义一个段落。

在Codepen中查看代码效果:

图片

HTML元素

HTML使用“元素”来构建内容结构。以下是一些常见的HTML元素:

图片

让我们看看一些实际的例子:

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>我的第一个网页</title>
</head><h1>我最喜欢的动物</h1><p>以下是我最喜欢的三种动物:</p><ol><li>猫</li><li>狗</li><li>昆</li></ol><p>了解更多关于<a href="https://www.baidu.com">动物</a>的信息。</p></html>

这段代码创建了一个标题、一个段落、一个动物的有序列表和一个指向百度的链接,以了解更多关于动物的信息。效果如下:

图片

网络浏览器就像是HTML的翻译。它们读取HTML代码并将其渲染成我们看到的视觉网页。不同的浏览器可能会稍微不同地渲染相同的HTML,这就是为什么要在多个浏览器上测试你

HTML标签、属性和元素

HTML由三个关键组件组成:

  1. 标签:这些是HTML的构建块。它们总是被包含在尖括号中,比如<p>代表段落。

  2. 属性:这些提供了关于元素的额外信息。它们总是在开始标签中指定。

  3. 元素:一个元素是从开始标签到结束标签的所有内容

如上述代码中提到的例子:

<a href="https://www.baidu.com" title="访问百度">动物</a>

在这个例子中:

  • <a>是标签(代表超链接)

  • hreftitle是属性

  • 整行是一个元素

基本HTML结构

下面是一个代码片段,展示你可能在这些编辑器之一中设置的基本HTML结构:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>我惊人的网站</title><link rel="stylesheet" href="styles.css">
</head><body><header><h1>欢迎来到我惊人的网站</h1><nav><ul><li><a href="#home">首页</a></li><li><a href="#about">关于</a></li><li><a href="#contact">联系方式</a></li></ul></nav></header><main>        <section id="home"><h2>首页</h2><p>欢迎来到我的网站!随意探索。</p></section><!-- 更多部分将在这里 --></main><footer><p>&copy; 2023 我惊人的网站。保留所有权利。</p></footer><script src="script.js"></script>
</body></html>

这段代码为网站设置了一个基本结构,包括页头、导航菜单、主要内容区域和页脚。

<nav> 是 HTML5 引入的语义化标签,用于定义页面的导航部分。

图片

HTML基础标签

现在,让我们探索一些最常用的HTML标签。我会为每个标签提供示例和解释。

1. 标题

HTML提供了六级标题,从 <h1><h6>

<h1>这是一个主标题</h1>
<h2>这是一个次要标题</h2>
<h3>这是一个三级标题</h3>

这些标签不仅使文本变大,还帮助搜索引擎理解你的内容结构。把它们想象成书中的章节标题!

图片

2. 段落

标签用于定义段落。

<p>这是一个段落。它可以包含多个句子,甚至在你HTML代码中跨越多行,但在浏览器中会显示为单一的文本块。</p>

小贴士:总是使用 <p> 标签来定义段落,而不仅仅是用于间距。这有助于提高可访问性和SEO!效果:

图片

3. 链接

链接是使用 <a>(锚点)标签创建的。

<a href="https://www.example.com">点击这里访问Example.com</a>

href 属性指定了链接所指向的页面URL链接就像是网站中的门——它们使用户可以从一个页面导航到另一个页面!

效果:

图片

4. 图像

图像是通过 <img> 标签插入的。

<img src="cat.jpg" alt="一只可爱的小猫坐在窗台上">

src 属性指定了图像文件的路径,而 alt 提供了屏幕阅读器使用或图像加载失败时的替代文本。总是包含描述性的替代文本——这就像是给你们的图像一个声音!

图片

5. 列表

HTML支持有序(编号)列表和无序列表(项目符号)。

无序列表:

<ul>
<li>苹果</li>
<li>香蕉</li>
<li>樱桃</li>
</ul>

图片

有序列表:

<ol>
<li>起床</li>
<li>刷牙</li>
<li>吃早餐</li>
</ol>

列表非常适合组织信息。

图片

6. 强调和重要

使用 <em> 来强调(通常显示为斜体),使用 <strong> 来表示重要(通常显示为粗体)。

<p>我<em>真的</em>喜欢HTML。这对于网页开发是<strong>至关重要</strong>的!</p>

图片

7. 换行和水平线

有时你需要添加一个换行而不开始一个新的段落。这时 <br> 就派上用场了:

<p>玫瑰是红的,<br>紫罗兰是蓝的,<br>HTML很棒,<br>你也是!</p>

图片

要添加一条水平线,使用 <hr> 标签:

<p>玫瑰是红的,<br>紫罗兰是蓝的,<hr><br>HTML很棒,<br>你也是!</p>

<br> 想象成键盘上的软回车,而 <hr> 就像是在纸上画一条线来分隔部分。

图片

强制性结束标签

大多数HTML元素都需要一个开始标签和一个结束标签。然而,有些元素是自闭合的。这些元素通常不包含任何内容。下面是一个表格,列出了一些常见元素以及它们是否需要结束标签:

图片

HTML 属性

HTML 属性是用于调整 HTML 元素行为或显示的标记语言的一部分。它总是包含在元素的开始标签中,通常由一个名称和一个值组成。让我们看看一些实际的例子,以更好地理解属性是如何工作的:

1. href 属性
<a href="https://www.example.com">访问 Example.com</a>

在这个例子中,href 是属性。它告诉浏览器点击链接时应该去哪里。

2. src 属性
<img src="cute-puppy.jpg" alt="一只可爱的狗狗">

在这里,有两个属性:

  • src:指定图像文件的路径。

  • alt:如果图像无法显示,提供替代文本。

3. style 属性
<p style="color: blue; font-size: 16px;">这是一个蓝色的段落。</p>

图片

style 属性允许我们直接向元素添加 CSS。

HTML 全局属性

全局属性可以用于任何 HTML 元素。让我们看看一些最常见的内容:

属性描述示例
class为元素指定一个或多个类名<div class="header">
id为元素指定一个唯一的 ID<p id="intro">
style为元素指定一个内联 CSS 样式<p style="color:blue;">
title为元素指定额外信息<abbr title="世界卫生组织">WHO</abbr>

此时有以下例子:

<a href="https://www.example.com" target="_blank" title="访问 Example.com">点击我!</a>

在这个例子中,我们使用了三个属性:

  • href:指定链接去的页面的 URL。

  • target:指定在哪里打开链接的文档。

  • title:提供关于链接的额外信息。

通用属性

通用属性是可以用于大多数(但不是全部)HTML 元素的属性。它们不像全局属性那样通用,但仍然非常灵活。以下是一些例子:

属性描述示例
onclick指定当元素被点击时运行的脚本<button onclick="alert('你好!')">点击我</button>
tabindex指定元素的键盘导航顺序<input type="text" tabindex="1">
accesskey指定激活/聚焦元素的快捷键<a href="/" accesskey="h">首页</a>

图片

HTML - 块级和内联元素
块级元素

想象我们正在用积木建造一座房子,其中一些积木很大,独自占据了一整行。这些就像是HTML中的块级元素。它们从新的一行开始,并占据全部可用的宽度。

常见的块级元素:

<div>我是一个块级元素</div>
<p>我也是一个块级元素</p>
<h1>我也是一个标题,同时也是块级元素!</h1>

运行这段代码时,每个元素都会出现在新的一行上。

图片

下面是一些常见块级元素的表格:

图片

内联元素

现在,让我们想象一下那些可以并排放在同一行上的积木部件。这些就像是HTML中的内联元素。它们只占据必要的宽度,并且不会从新的一行开始。

这里有一个例子:

<span>我是一个内联元素</span>
<a href="#">我是一个链接,同时也是内联的</a>
<strong>我是加粗的,也是内联的!</strong>

这些元素都会出现在同一行上(如果有足够的空间)。

下面是一些常见内联元素的表格:

图片

图片

使用 <span> 标签分组

<span> 标签就像是一个小而透明的容器,你可以用来分组内联元素,甚至是在块级元素内的文本部分。

这里有一个例子:

<p>
我喜欢 <span style="color: blue;">蓝色</span> 和
<span style="color: green;">绿色</span> 颜色。
</p>

图片

在这个例子中,我们使用了 <span> 来将不同的颜色应用到段落中的特定单词。

记住,<div> 是用来分组块级元素(或创建块级分组)的,而 <span> 是用来分组内联元素或文本部分的。

Iframe:通往其他世界的窗口

Iframe,全称“inline frame”,是一个HTML元素,允许你在当前HTML文档中嵌入另一个HTML文档。它就像在网页上创建了一个小窗口,展示了互联网上其他地方的内容。

语法

Iframe的基本语法出奇地简单:

<iframe src="URL"></iframe>

在这里,src是一个属性,用于指定你想嵌入的页面的URL。

iframes的示例

让我们通过一些实际示例来更好地理解iframes。

1. 基础Iframe
<iframe src="http://www.bilibili.com" height="1000" width="800"></iframe>

这段代码将嵌入"url"的内容到你的网页中。

图片

我们设置了一个宽为800,高为1000显示文档为b站(也可以选择本地html文档)的内联框架。

如果我们把链接换成www.baidu.com, 就会受到策略限制,无法正常显示:

图片

这是因为百度使用了 X-Frame-Options 响应头来限制其在 iframe 中的嵌套。X-Frame-Options 是一种安全策略,可以由网站的服务器设置,用于控制页面是否允许在 iframe 中嵌套。当网站设置了 X-Frame-Options 为 DENYSAMEORIGIN,浏览器将不允许将该页面在 iframe 中加载,以防止点击劫持等安全问题。

除此之外iframe的使用有其他需要注意的地方,可以参考如下文章:

https://juejin.cn/post/7261808673035075643
表单:交互式网页的门户
HTML表单的功能

想象你在一个咖啡店里,你想点你最喜欢的拿铁。你需要告诉咖啡师你想要什么,对吧?HTML表单就像是这种对话的数字版本。它们允许用户输入信息并将其发送到网页服务器进行处理。

表单是网页上用户交互的支柱。它们用于:

  1. 收集用户数据(如订阅新闻通讯)

  2. 登录网站

  3. 搜索信息

  4. 进行在线购买

  5. 提交反馈或评论

没有表单,网页将是一个相当无聊的单向信息通道。表单使网页变得交互和动态!

创建表单

让我们创建一个基本的HTML表单

<form action="/submit-form" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><label for="email">电子邮件:</label>
<input type="email" id="email" name="email" required><input type="submit" value="提交">
</form>

图片

让我们分解一下:

  1. <form> 标签是我们所有表单元素的容器。

  2. action="/submit-form" 告诉浏览器在表单提交时将数据发送到哪里。

  3. method="post" 指定如何发送数据(在这个例子中,数据以HTTP POST请求的形式发送)。

  4. <label> 标签为我们的输入字段提供描述。

  5. <input> 标签创建实际的输入字段。

  6. <input> 中的 type 属性指定输入的类型(文本、电子邮件等)。

  7. required 属性使字段成为必填项。

  8. 最后一个 <input>type="submit" 创建了一个提交按钮。

一个简单的搜索表单
<form action="/search" method="get">
<input type="text" name="query" placeholder="搜索...">
<input type="submit" value="搜索">
</form>

这个表单创建了一个简单的搜索框和一个提交按钮。当用户输入查询并点击“搜索”时,它会发送一个GET请求到“/search”,并将查询作为参数。

图片

一个联系表单
<form action="/search" method="get">
<input type="text" name="query" placeholder="搜索...">
<input type="submit" value="搜索">
</form>

这个表单包括一个文本区域,用于撰写较长的消息,非常适合联系页面!

图片

HTML表单元素

表单不仅仅只是文本输入。有一整套工具箱中的元素可以用来创建丰富、交互式的表单。让我们探索一些:

图片

每个元素都有自己独特的属性和用例。随着你在网页开发旅程中的进步,你将发现自己会在创造性的组合中使用这些元素来构建复杂且用户友好的表单。

HTML表单属性

属性就像是我们给表单元素的特殊指令。它们帮助控制表单的行为以及它与用户的交互。以下是一些重要的属性:

图片

当正确使用时,这些属性可以非常强大。例如,在包含敏感信息的表单上设置 autocomplete="off" 可以通过防止浏览器存储输入数据来增强安全性。

HTML表单示例代码

现在,让我们将所有内容放在一起,展示一个比较复杂的注册表单示例:

<form action="/register" method="post">
<fieldset>
<legend>个人信息</legend><label for="fullname">全名:</label>
<input type="text" id="fullname" name="fullname" required><label for="email">电子邮件:</label>
<input type="email" id="email" name="email" required><label for="birthdate">出生日期:</label>
<input type="date" id="birthdate" name="birthdate"><label for="gender">性别:</label>
<select id="gender" name="gender">
<option value="">选择...</option>
<option value="male">男性</option>
<option value="female">女性</option>
<option value="other">其他</option>
</select>
</fieldset><fieldset>
<legend>账户详情</legend><label for="username">用户名:</label>
<input type="text" id="username" name="username" required><label for="password">密码:</label>
<input type="password" id="password" name="password" required><label for="confirmpassword">确认密码:</label>
<input type="password" id="confirmpassword" name="confirmpassword" required>
</fieldset><fieldset>
<legend>偏好设置</legend><label>
<input type="checkbox" name="newsletter" value="yes"> 订阅新闻通讯
</label><p>喜欢的颜色:</p>
<label>
<input type="radio" name="color" value="red"> 红色
</label>
<label>
<input type="radio" name="color" value="blue"> 蓝色
</label>
<label>
<input type="radio" name="color" value="green"> 绿色
</label>
</fieldset><input type="submit" value="注册">
</form>

这个表单展示了我们讨论的各种表单元素和属性的使用。它被组织成三个字段集:个人信息、账户详情和偏好设置。每个字段集将相关的输入分组,使表单更加有序且易于理解。

图片

HTML表单是如何工作的?

现在我们已经创建了我们的表单,当我点击那个提交按钮时会发生如下过程:

  1. 用户输入:用户填写表单字段中的信息。

  2. 验证:如果我们设置了客户端验证(使用HTML5属性如 required 或JavaScript),浏览器会在继续之前检查输入是否有效。

  3. 提交:当用户点击提交按钮时,浏览器收集所有表单数据。

  4. 请求:浏览器创建一个HTTP请求(GET或POST,取决于 method 属性),并将其发送到 action 属性指定的URL。

  5. 服务器处理:服务器接收到请求并处理数据(这部分涉及到服务器端编程,超出了本HTML教程的范围)。

  6. 响应:服务器将响应发送回浏览器,这可能是新页面、重定向或成功/错误消息。

  7. 浏览器行为:浏览器根据响应采取行动,通常是通过加载新页面或更新当前页面。

相关文章:

Web基础:HTML快速入门

HTML基础语法 HTML&#xff08;超文本标记语言&#xff09; 是用于创建网页内容的 标记语言&#xff0c;通过定义页面的 结构和内容 来告诉浏览器如何呈现网页。 超文本&#xff08;Hypertext&#xff09; 是一种通过 链接&#xff08;Hyperlinks&#xff09; 将不同文本、图像…...

异常(8)

今天补充一些异常的细节,帮助大家更好的理解异常. 注:关于异常的处理方式 异常的种类有很多,我们要根据不同的业务场景来决定. 对于比较严重的问题(例如和算钱相关的场景),应该让程序直接崩溃,防止造成更严重的结果 对于不太严重的问题(大多数场景),可以记录错误日志,并通过…...

平时作业

java作业 package zuoye; ​ public class zuoye02 {public static int Random(int n) {return (int)(n * Math.random());}public static void main(String[] args) {int n 100;//System.out.println(Random(n));int[]random new int[50];for(int i 0; i <50; i) {rand…...

宇树人形机器人开源模型

1. 下载源码 https://github.com/unitreerobotics/unitree_ros.git2. 启动Gazebo roslaunch h1_description gazebo.launch3. 仿真效果 H1 GO2 B2 Laikago Z1 4. VMware: vmw_ioctl_command error Invalid argument 这个错误通常出现在虚拟机环境中运行需要OpenGL支持的应用…...

**ResNet-SE + MFCC** 训练框架,包括 **数据加载、训练流程**,以及 **混淆矩阵** 可视化示例

1. 依赖库安装 如果你还没安装相关库&#xff0c;请先执行&#xff1a; pip install torch torchaudio torchvision scikit-learn matplotlib tqdm2. 数据加载 这里假设你有一个 音频分类数据集&#xff0c;其文件结构如下&#xff1a; dataset/ │── train/ │ ├──…...

Golang | 每日一练 (5)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (5)题目参考答案线程与协程线程切换…...

搞定python之四----函数、lambda和模块

本文是《搞定python》系列专栏的第四篇&#xff0c;通过代码演示列python自定义函数、lambda和模块的用法。本文学习完成后&#xff0c;python的基础知识就完了。后面会学习面向对象的内容。 1、自定义函数 # 测试python自定义函数# 有参数&#xff0c;没有返回值 def say_he…...

算法分享———进制转换通用算法

模板一&#xff1a;任意&#xff08;K&#xff09;进制转10进制 将k进制的x转化为10进制的x ll x0; for(int i1;i<n;i) { xx*ka[i]; } cout<<x<<endl;模板二&#xff1a;十进制转m进制 ll x; cin>>x; while(x) { a[cnt]x%k; x/k; } reverse(a1,a1cnt);…...

Proser:新增指令批次发送功能

Proser中的批次发送功能&#xff0c;是通过指令集进行管理的。 起初设计时&#xff0c;希望指令集窗口自身包含指令的编辑功能&#xff0c;这部分功能与传输窗口的功能重合度高&#xff0c;所以设计上进行了简化&#xff0c;由用户在传输窗口输入指令&#xff0c;添加到指令集窗…...

rpc grpc

RPC Remote Procedure Call&#xff0c;远程过程调用&#xff0c;是用来屏蔽分布式计算中的各种调用细节&#xff0c;使得调用远端的方法就像调用本地的一样。 客户端与服务端沟通的过程 客户端发送数据(以字节流的方式)&#xff1b;&#xff08;编码&#xff09;服务端接受…...

AI赋能铁道安全巡检探索智能巡检新时代,基于YOLOv7全系列【tiny/l/x】参数模型开发构建铁路轨道场景下轨道上人员行为异常检测预警系统

在交通强国的战略引领下&#xff0c;中国铁路网如巨龙般纵贯大江南北&#xff0c;将五湖四海紧密相连&#xff0c;极大地促进了人员出行与物流运输的便捷性。然而&#xff0c;随着铁路线路的不断扩展&#xff0c;管理层面的安全问题也日益凸显。历史上&#xff0c;多起与铁路相…...

Kubernetes安全:集群保护的最佳实践

随着容器化技术的广泛应用&#xff0c;Kubernetes已经成为企业IT基础设施的重要组成部分。然而&#xff0c;Kubernetes集群的复杂性也带来了独特的安全挑战。如何在动态变化的云原生环境中保障集群的安全性&#xff0c;成为每一位运维工程师和安全专家关注的焦点。本文将详细探…...

R+VIC模型融合实践技术应用及未来气候变化模型预测

在气候变化问题日益严重的今天&#xff0c;水文模型在防洪规划&#xff0c;未来预测等方面发挥着不可替代的重要作用。目前&#xff0c;无论是工程实践或是科学研究中都存在很多著名的水文模型如SWAT/HSPF/HEC-HMS等。虽然&#xff0c;这些软件有各自的优点&#xff1b;但是&am…...

前端开发:混合技术栈的应用

目录 前言 混合技术栈的优势 移动端开发嵌入H5 1、场景描述 2、实现方法 3、源码示例 OC项目嵌入Swift的使用 1、场景描述 2、实现方法 3、源码示例 HarmonyOS开发中嵌入WebView 1、权限配置 2、加载网页 结束语 前言 随着技术的不断进步&#xff0c;软件开发领域…...

Machine Learning: 十大基本机器学习算法

机器学习算法分类&#xff1a;监督学习、无监督学习、强化学习 基本的机器学习算法&#xff1a; 线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维、梯度增强。 机器学习算法大致可以分为三类&#xff1a; 监督学习算法 (Sup…...

react实现一个列表的拖拽排序(react实现拖拽)

需求场景&#xff1a; 我的项目里需要实现一个垂直列表的拖拽排序&#xff0c;效果图如下图&#xff1a; 技术调研&#xff1a; 借用antd Table实现&#xff1a; 我的项目里使用了antd&#xff0c;antd表格有一个示例还是挺像的&#xff0c;本来我想用Table实现&#xff0…...

通过mybatis的拦截器对SQL进行打标

1、背景 在我们开发的过程中&#xff0c;一般需要编写各种SQL语句&#xff0c;万一生产环境出现了慢查询&#xff0c;那么我们如何快速定位到底是程序中的那个SQL出现的问题呢&#xff1f; 2、解决方案 如果我们的数据访问层使用的是mybatis的话&#xff0c;那么我们可以通过…...

【MySQL】MySQL服务器——mysqld

1.MySQL服务器 是名为 mysqld 的数据库服务器程序&#xff0c;和“主机”&#xff08;host&#xff09;不一样是一个多线程的单进程管理对磁盘和内存中数据库的访问支持并发的客户端连接支持多个存储引擎&#xff0c;常见的存储引擎包括InnoDB、MyISAM、Memory、Archive支持事…...

JAVA面试_进阶部分_Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)

在什么时候&#xff1a; 首先需要知道&#xff0c;GC又分为minor GC 和 Full GC&#xff08;major GC&#xff09;。Java堆内存分为新生代和老年代&#xff0c;新生代 中又分为1个eden区和两个Survior区域。 一般情况下&#xff0c;新创建的对象都会被分配到eden区&#xff…...

【探秘海洋伤痕】海洋环境污染损害的警世启示

在地球这个蓝色星球上&#xff0c;广袤无垠的海洋孕育了无数生命&#xff0c;支撑着地球的生态平衡与人类的生存发展。然而&#xff0c;随着工业化和现代化的加速&#xff0c;海洋环境遭受的伤害日益严重&#xff0c;海洋环境污染损害成为了我们必须直面的严峻问题。本文将带您…...

过滤器(Filter)与拦截器(Interceptor)

在Java Web开发中&#xff0c;**拦截器&#xff08;Interceptor&#xff09;和过滤器&#xff08;Filter&#xff09;**都用于在请求处理过程中拦截和处理HTTP请求或响应&#xff0c;但它们有不同的应用场景和工作原理。下面将详细解释它们的区别&#xff0c;并提供代码演示。 …...

智慧城市运行管理服务平台建设方案

随着城市化的快速发展&#xff0c;城市运行管理面临着前所未有的挑战。智慧城市的概念应运而生&#xff0c;旨在通过信息技术手段提升城市管理效率和居民生活质量。智慧城市运行管理服务平台作为智慧城市建设的核心组成部分&#xff0c;其建设方案的科学性和前瞻性至关重要。 …...

Java是怎么解决并发问题的?

Happens-Before规则(前言) Happens-Before规则 是 Java 内存模型&#xff08;JMM&#xff09;中用于定义线程间操作可见性和有序性的一种规范。它的核心目的是&#xff1a;确保一个线程的某些操作结果对其他线程是可见的&#xff0c;并且这些操作在时间上的顺序不会被重排序破…...

使用 Chrome Flags 设置(适用于 HTTP 站点开发)

使用 Chrome Flags 设置&#xff08;适用于 HTTP 站点开发&#xff09; 在 Chrome 地址栏输入&#xff1a;chrome://flags/在搜索框输入 “Insecure origins” 或 “Allow invalid certificates”。找到 “Insecure origins treated as secure” 选项&#xff08;或者 #allow-…...

解锁 AI 开发的无限可能:邀请您加入 coze-sharp 开源项目

大家好&#xff01;今天我要向大家介绍一个充满潜力的开源项目——coze-sharp&#xff01;这是一个基于 C# 开发的 Coze 客户端&#xff0c;旨在帮助开发者轻松接入 Coze AI 平台&#xff0c;打造智能应用。项目地址在这里&#xff1a;https://github.com/zhulige/coze-sharp&a…...

【Swift】面向协议编程之HelloWorld

定义一个协议(protocol)&#xff0c;swift 中可以对protocol 进行扩展(extension)通过协议的扩展可以对函数有默认的实现 protocol Sleepable {func sleep() } protocol Eatable {func eat() } extension Eatable {func eat() {print("eat food")} }在类(class)或结…...

图神经网络学习笔记—纯 PyTorch 中的多 GPU 训练(专题十二)

对于许多大规模的真实数据集,可能需要在多个 GPU 上进行扩展训练。本教程将介绍如何通过 torch.nn.parallel.DistributedDataParallel 在 PyG 和 PyTorch 中设置多 GPU 训练管道,而无需任何其他第三方库(如 PyTorch Lightning)。请注意,此方法基于数据并行。这意味着每个 …...

Linux云计算SRE-第二十周

完成ELK综合案例里面的实验&#xff0c;搭建完整的环境 一、 1、安装nginx和filebeat&#xff0c;配置node0(10.0.0.100)&#xff0c;node1(10.0.0.110)&#xff0c;node2(10.0.0.120)&#xff0c;采用filebeat收集nignx日志。 #node0、node1、node2采用以下相同方式收集ngin…...

springcloud gateway搭建及动态获取nacos注册的服务信息信息

前言 Spring Cloud Gateway 通过集成 Nacos 服务发现&#xff0c;可以动态获取注册到 Nacos 的微服务实例信息&#xff0c;并根据服务名&#xff08;Service Name&#xff09;自动生成路由规则或手动配置路由规则&#xff0c;实现请求的动态路由和负载均衡。 一个最简单的网关就…...

SSM基础专项复习6——Spring框架AOP(3)

系列文章 1、SSM基础专项复习1——SSM项目整合-CSDN博客 2、SSM基础专项复习2——Spring 框架&#xff08;1&#xff09;-CSDN博客 3、SSM基础专项复习3——Spring框架&#xff08;2&#xff09;-CSDN博客 4、SSM基础专项复习4——Maven项目管理工具&#xff08;1&#xff…...

【嵌入式linux】网口和USB热插拔检测

在Linux常常需要对网口和USB等外设接口进行插拔检测&#xff0c;从而执行部分初始化操作。下面简要介绍Linux的Netlink机制&#xff0c;并在C程序中使用Linux的Netlink机制完成网口和USB口插拔检测。 Netlink 是 Linux 内核与用户空间进程通信的一种机制&#xff0c;主要用于内…...

C++(13)—类和对象(中) ③拷贝构造函数

文章目录 一、拷贝构造函数的基本概念1.1 什么是拷贝构造函数&#xff1f;1.2 拷贝构造函数的调用场景 二、拷贝构造函数的核心特性2.1 拷贝构造函数的参数2.2 默认拷贝构造函数 三、深拷贝与浅拷贝3.1 浅拷贝的问题 四、拷贝构造函数的实际应用4.1 何时需要显式定义拷贝构造函…...

【GPT入门】第17课 RAG向量检索分类、原理与优化

【GPT入门】第16课 RAG向量检索分类、原理与优化 1.向量检索概念1.1 文本检索的两类方式1.2 向量的定义1.3 文本向量(Text Embeddings)1.4 文本向量如何得到1.5 向量间相似度计算1.6 向量数据库功能对比1.7 open ai发布的两个向量模型2.向量数据库1.8 向量检索的优化3.检索后…...

Operator <=> (spaceship operator)

operator <>动机 在C20以前定义比较运算符&#xff1a;其他比较运算符基于<和实现 struct Type {int value;// 相等运算符friend bool operator(const Type& a, const Type& b) {return a.value b.value;}// 不等运算符friend bool operator!(const Type&a…...

队列的简单例题

题目如下 模拟队列 首先你要明白队列的话 只有队尾才能进行新增&#xff0c;也就是入队 只有队首才能出队&#xff0c;也就是删除 队首队尾指针一开始默认都是0 相当于队列中一开始是有一个元素的就是 0的位置 队首指针head0 队尾指针tail0 1.入队也就是队尾要先赋值&#xf…...

Calibre-Web-Automated:打造你的私人图书馆

有没有小伙伴在工作、学习或生活中喜欢保存一些书籍或PDF文件&#xff0c;结果过一段时间想找的时候却怎么也找不到&#xff0c;最后只能无奈放弃&#xff1f;你是否已经厌倦了手动管理电子书的繁琐&#xff1f;是否梦想拥有一个私人图书馆&#xff0c;随时随地都能轻松访问自己…...

第27周JavaSpringboot 前后端联调

电商前后端联调课程笔记 一、项目启动与环境搭建 1.1 项目启动 在学习电商项目的前后端联调之前&#xff0c;需要先掌握如何启动项目。项目启动是整个开发流程的基础&#xff0c;只有成功启动项目&#xff0c;才能进行后续的开发与调试工作。 1.1.1 环境安装 环境安装是项…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 8.2.1AWS OpenSearch 无服务器方案深度解析与实践指南1. Serverless架构的核心价值与行业趋势1.1 传统Elasticsearch集群的运维挑战1.2 Serverless技术演进路线技术特性对比…...

鸿蒙开发者社区资源的重要性

鸿蒙系统&#xff0c;作为华为公司自主研发的操作系统&#xff0c;旨在为各类智能设备提供统一的平台。它不仅支持手机、平板电脑等移动设备&#xff0c;还涵盖了物联网&#xff08;IoT&#xff09;设备和其他智能家居产品。鸿蒙系统的开发环境和工具链对于开发者来说至关重要&…...

【QT】事件系统入门——QEvent 基础与示例

一、事件介绍 事件是 应用程序内部或者外部产生的事情或者动作的统称 在 Qt 中使用一个对象来表示一个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘&#xff0c;或者是窗口需要重新绘制的时候&…...

⚡️Jolt -- 通过JSON配置来处理复杂数据转换的工具

简介&#xff1a;一个能够通过JSON配置&#xff08;特定的语法&#xff09;来处理复杂数据转换的工具。 比如将API响应转换为内部系统所需的格式&#xff0c;或者处理来自不同来源的数据结构差异。例如&#xff0c;将嵌套的JSON结构扁平化&#xff0c;或者重命名字段&#xff0…...

2025-03-13 禅修-错误的做法

摘要: 2025-03-13 禅修-错误的做法 禅修-错误的做法 我们今天的课程是这个禅修防误。主要是有一些我们所明令禁止的。在整个禅修过程中&#xff0c;会对我们禅修出现一些弊端的这部分&#xff0c;我们会给大家介绍。第一&#xff0c;在禅修中要防止自由联想&#xff0c;防止幻…...

uni-app学习笔记——自定义模板

一、流程 1.这是一个硬性的流程&#xff0c;只要按照如此程序化就可以实现 二、步骤 1.第一步 2.第二步 3.第三步 4.每一次新建页面&#xff0c;都如第二步一样&#xff1b;可以选择自定义的模版&#xff08;vue3Setup——这是我自己的模版&#xff09;&#xff0c;第二步的…...

【医院绩效管理专题】8.医院绩效数据的收集与整理方法:洞察现状,引领未来

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院绩效管理已成为提升医疗服务质量、优化运营效率、增强综合竞争力的关键因素。而绩效数据的收集与整理作为绩效管理的基础环节,其科学性、准确性和完整性直…...

麒麟系统如何安装Anaconda

在银河麒麟操作系统&#xff08;Kylin OS&#xff09;中安装 Anaconda 的步骤相对简单&#xff0c;以下是基于搜索结果整理的详细安装指南&#xff1a; 步骤 1&#xff1a;下载 Anaconda 安装脚本 打开浏览器&#xff0c;访问 Anaconda 官方下载页面。选择适合 Linux 系统的安…...

Linux网络套接字编程——UDP服务器

Linux网络套接字编程——创建并绑定-CSDN博客 前面已经介绍了网络套接字的创建和绑定&#xff0c;这篇文章会通过UDP套接字实现一个UDP服务器。 先介绍将使用的接口。 recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr,…...

deepseek+kimi做ppt教程记录

1.首先注册deepseek和kimi deepseek官网&#xff1a;https://chat.deepseek.com/ kimi官网&#xff1a;https://kimi.moonshot.cn/ 以下以一篇工作总结报告为例 2.使用deepseek生成ppt大纲 让deepseek生成kimi生成ppt所需要的内容时&#xff0c;需要注意提示词内容&#xff0c;…...

Cursor 终极使用指南:从零开始走向AI编程

Cursor 终极使用指南&#xff1a;从零开始走向AI编程 问什么是cursor? mindmaproot(Cursor核心功能)智能编码代码生成自动补全错误修复项目管理多窗口布局版本控制终端集成个性设置主题定制快捷键配置插件扩展AI协作对话编程知识检索文档生成前些天发现了一个巨牛的人工智能学…...

TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索

导读 可观测性已经成为分布式系统成功运行的关键组成部分。如何借助多样、全面的数据&#xff0c;让架构师更简单、高效地定位问题、分析问题、解决问题&#xff0c;已经成为业内的一个技术焦点。本系列文章将深入解读 TiDB 的关键参数&#xff0c;帮助大家更好地观测系统的状…...

批量将 Excel 文档中的图片提取到文件夹

前面我们介绍过如何批量删除 Excel 文档中的所有图片或者指定的图片&#xff0c;其中就需要用到批量提取 Excel 文档中图片的操作。我们如何才能够将 Excel 文档中的图片快速的提取出来呢&#xff1f;其实单个 Excel 文档中的图片提取到文件夹中是有多种方法可以完成的&#xf…...