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

SpringMVC (二)请求处理

目录

章节简介

一 请求处理(初级)

eg:请求头

二 请求处理(进阶)

eg:请求体

三 获取请求头

四 获取Cookie

五 级联封装

六 使用@RequestBoby封装JSON对象

七 文件的上传

八 获取整个请求 HttpEntity

九 原生请求


Spring MVC 是 Spring 框架中的一个核心模块,专门用于构建 灵活、松耦合的 Web 应用程序。它基于经典的 MVC(Model-View-Controller)设计模式,但通过 Spring 的依赖注入(DI)和面向切面(AOP)等特性,简化了开发流程,提高了代码的可维护性。

与传统 Servlet/JSP 对比

特性Spring MVC传统 Servlet/JSP
耦合性低(基于接口和注解)高(直接依赖 Servlet API)
配置注解驱动,简化 XML/Java 配置需手动配置 web.xml
测试易于单元测试(Mock 框架支持)测试复杂(依赖容器)
扩展性模块化设计,易于扩展扩展需手动管理
功能集成无缝集成 Spring 生态(如安全、事务)需自行整合其他库

复习巩固前言JSON

图示:

章节简介

一 请求处理(初级)

eg:请求头

1 处理请求参数

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>信息提交表单</title>
</head>
<body>
<h3>信息采集</h3>
<!-- 指定提交地址为 /handle02  表单数据会附加在 URL 参数中-->
<form action="/handle02" method="get"><fieldset><legend>主要信息</legend><label for="account1">账户:</label><input type="text" id="account1" name="account" value="" maxlength="10"><br><label>密码:<input type="password" id="password1" name="pw" maxlength="9"></label><br><label>性别:<input type="radio" name="gender" id="gender1" value="male" checked> 男<input type="radio" name="gender" value="female"> 女</label><br><label>爱好:<input type="text" id="hobby" name="hobby"><input type="checkbox" name="hobby" value="smoke"> 抽烟<input type="checkbox" name="hobby" value="drink"> 喝酒<input type="checkbox" name="hobby" value="perm"> 烫头</label><br></fieldset>其他补充信息:<br><textarea name="other" cols="25" rows="2"></textarea><br>籍贯:<select name="place"><option value="鲁">山东省</option><option value="皖">安徽省</option><option value="粤">广东省</option><option value="京" selected>北京市</option><option value="苏">江苏省</option></select><br><input type="hidden" name="hid" value="hahahahahahaha"><input type="submit" value="确认"><input type="reset" value="重置">
</form>
</body>
</html>

请求方法类:

package org.example.spring04mvc.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class RequestTestController {@RequestMapping("/handle01")public String handleRequest(@RequestParam String account,@RequestParam String pw,@RequestParam String gender,@RequestParam List<String> hobby,@RequestParam(required = false) String other,@RequestParam String place,@RequestParam String hid) {System.out.println("Account: " + account);System.out.println("Password: " + pw);System.out.println("Gender: " + gender);System.out.println("Hobbies: " + hobby);System.out.println("Place: " + place); // 自动处理URL编码(如"京")if (other != null) {System.out.println("Other: " + other);}System.out.println("隐藏信息: " + hid);return "表单上传成功!";}}

Sprig项目启动页面展示

个人控制台与浏览器展示:

二 请求处理(进阶)

eg:请求体

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>信息提交表单</title>
</head>
<body>
<h3>信息采集</h3>
<!-- 指定提交地址为 /handle02 表单数据会通过 HTTP 请求体(Body) 发送到服务器。 -->
<form action="/handle02" method="post"><fieldset><legend>主要信息</legend><label for="account1">账户:</label><input type="text" id="account1" name="account" value="" maxlength="10"><br><label>密码:<input type="password" id="password1" name="pw" maxlength="9"></label><br><label>性别:<input type="radio" name="gender" id="gender1" value="male" checked> 男<input type="radio" name="gender" value="female"> 女</label><br><label>爱好:<input type="text" id="hobby" name="hobby"><input type="checkbox" name="hobby" value="smoke"> 抽烟<input type="checkbox" name="hobby" value="drink"> 喝酒<input type="checkbox" name="hobby" value="perm"> 烫头</label><br></fieldset>其他补充信息:<br><textarea name="other" cols="25" rows="2"></textarea><br>籍贯:<select name="place"><option value="鲁">山东省</option><option value="皖">安徽省</option><option value="粤">广东省</option><option value="京" selected>北京市</option><option value="苏">江苏省</option></select><br><input type="hidden" name="hid" value="hahahahahahaha"><input type="submit" value="确认"><input type="reset" value="重置">
</form>
</body>
</html>

封装:(可能由于版本问题@Data使用出错)

package org.example.spring04mvc.bean;import lombok.Data;@Data
public class emailUsers {// 账号指定默认值private String account="zhangsan";private String pw;private String gender;private String hid;private String place;private String other;private String[] hobby;}

指定:

package org.example.spring04mvc.controller;import org.example.spring04mvc.bean.emailUsers;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
public class RequestTestController {@RequestMapping("/handle01")public String handleRequest(@RequestParam String account,@RequestParam String pw,@RequestParam String gender,@RequestParam List<String> hobby,@RequestParam(required = false) String other,@RequestParam String place,@RequestParam String hid) {System.out.println("Account: " + account);System.out.println("Password: " + pw);System.out.println("Gender: " + gender);System.out.println("Hobbies: " + hobby);System.out.println("Place: " + place); // 自动处理URL编码(如"京")if (other != null) {System.out.println("Other: " + other);}System.out.println("隐藏信息: " + hid);return "表单上传成功!";}@RequestMapping("/handle02")public String handleRequest02(emailUsers emailUser){System.out.println(emailUser);return "表单上传成功!";}}

运行结果:

三 获取请求头

    @RequestMapping("/handle03")public String handleRequest03(@RequestHeader(value = "Host",defaultValue = "localhost") String host) {System.out.println(host);return "Ok" + host;}

四 获取Cookie

    @RequestMapping("/handle04")public String handleRequest04(@CookieValue(value = "JSESSIONID",defaultValue = "") String sessionId) {System.out.println(sessionId);return "Ok" + sessionId;}

五 级联封装

六 使用@RequestBoby封装JSON对象

代码实现:

    //测试接收JSON数据,获取请求体json的数据,自动转为对象@RequestMapping("/handle06")public String handleRequest06(@RequestBody emailUsers emailUser) {System.out.println(emailUser);return "OK";}
    //将JSON对象以字符串接收@RequestMapping("/handle07")public String handleRequest07(@RequestBody String json) {System.out.println(json);return "OK";}

七 文件的上传

    //接收文件上传表单@RequestMapping("/handle08")public String handleRequest08(emailUsers emailUser,@RequestParam("file") MultipartFile f1,@RequestParam("file2") MultipartFile[] f2) throws IOException {// 1获取原始文件名String originalFilename = f1.getOriginalFilename();// 2获取文件大小long size = f1.getSize();// 3获取文件流InputStream inputStream = f1.getInputStream();// 4文件保存f1.transferTo(new File("D:\\" + originalFilename));System.out.println(emailUser);return "OK";}

更改部分参数

八 获取整个请求 HttpEntity

HttpEntity 是 Spring Framework 中用于表示 HTTP 请求或响应实体 的核心类,它封装了 HTTP 消息的 头部(Headers) 和 正文(Body),常用于客户端和服务端之间的数据交互。以下是其核心特性和用法:


1. 核心功能

  • 封装数据:包含 HTTP 消息的 body(如 JSON、XML、表单数据)和 headers(如 Content-TypeAuthorization)。

  • 支持泛型HttpEntity<T> 允许指定正文内容的类型(如 Stringbyte[]Map 或自定义对象)。

  • 不可变性:创建后不可修改,若需变更需通过 HttpEntity 的构建方法生成新实例。

    // HttpEntity 封装请求头请求体,把整个请求拿过来封装@RequestMapping("/handle09")public String handleRequest09(HttpEntity<String> httpEntity){//拿到请求头HttpHeaders headers = httpEntity.getHeaders();//拿到请求体String body = httpEntity.getBody();return "OK";}

九 原生请求

    //使用原生API@RequestMapping("/handle10")public String handleRequest10(HttpServletRequest request) throws IOException {//拿到请求头Enumeration<String> headerNames = request.getHeaderNames();//拿到请求体String body = request.getReader().readLine();return "OK";}

相关文章:

SpringMVC (二)请求处理

目录 章节简介 一 请求处理&#xff08;初级&#xff09; eg:请求头 二 请求处理&#xff08;进阶&#xff09; eg:请求体 三 获取请求头 四 获取Cookie 五 级联封装 六 使用RequestBoby封装JSON对象 七 文件的上传 八 获取整个请求 HttpEntity 九 原生请求 Spring…...

数据结构——单链表list

前言&#xff1a;大家好&#x1f60d;&#xff0c;本文主要介绍数据结构——单链表 目录 一、单链表 二、使用步骤 1.结构体定义 2.初始化 3.插入 3.1 头插 3.2 尾插 3.3 按位置插 四.删除 4.1头删 4.2 尾删 4.3 按位置删 4.4按值删 五 统计有效值个数 六 销毁…...

课程《Deep Learning Specialization》

在coursera上&#xff0c;Deep Learning Specialization 课程内容如下图所示&#xff1a; Week2 assignment, Logistic Regression....

低版本 Linux 系统通过二进制方式升级部署高版本 Docker

​ 一、背景&#xff1a; 在一些 Linux 系统中&#xff0c;由于系统自带的软件源版本较低&#xff0c;或者因网络、权限等限制无法直接通过源文件来升级到最新版本的 Docker。这种情况下&#xff0c;采用二进制方式升级部署高版本 Docker 就成为一种有效的解决方案。下面将详…...

线索二叉树构造及遍历算法

线索二叉树构造以及遍历算法 线索二叉树&#xff08;中序遍历版&#xff09;构造线索二叉树构造双向线索链表遍历中序线索二叉树 线索二叉树&#xff08;中序遍历版&#xff09; 中序遍历找到对应结点的前驱&#xff08;土方法&#xff09; #mermaid-svg-eunGO5d2GhjLxCn5 {fo…...

3. 自定义类型****

目录 1. 内存对齐&#xff08;必考&#xff09; 如何计算&#xff1f; 为什么要内存对齐&#xff1f; 2. 联合 2.1 联合的定义 2.2 联合的特点 1. 内存对齐&#xff08;必考&#xff09; 结构体内存对齐是一个特别热门的考点。 如何计算&#xff1f; 第一个成员在与结构…...

Redis Sentinel (哨兵模式)深度解析:构建高可用分布式缓存系统的核心机制

一、传统主从复制的痛点 在分布式系统架构中&#xff0c;Redis 作为高性能缓存和数据存储解决方案&#xff0c;其可用性直接关系到整个系统的稳定性。传统的主从复制架构虽然实现了数据冗余&#xff0c;但在面临节点故障时仍存在明显缺陷&#xff1a; ​手动故障转移&#xf…...

deepseek本地部署

deepseek本地部署 哈喽,兄弟们!大家可以想象一下,如果有一个超级聪明的人机大脑,能帮你解答任何问题,从复杂的数学难题到编程代码,再到那些让你头疼的写作任务,它都能轻松搞定。这不是科幻电影里的场景,而是DeepSeek带来的现实奇迹!DeepSeek,这个名字听起来就充满了…...

责任链模式的C++实现示例

核心思想 责任链模式是一种行为设计模式&#xff0c;允许多个对象都有机会处理请求&#xff0c;从而避免请求的发送者与接收者之间的耦合。请求沿着处理链传递&#xff0c;直到某个对象处理它为止。 解决的问题 ​解耦请求发送者与处理者&#xff1a;请求的发送者无需知道具…...

【蓝桥杯python研究生组备赛】003 贪心

题目1 股票买卖 给定一个长度为 N 的数组&#xff0c;数组中的第 i 个数字表示一个给定股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。 注意&#xff1a;你不能同时参与多笔交易&…...

Banana Pi 与瑞萨电子携手共同推动开源创新:BPI-AI2N

2025年3月11日&#xff0c; Banana Pi 开源硬件平台很高兴宣布&#xff0c;与全球知名半导体解决方案供应商瑞萨电子&#xff08;Renesas Electronics&#xff09;正式达成技术合作关系。此次合作标志着双方将在开源技术、嵌入式系统和物联网等领域展开深度合作&#xff0c;为全…...

【算法工具】HDL: 基于摘要统计数据的高维连锁不平衡分析软件

## 前言 在基因组研究中&#xff0c;连锁不平衡(Linkage Disequilibrium, LD)分析是理解遗传变异之间关联的关键步骤。然而&#xff0c;当面对高维数据时&#xff0c;传统分析方法往往面临巨大计算挑战。今天为大家介绍一款强大的工具——HDL (High-Dimensional Linkage diseq…...

虚拟展览馆小程序:数字艺术与文化展示的新形式探索

虚拟展览馆小程序:数字艺术与文化展示的新形式探索 一、传统展览的痛点:物理空间的局限与数字化的必然 在传统的艺术与文化展览中,观众往往需要跨越地理距离、排队数小时才能进入展馆,而许多珍贵展品因保护需求无法长期展出。数据显示,全球90%以上的博物馆藏品常年沉睡于…...

docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境

docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境 docker-compose.yml services:mysql-8.0:container_name: mysql-8.0image: mysql:8.0restart: always#ports:#- "3306:3306"volumes:- ./etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro- ./var/log…...

java项目之基于ssm的在线学习系统(源码+文档)

项目简介 在线学习系统实现了以下功能&#xff1a; 该系统可以实现论坛管理&#xff0c;通知信息管理&#xff0c;学生管理&#xff0c;回答管理&#xff0c;教师管理&#xff0c;教案管理&#xff0c;公告信息管理&#xff0c;作业管理等功能。 &#x1f495;&#x1f495;作…...

macOS 安装配置 iTerm2 记录

都说 macOS 里替换终端最好的就是 iTerm2 &#xff0c;这玩意儿还是开源的&#xff0c;所以就也根风学习一下&#xff0c;但全是英文的挺麻烦&#xff0c;所以这里记录一下自己的设置&#xff0c;以最简单的安装及设置为主&#xff0c;想要更酷炫、更好看的还请自己百度吧&…...

矩阵分析-浅要理解(深度学习方向)

梯度分析与最优化 在深度学习的任务中&#xff0c;我们所期望的是训练一个神经网络&#xff0c;使得预测结果与真实标签之间的误差最小化&#xff0c;这可以近似看作是一个提供梯度下降等优化找到全局最优解的凸优化问题。 奇异值分解 在信息工程领域&#xff0c;对数据处理的…...

Odoo 18 中的自动字段和预留字段

Odoo 18 中的自动字段和预留字段 作为一个开源平台&#xff0c;Odoo 的价值在于其使用和开发的灵活性、可扩展性和经济性。虽然 Odoo 本身主要用 Python 和 JavaScript 编写&#xff0c;但其作为开源 ERP 系统的价值超越了特定编程语言的范畴&#xff0c;为各行各业的企业提供了…...

【操作系统安全】任务1:操作系统部署

目录 一、VMware Workstation Pro 17 部署 二、VMware Workstation 联网方式 三、VMware 虚拟机安装流程 四、操作系统介绍 五、Kali 操作系统安装 六、Windows 系统安装 七、Windows 系统网络配置 八、Linux 网络配置 CSDN 原创主页&#xff1a;不羁https://blog.csd…...

Linux:自动化构建-make/Makefile

1.背景 一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff0c;甚至于进行更复杂的功能操作…...

maven wrapper的使用

写在前面 考虑这样的场景&#xff0c;张三创建了一个maven项目使用了3.9版本&#xff0c;当李四下载下来去开发配置的却是3.6版本&#xff0c;此时李四就不得不再去配置一个3.9版本的maven&#xff0c;为了解决这个问题&#xff0c;maven引入了maven wrapper的机制&#xff08…...

DB-GPT-0.7版本win11安装,最新版本,安装方式变更了

之前两天折腾要死&#xff0c;只因为安装了旧版本问题太多&#xff0c;现在安装最新版本 快速开始_V0.7.0 语雀 DB-GPT 0.7.0 部署教程 - yyhhyys blog DB-GPT 0.7.0 与 DeepSeek 集成使用指南 - yyhhyys blog 首先代码结构换了&#xff0c;python包管理工作也换了&#xf…...

树莓集团落子海南,如何重构数字产业生态体系​

树莓集团在海南的布局&#xff0c;是其整体商业战略中的关键一环。这背后&#xff0c;是对政策机遇、产业协同、以及区域优势的深度考量。 政策机遇 海南自贸港建设带来前所未有的政策红利&#xff0c;包括贸易、投资、资金等方面的自由便利。树莓集团紧抓这一机遇&#xff0…...

Spring Boot 项目部署启动异常问题分析与解决​:主类缺失与依赖冲突的分析

Spring Boot 项目部署启动异常问题分析与解决 在近期的 Spring Boot 项目部署工作中,遭遇了一起典型的启动异常状况。经过多维度的深入排查以及细致的调试,最终确定问题的根源在于打包插件配置与依赖管理的综合影响。以下将详细阐述整个问题的分析过程以及对应的解决办法。 …...

共享内存(System V)——进程通信

个人主页&#xff1a;敲上瘾-CSDN博客 进程通信&#xff1a; 匿名管道&#xff1a;进程池的制作&#xff08;linux进程间通信&#xff0c;匿名管道... ...&#xff09;-CSDN博客命名管道&#xff1a;命名管道——进程间通信-CSDN博客 目录 一、共享内存的原理 二、信道的建立 …...

考研数学非数竞赛复习之Stolz定理求解数列极限

在非数类大学生数学竞赛中&#xff0c;Stolz定理作为一种强大的工具&#xff0c;经常被用来解决和式数列极限的问题&#xff0c;也被誉为离散版的’洛必达’方法&#xff0c;它提供了一种简洁而有效的方法&#xff0c;使得原本复杂繁琐的极限计算过程变得直观明了。本文&#x…...

12 DHCP的内容和HTTP的改良

一、回顾 计算机分配相关身份 网络号、主机号 网络号内的主机识别 局部网通信网关 不同网络的通信DNS服务器 域名解析 因特网通信 二、DHCP协议 建议学习前看这个视频&#xff0c;14分钟&#xff0c;所有的知识点都有&#xff0c;很容易理解 1、理解 DHCP 的全称是 Dynam…...

多光谱相机数据采集过程中常见仪器

1.BF1515多光谱相机 2.VIX-N220推扫式可见光近红外高光谱相机 覆盖光谱范围&#xff1a;400-1000nm&#xff1b; 光谱分辨率&#xff1a;2nm&#xff1b; 设备配套软件&#xff1a;VIX-N220、XuanDo(用于调节相机推扫速度)&#xff1b; 镜头调节所需材料&#xff1a;黑色条…...

【调研】olmOCR解析PDF

测试用例&#xff1a; olmOCR GOT-OCR 将最底下没有文字的部分&#xff0c;可能是样式解析出重复 olmOCR GOT-OCR 无重复 重复 速度上&#xff0c;olmOCR效果更快 效果上&#xff0c;olmOCR解析得到的内容排版更加清晰整齐&#xff0c;而且对于6份GOT-OCR有重复的测…...

蓝桥杯随笔练——二分模板

答案 #include <bits/stdc.h> //洛谷2249 using namespace std;const int N 1e610; int n,m; int a[N];int Array_Search(int a[],int len,int x) {int L 0,R len1;while(L1 < R){int mid (RL) >> 1;if(a[mid] < x ) L mid;else R mid;}if(a[R] x) r…...

【Golang】第三弹----运算符

笔上得来终觉浅,绝知此事要躬行 &#x1f525; 个人主页&#xff1a;星云爱编程 &#x1f525; 所属专栏&#xff1a;Golang &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 一、运算符介绍 运算符是一…...

MongoDB 聚合管道速成教程

一、引言 MongoDB 的聚合管道&#xff08;Aggregation Pipeline&#xff09;是一种强大的数据处理工具&#xff0c;它允许你对文档进行一系列的操作&#xff0c;如过滤、转换、分组和聚合等。聚合管道由多个管道组成&#xff0c;每个管道对输入的文档进行特定的处理&#xff0…...

「JavaScript深入」二进制数据处理详解「Blob、File、FileReader、ArrayBuffer、Typed Arrays、DataView」

二进制数据处理详解 1. Blob&#xff08;Binary Large Object&#xff09;Blob 的特性创建 BlobBlob 主要方法Blob 的应用 2. FileFile 对象的属性获取 File 对象 3. FileReader创建 FileReader主要方法主要事件文件上传与读取内容示例文件分块读取示例 4. ArrayBuffer 与 Type…...

信号处理之插值、抽取与多项滤波

信号处理之插值、抽取与多项滤波 一、问题背景 插值(Interpolation)与抽取(Decimation)是数字信号处理中采样率转换的核心操作&#xff1a; 插值&#xff1a;在信号中插入新样本以提高采样率&#xff08; L L L倍&#xff09;抽取&#xff1a;按比例 M M M降低采样率&#xf…...

关于WPS的Excel点击单元格打开别的文档的两种方法的探究

问题需求 目录和文件结构如下&#xff1a; E:\Dir_Level1 │ Level1.txt │ └─Dir_Level2│ Level2.txt│ master.xlsx│└─Dir_Level3Level3.txt现在要在master.xlsx点击单元格进而访问Level1.txt、Level2.txt、Level3.txt这些文件。 方法一&#xff1a;“单元格右键…...

蓝桥 2109统计子矩阵

问题描述 给定一个NM 的矩阵 A, 请你统计有多少个子矩阵 (最小 11, 最大 NM) 满足子矩阵中所有数的和不超过给定的整数 K ? 输入格式 第一行包含三个整数 N,M 和 K. 之后 NN 行每行包含 M 个整数, 代表矩阵 A. 输出格式 一个整数代表答案。 样例输入 3 4 10 1 2 3 4 5…...

AF3 make_fixed_size函数解读

AlphaFold3 data_transforms 模块的 make_fixed_size 函数的作用是将输入的蛋白质特征字典 protein 中的各个特征张量调整为固定大小。这是为了确保在批量处理时,所有特征张量的形状一致,从而避免形状不匹配的问题。 源代码: import itertools import torch from src.con…...

前端模块管理新思路:如何使用 Import Maps

前言 前端开发中&#xff0c;我们常常需要使用各种库和模块来构建功能丰富的应用。在传统方式中&#xff0c;管理这些库和模块的引用可能会有些繁琐。 幸运的是&#xff0c;Import Maps 的出现为我们提供了一种更简洁和高效的解决方案。今天我们就来聊聊如何使用 Import Maps。…...

交换机、路由器、网关、MAC地址——从入门到实战

你是否好奇&#xff0c;当你在手机上点击一个网页链接时&#xff0c;数据是如何从你的设备“飞”到千里之外的服务器并返回的&#xff1f;背后离不开交换机、路由器、网关和MAC地址的默契配合。本文用通俗语言实战场景&#xff0c;带你彻底搞懂这些网络核心组件&#xff0c;从此…...

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁&#xff0c;ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…...

LanceDB快速入门之基本操作与API一览

LanceDB可以以多种方式运行 可以嵌入到现有后端&#xff08;如您的 Django、Flask、Node.js 或 FastAPI 应用程序&#xff09;中直接从如 Jupyter 笔记本等客户端应用程序中用于分析工作负载部署为远程无服务器数据库 安装 Python&#xff1a; pip install lancedbTypeScrip…...

Spring Boot 整合 Redis

以下是 Spring Boot 整合 Redis 的指南&#xff0c;涵盖配置、基本操作、高级用法及常见问题解决。 1. 添加依赖 在 pom.xml 中添加 Spring Data Redis 和连接池依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId&…...

七层协议攻防实战:从HTTP慢速攻击到DNS隧道检测

一、七层协议攻击类型与特征 攻击类型协议特征HTTP慢速攻击HTTP低速率发送不完整请求DNS隧道DNS异常长域名、高频率TXT查询API滥用攻击HTTP高频调用关键接口&#xff08;如短信发送&#xff09;WebSocket洪水WebSocket海量小消息耗尽服务器资源 二、HTTP协议深度防护 1. 慢速…...

Java CAS(Compare-And-Swap)概念及原理

Java CAS&#xff08;Compare-And-Swap&#xff09;概念及原理 1. CAS的基本概念 CAS&#xff08;Compare-And-Swap&#xff09;是一种无锁编程的核心技术&#xff0c;用于实现多线程环境下的原子操作。其核心思想是&#xff1a; “先比较&#xff0c;再交换”。具体操作包含…...

内存检测工具——Qt Creator

前言 检测内存错误的工具&#xff0c;有很多个&#xff0c;我今天粗浅的学了一下可在Qt上使用的工具们&#xff1a; Dr.Memory 工具之前我曾在关注的博主上看到相关的博客&#xff1a;C(Qt)软件调试---内存调试器Dr.Memory&#xff08;21&#xff09;_dr. memory-CSDN博客 今…...

Ubuntu切换lowlatency内核

文章目录 一. 前言二. 开发环境三. 具体操作 一. 前言 低延迟内核&#xff08;Lowlatency Kernel&#xff09; 旨在为需要低延迟响应的应用程序设计的内核版本。Linux-lowlatency特别适合音频处理、实时计算、游戏和其他需要及时响应的实时任务。其主要特点是优化了中断处理、调…...

侯捷 C++ 课程学习笔记:STL标准库与泛型编程

STL 体系结构基础介绍 STL 六大部件&#xff1a; 容器&#xff08;Containers&#xff09; 分配器&#xff08;Allocators&#xff09; …...

Java 大视界 -- Java 大数据在智能安防视频摘要与检索技术中的应用(128)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

19874并查集

19874并查集 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;并查集、数据结构 &#x1f4d6; &#x1f4da; import java.util.*;public class Main {static int N 100010;static int[] a new int[N];static int[] p new int[N];static int n;static int m;st…...

ABC 376

目录 D. Cycle D. Cycle&#xff08;改&#xff09; E. Max Sum D. Cycle 这道题就是个 01 最短路&#xff0c;直接从 1 开始 bfs 看能不能回到 1 #include<bits/stdc.h> #define int long long using namespace std; const int N 2e5 5, INF 1e18;struct node {int …...