【Spring MVC】如何获取cookie/session以及响应@RestController的理解,Header的设置
前言
🌟🌟本期讲解关于SpringMVC的编程之参数传递~~~
🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客
🔥 你的点赞就是小编不断更新的最大动力
🎆那么废话不多说直接开整吧~~
目录
📚️1.请求
1.1了解Cookie与Session
1.2获取Cookie
1.传统的方式
2.注解的方式
1.3获取Session
1.传统的方式
2.注解的方式
1.4获取Header
1.传统的方式
2.注解的方式
📚️2.响应
2.1返回静态页面
2.2@RestController与@Controller的区别
2.3设置状态码
2.4设置Header
📚️3.总结
📚️1.请求
1.1了解Cookie与Session
回顾之前我们学习过的cookie,我们知道这是用于浏览器与页面存储某些信息的部分,而HTTP 协议⾃⾝是属于 "⽆状态" 协议
无状态:默认情况下 HTTP 协议的客⼾端和服务器之间的这次通信, 和下次通信之间没有直接的联系.
但是在实际开发中,在第一次用户登录后是要存储用户的信息的,第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了.具体的情况就是如下所示:
解释:
上面的令牌就是存储在cookie中的,下次访问服务器的时候,就要带上cookie中的“令牌”,此时在服务器这边就需要记录"令牌"信息, 以及令牌对应的⽤⼾信息, 这个就是 Session 机制所做的⼯作.
理解session
我们先来了解⼀下什么是会话.会话: 对话的意思
解释:
会话是⼀个客⼾与服务器之间的不中断的请求响应. 对客⼾的每个请求,服务器能够识别出请求来⾃于同⼀个客⼾.
当⼀个未知的客⼾向Web应⽤程序发送第⼀个请求时就开始了⼀个会话.当客⼾明确结束会话或服务器在⼀个时限内没有接受到客⼾的任何请求时,会话就结束了
总结:
服务器需要清楚的区分每个请求是属于哪个⽤⼾, 也就是属于哪个会话, 就需要在服务器这边记录每个会话以及与⽤⼾的信息的对应关系.
所以session就是服务器用来保存用户信息而创建的一个特殊的对象;
Session的本质就是⼀个 "哈希表", 存储了⼀些键值对结构. Key 就是SessionID, Value 就是⽤⼾信息(⽤⼾信息可以根据需求灵活设计
此时cookie和session就可以合作来完成这个过程:
解释:
1,首先客户端发送请求后,服务器就会返回创建一个session,然后把sessionID通过setcookie放回给客户端,存在客户端中cookie里。
2.当客户端第二次进行访问的时候,就会带上cookie,发送请求
3.此时服务器就会拿到里面的sessionID这个key,然后查找session这个对象,返回给客户端
这两者的区别:
• Cookie 是客⼾端保存⽤⼾信息的⼀种机制. Session 是服务器端保存⽤⼾信息的⼀种机制.
• Cookie 和 Session之间主要是通过 SessionId 关联起来的, SessionId 是 Cookie 和 Session 之间的桥梁
• Cookie 和 Session 经常会在⼀起配合使⽤. 但是不是必须配合.
1.2获取Cookie
1.传统的方式
代码如下所示:
public String request10(HttpServletRequest request){Cookie[] cookies = request.getCookies();if(cookies!=null){Arrays.stream(cookies).forEach(cookie -> {System.out.println(cookie.getName()+":"+cookie.getValue());});}return "获取到cookie";}
解释:
Spring MVC是基于 Servlet API 构建的原始 Web 框架, 也是在Servlet的基础上实现的;
HttpServletRequest 对象代表客⼾端的请求, 当客⼾端通过HTTP协议访问服务器时,HTTP请
求头中的所有信息都封装在这个对象中
HttpServletResponse 对象代表服务器的响应. HTTP响应的信息都在这个对象中, ⽐如向客⼾
端发送的数据, 响应头, 状态码等
这里获取到cookie后,转化为数据流的方式,进行增强循环实现打印;
当我们进行测试后:
此时就能够在下面的面板中得到这里的字符串,但是有由于没有设置,所以我们能够自己进行设置cookie的值,此时我们可以在浏览器中进行修改:
此时我们再次启动刷新·:
我们就可以在控制面板进行观察了~~
2.注解的方式
这里spring进行分装,此时就可以使用注解代替,但是这种方式只能获取指定的cookie,具体的代码就是如下所示:
@RequestMapping("r11")public String request11(@CookieValue("nihao") String nihao){return "nihao的cookie值:"+nihao;}
此时我们就可以拿到cookie中“nihao”的value值:
那么就可以拿到返回的cookie值了;
1.3获取Session
我们知道session是服务器的,此时我们就不能在客户端浏览器进行修改,所以此时我们就在代码中先设置session的值,这里和上面的cookie大差不差;
@RequestMapping("r13")public String request13(HttpServletRequest request){HttpSession session=request.getSession();session.setAttribute("name","zhangsan");return "session设置成功";}
此时我们就可以通过httpservletrequest来进行设置;还有这里的session是一个键值对的形式,所以要有两个参数;
那么接下来我们就可以获取session了:
1.传统的方式
@RequestMapping("r12")public String request(HttpServletRequest request){HttpSession session= request.getSession();String name=(String) session.getAttribute("name");return "获取到了session:"+name;}
这里也是通过HttpServletRequest 来进行操作,输入对应的key的值“value”来进行操作,我们进行postman进行测试获取:
那么就可以看到拿到了session的值,
2.注解的方式
此时和上面一致,进行了封装,那么此时我们就可以拿到session的值了,并且代码更加的简单
@RequestMapping("r16")public String request16(@SessionAttribute("name") String name){return "获取到了session"+name;}
这里还是只能获取对应的key值的value,通过参数来接收这里的session的值;这里小编就不在进行演示了
注意:若没有获取到session的值,并且为null,很有可能就是刷新了浏览器,由于session是存储来内存中的,所以此时我们就要重新再次建立session,然后再获取session;
1.4获取Header
这里还是一样的,我们知道HttpServletRequest包含了所有请求头中的所有相关的信息,此时也可以通过这个来进行某个属性的获取;
1.传统的方式
代码如下:
@RequestMapping("r17")public String request17(HttpServletRequest httpServletRequest){String contentType=httpServletRequest.getHeader("Content-Type");return contentType;}
注意:此时我们直接进行操作,是不会得到任何的数据,这里代表就是数据传输的方式,此时我们需要在postman中进行数据的编写:
此时我们再次点击发送,那么此时的数据传输就是JSON的格式了:
2.注解的方式
代码如下所示:
@RequestMapping("r18")public String request18(@RequestHeader("Content-Type") String contentType){return contentType;}
这里和上面几乎是一致的,还是一样的返回指定content-type,那么所以小编就不再进行演示和赘述了;
📚️2.响应
2.1返回静态页面
首先我们需要进行html的设置,代码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Index⻚⾯</title>
</head>
<body>Hello,Spring MVC,我是Index⻚⾯.
</body>
</html>
此时我们规定的后端代码就是如下所示:
@RestController
@RequestMapping("response")
public class ResponseController {@RequestMapping("jump")public String response1(){return "/index.html";}
此时我们进行输出后,返回就是如下所示的:
此时我们想要返回的是一个html页面,结果这里当成了数据进行返回了,那么此时我们就可以通过更改注解名的方式进行操作
@Controller
@RequestMapping("response")
public class ResponseController {@RequestMapping("jump")public String response1(){return "/index.html";}
解释:
此时就是将上面的restcontroller进行了更改为controller,那么此时就可以进行html的页面的跳转了,那么这是问什么呢,下面小编将进行讲解
2.2@RestController与@Controller的区别
随着互联⽹的发展, ⽬前项⽬开发流⾏"前后端分离"模式, Java主要是⽤来做后端项⽬的开发, 所以也就不再处理前端相关的内容了
MVC的概念也逐渐发⽣了变化, View不再返回视图, ⽽是返回显⽰视图时需要的数据.
所以:@RestController 其实是返回的数据
@java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE})
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@java.lang.annotation.Documented
@org.springframework.stereotype.Controller
@org.springframework.web.bind.annotation.ResponseBody
public @interface RestController {@org.springframework.core.annotation.AliasFor(annotation = org.springframework.stereotype.Controller.class)java.lang.String value() default "";
}
解释:
上面的代码最重要的就是代表了如下:
@RestController = @Controller + @ResponseBody
所以:如果想返回视图的话, 只需要把 @ResponseBody 去掉就可以了, 也就是 @Controller ,这里的@ResponseBody 代表就是返回数据据
注意:
@ResponseBody:这既可以用作类,也可以用在方法上面,代表就是返回的是数据,如果上面的@RestController被@Controller代替后,想要返回数据,不是视图,那么就可以使用@ResponseBody加在方法上面;
@Controller不能用在方法上面,如下图所示:
2.3设置状态码
Spring MVC会根据我们⽅法的返回结果⾃动设置响应状态码, 程序员也可以⼿动指定状态码
通过Spring MVC的内置对象HttpServletResponse 提供的⽅法来进⾏设置
代码如下:
@RequestMapping("setstatus")@ResponseBodypublic String setstatus(HttpServletResponse httpServletResponse){httpServletResponse.setStatus(401);return "状态码设置成功";}
此时我们使用postman进行发送请求,用fiddler进行抓包:
可以发现,状态码本来因该是200,但是被修改后成为了401;所以状态码不一定会影响是否响应成功;
2.4设置Header
这里小编就直接步入正题吧:
我们首先看看这个@RequestMapping的内部的原码;
java.lang.String name() default "";@org.springframework.core.annotation.AliasFor("path")java.lang.String[] value() default {};@org.springframework.core.annotation.AliasFor("value")java.lang.String[] path() default {};org.springframework.web.bind.annotation.RequestMethod[] method() default {};java.lang.String[] params() default {};java.lang.String[] headers() default {};java.lang.String[] consumes() default {};java.lang.String[] produces() default {};
解释:
1.value: 指定映射的URL
2. method: 指定请求的method类型, 如GET, POST等
3. consumes: 指定处理请求(request)的提交内容类型(Content-Type),例如application/json,
text/html;
4. produces: 指定返回的内容类型,还可以同时设置返回值的字符编码
5. Params: 指定request中必须包含某些参数值时,才让该⽅法处理
6. headers: 指定request中必须包含某些指定的header值,才能让该⽅法处理请求
其实在上面有几个是小编之前讲解到的,这里就举几个其他的例子:
produce:规定返回的内容的类型:
@RequestMapping(value = "/returnJson2",produces = "application/json")@ResponseBodypublic String returnJson2() {return "ji";}
此时我们进行抓包处理:
可以看到此时就是JSON的格式;
method指定请求的方法:
@RequestMapping(value = "/method",method = RequestMethod.POST)public String method(){return "方法观察";}
此时我们使用postman进行发送请求
此时若为get方法,那么就会出现方法不被允许的错误,所以在我们更改请求的方法后:
我们进行抓包,可以看到此时的结果就是如下所示:
那么此时就是:抓包的结果,可以看到请求的方法就是post;
📚️3.总结
本期小编主要讲解了关于cookie和session的概念和如何进行获取的操作,这里包括了传统的代码编写方式,以及注解的代码编写的方式;还讲解了响应中比较重要的@RestController的概念理解,和状态码,Header的设置;
🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!
💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。
😊😊 期待你的关注~~~
相关文章:
【Spring MVC】如何获取cookie/session以及响应@RestController的理解,Header的设置
前言 🌟🌟本期讲解关于SpringMVC的编程之参数传递~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废…...
Could not locate device support files.
报错信息:Failure Reason: The device may be running a version of iOS (13.6.1 17G80) that is not supported by this version of Xcode.[missing string: 869a8e318f07f3e2f42e11d435502286094f76de] 问题:xcode15升级到xcode16之后,13.…...
Kafka日志索引详解以及生产常见问题分析与总结
文章目录 一、Kafka的Log日志梳理1.1、Topic下的消息如何存储1.1.1、log文件追加记录所有消息1.1.2、index和timeindex加速读取log消息日志 1.2、文件清理机制1.2.1、如何判断哪些日志文件过期了1.2.2、过期的日志文件如何处理 1.3、Kafka的文件高效读写机制1.3.1、Kafka的文件…...
Qt中QGraphics绘图类相关解释
Item(图元)坐标系、Scene(场景)坐标系、View(视图)坐标系,三者均为:x轴正方向向右,y轴正方向向下 1、Item(图元):坐标属于局部坐标,通常以图元中心为原点(中心对称)。 场景坐标系统描述了顶层的图元,每个图…...
@Pattern (用于校验字符串是否符合特定正则表达式)
Pattern 是一个用于校验字符串是否符合特定正则表达式的注解,它在 Java 中常用于验证输入数据的格式。以下是 Pattern 注解的详解和使用方法: 含义 Pattern 注解用于在 Java 中对字段进行注解,以确保其值与指定的正则表达式匹配。这个注解可…...
线程与进程的个人理解
进程(Process): 一个程序在执行时,操作系统为其分配的资源(如内存、CPU 时间等)构成了一个进程。每个进程都有自己的独立的地址空间、堆栈和局部变量,它们之间不共享内存(除非通过特…...
移远通信携手紫光展锐,以“5G+算力”共绘万物智联新蓝图
11月26日,2024紫光展锐全球合作伙伴大会在上海举办。作为紫光展锐重要的合作伙伴,移远通信应邀参会。 在下午的物联网生态论坛上,移远通信产品总监胡勇华作题为“5G与算力双擎驱动 引领智联新未来”的演讲,深度剖析了产业发展的趋…...
【接口封装】——7、连接并使用 MySQL 数据库
头文件: #include <qsqlquery.h> #include <qsqldatabase.h>(注:需要先适配数据库) 函数定义: public:bool verifyLogin(const QString& account, const QString& password);QString getUserName(…...
vue2 中使用 Ag-grid-enterprise 企业版
文章目录 问题Vue2 引入企业版不生效npm run dev 时卡住了94% after seal 卡在这里了测试打包源 git 解决方案记录 问题 我想用企业版的树状表格 Vue2 引入企业版不生效 编译引入 // vue.config.js module.exports {transpileDependencies: ["ag-grid-enterprise"…...
计算机视觉算法:从基础到应用的全面解析
计算机视觉(Computer Vision, CV)是一门研究如何使计算机“看懂”图像和视频的学科。它结合了数学、计算机科学和人工智能的多个领域,旨在通过自动分析和理解数字图像、视频中的内容,模拟人类的视觉感知。计算机视觉算法广泛应用于图像识别、目标检测、自动驾驶、医疗影像等…...
[HCTF 2018]WarmUp
抓包什么也没看到 就是访问这个滑稽的图片 信息收集 这里说明就是他的后台代码 在这个php里面 我们访问 这样就很好看了 代码审计 [HCTF 2018]WarmUp全网最详细解释-CSDN博客 这篇博客讲得真JB好 我就复述下我对博主的理解吧~ 这里我们可以看见白名单是source.php 和h…...
解决jupyter notebook 新建或打开.ipynb 报500 : Internal Server Error(涉及jinja2兼容性问题)
报错: [E 10:09:52.362 NotebookApp] 500 GET /notebooks/Untitled16.ipynb?kernel_namepyt hon3 (::1) 93.000000ms refererhttp://localhost:8888/tree ...... 重点是: from .exporters import * File "C:\ProgramData\Anaconda3\lib\site-p…...
Android 实现悬浮球的功能
Android 实现悬浮球的功能 在 Android 中,实现悬浮球可以通过以下方式实现,常见的方法是使用 WindowManager 创建一个悬浮窗口。以下是具体的实现步骤: 1. 配置权限 在 AndroidManifest.xml 中添加悬浮窗权限: <uses-permis…...
SQL EXISTS 子句的深入解析
SQL EXISTS 子句的深入解析 引言 SQL(Structured Query Language)作为一种强大的数据库查询语言,广泛应用于各种数据库管理系统中。在SQL查询中,EXISTS子句是一种非常实用的工具,用于检查子查询中是否存在至少一行数…...
<项目代码>YOLOv8 红绿灯识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
Linux笔记---进程:进程状态
1. Linux中的进程状态 上图是操作系统学科中,对进程状态的分类。但是这样细致的划分是在操作系统的设计层面上做的,其中的很多细节,用户其实不必关心。 在Linux操作系统中,面向用户层面,对进程状态做了如下的划分&am…...
基于Qt实现的自定义树结构容器:设计与应用
在Qt框架中,尽管其提供了许多强大的容器类(如 QList, QMap, QTreeWidget 等),但缺少一个通用的、灵活的树结构容器,直接支持多层级数据管理。为了满足这些需求,本文设计并实现了一个可复用的自定义树结构容…...
Minio 客户端 mc
1、文档参阅: 1.1、 服务别名设置: https://min.io/docs/minio/linux/reference/minio-mc/mc-alias-set.html 1.2、cp 命令 https://min.io/docs/minio/linux/reference/minio-mc/mc-cp.html 2、mc 命令安装 1、wget https://dl.minio.org.cn/cl…...
python控制鼠标,键盘,adb
python控制鼠标,键盘,adb 听说某系因为奖学金互相举报,好像拿不到要命一样。不禁想到几天前老墨偷走丁胖子的狗,被丁胖子逮到。他面对警察的问询面不改色坚持自我,反而是怒气冲冲的丁胖子被警察认为是偷狗贼。我觉得这…...
使用 Python 剪辑视频的播放速度
要使用 Python 调整视频的播放速度,可以利用 moviepy 库中的 fx(特效)模块来实现这一功能。通过 moviepy.editor 中的 VideoFileClip 类和 fx.speedx 函数,可以轻松地调整视频的播放速度。 安装 moviepy 首先,确保已…...
Scrapy图解工作流程-cnblog
1.1 介绍部分: 文字提到常用的Web框架有Django和Flask,接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分: Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中…...
mongodb
MongoDB增加身份验证 - jason47 - 博客园 db.collection.find() - MongoDB 手册 v6.0 1. 登录 rootJTVMbushu104:~# mongosh # 无账号登录 test> use admin # 切换数据库,先切换到有权限数据库再登录授权 switched to db admin admin> db.auth(username,pas…...
海量数据处理面试题
目录 一.位图应用 二.布隆过滤器 三.哈希切割 一.位图应用 1. 给定100亿个整数,设计算法找到只出现一次的整数? 对于这道题100亿个整数大概占用40G,1G2^30byte,所以直接保存是不合适的,可以使用两个位图来处理,用00表示出现0次的,01表示出现一次的,10…...
RNN模型文本预处理--数据增强方法
数据增强方法 数据增强是自然语言处理(NLP)中常用的一种技术,通过生成新的训练样本来扩充数据集,从而提高模型的泛化能力和性能。回译数据增强法是一种常见的数据增强方法,特别适用于文本数据。 回译数据增强法 定义…...
git-显示顺序与提交顺序不一致的问题
问题流程 a分支 初始记录:分支的提交记录是 c1 -> c2 -> c3第一次修改提交记录但并未push:a1(20:18)第二次修改提交记录:a2(20:20) b分支 初始记录: c1 -> c2 -> c3 …...
【软件入门】Git快速入门
Git快速入门 文章目录 Git快速入门0.前言1.安装和配置2.新建版本库2.1.本地创建2.2.云端下载 3.版本管理3.1.添加和提交文件3.2.回退版本3.2.1.soft模式3.2.2.mixed模式3.2.3.hard模式3.2.4.使用场景 3.3.查看版本差异3.4.忽略文件 4.云端配置4.1.Github4.1.1.SSH配置4.1.2.关联…...
基于Springboot的流浪宠物管理系统
基于javaweb的流浪宠物管理系统 介绍 基于javaweb的流浪宠物管理系统的设计与实现,后端框架使用Springbootmybatis,前端框架使用Vuehrml,数据库使用mysql,使用B/S架构实现前台用户系统和后台管理员系统,和不同权限级别…...
【踩坑日记】【教程】如何在ubuntu服务器上配置公钥登录以及bug解决
前言 在日常开发和运维中,为了提高服务器登录的安全性,我们通常会选择使用 SSH 密钥认证 来替代传统的密码登录。然而,在配置 SSH 公钥登录的过程中,可能会遇到各种坑和 Bug。本文将从零开始,手把手教你如何在 Ubuntu…...
使用 VLC 在本地搭建流媒体服务器 (详细版)
提示:详细流程 避坑指南 Hi~!欢迎来到碧波空间,平时喜欢用博客记录学习的点滴,欢迎大家前来指正,欢迎欢迎~~ ✨✨ 主页:碧波 📚 📚 专栏:音视频 目录 借助VLC media pl…...
常用贴片元件封装尺寸
不论你在什么时候开始,重要的是开始之后就不要停止。 一天过完,不会再来。 每一次发奋努力的背后,必有加倍的赏赐。【SMD贴片元件的封装尺寸】 公制:3216——2012——1608——1005——0603——0402 英制:1206——0805—…...
NVR录像机汇聚管理EasyNVR多个NVR同时管理基于B/S架构的技术特点与能力应用
EasyNVR视频融合平台基于云边端协同设计,能够轻松接入并管理海量的视频数据。该平台兼容性强、拓展灵活,提供了视频监控直播、录像存储、云存储服务、回放检索以及平台级联等一系列功能。B/S架构使得EasyNVR实现了视频监控的多元化兼容与高效管理。 其采…...
【时间之外】IT人求职和创业应知【48】-通信技术
目录 新闻一:腾讯科技取得数据显示相关专利 新闻二:中国5G网络规模全球最大,6G技术取得突破 新闻三:亚马逊启动“登月”计划,部署10万颗二代自研芯片 连亚马逊这样的大厂也搞登月计划,可见现在的业界竞争…...
如何为 XFS 文件系统的 /dev/centos/root 增加 800G 空间
如何为 XFS 文件系统的 /dev/centos/root 增加 800G 空间 一、前言二、准备工作三、扩展逻辑卷1. 检查现有 LVM 配置2. 扩展物理卷3. 扩展卷组4. 扩展逻辑卷四、调整文件系统大小1. 检查文件系统状态2. 扩展文件系统五、处理可能出现的问题1. 文件系统无法扩展2. 磁盘空间不足3…...
Linux命令操作基础
目录 一、命令格式 二、常见命令操作 2.1补齐命令与文件名 2.2历史命令 2.3联机帮助 三、常用命令 四、vim/vi文本编辑器 4.1命令模式 4.2输出模式 4.3底线命令模式 一、命令格式 $ Command [-Options] Argument1 Argument2... 其中: $:默认存在的提示符&a…...
Shell脚本实践练习
声明 学习视频来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致…...
CentOS上如何离线批量自动化部署zabbix 7.0版本客户端
CentOS上如何离线批量自动化部署zabbix 7.0版本客户端 管理的服务器大部分都是CentOS操作系统,版本主要是CentOS 7。因为监控服务器需要,要在前两天搭建的Zabbix 7.0系统上把这些CentOS 7系统都监控起来。因为服务器数量众多,而且有些服务器…...
DDR3与MIG IP核详解(一)
一、ddr3(全称第三代双倍速率同步动态随机存储器): 1、特点:1:掉电无法保存数据,需要周期性的刷新。2:时钟上升沿和下降沿都会传输数据。 3:突发传输,突发长度 Burst Length一般为…...
转录组数据挖掘(生物技能树)(第11节)下游分析
转录组数据挖掘(生物技能树)(第11节) 文章目录 R语言复习转录组数据差异分析差异分析的输入数据操作过程示例一:示例二:示例三:此代码只适用于人的样本 R语言复习 #### 读取 ####dat read.deli…...
CTF-RE 从0到N:Chacha20逆向实战 2024 强网杯青少年专项赛 EnterGame WP (END)
只想解题的看最后就好了,前面是算法分析 Chacha20 c语言是如何利用逻辑运算符拆分变量和合并的 通过百度网盘分享的文件:EnterGame_9acdc7c33f85832082adc6a4e... 链接:https://pan.baidu.com/s/182SRj2Xemo63PCoaLNUsRQ?pwd1111 提取码:1…...
Spring Boot 的 WebClient 实践教程
什么是 WebClient? 在 Spring Boot 中,WebClient 是 Spring WebFlux 提供的一个非阻塞、响应式的 HTTP 客户端,用于与 RESTful 服务或其他 HTTP 服务交互。相比于传统的 RestTemplate,WebClient 更加现代化,具有异步和…...
STM32笔记(串口IAP升级)
一、IAP简介 IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产 品中的固件程序进行更新升级。 通常实…...
Ollama - 简化使用本地大语言模型
学习完用 Transformers 和 llama.cpp 使用本地大语言模型后,再继续探索如何使用 Ollama 跑模型。Ollama 让运行和管理大语言模型变得更为简单,它构建在 llama.cpp 之上,并有优化,性能表现同样不俗。下面罗列一下它的特点 从它的 …...
圆域函数的傅里叶变换和傅里叶逆变换
空域圆域函数的傅里叶变换 空域圆域函数(也称为空间中的圆形区域函数)通常指的是在二维空间中,以原点为中心、半径为 a a a的圆内取值为1,圆外取值为0的函数。这种函数可以表示为: f ( x , y ) { 1 if x 2 y 2 ≤ …...
智能交易模型的全景探索:量化技术的进步与未来
随着金融市场日益复杂化,量化交易模型在投资领域扮演着愈加重要的角色。这些模型通过数据驱动和技术创新,赋能投资者在高度波动的市场中寻找确定性收益点。本文将从技术进步、模型构建、应用优势和未来发展四个方面,探讨量化交易模型的演变与…...
mysql学习
1、 数据库的三范式是什么? 2、特点 - 永久性:从本质上来说数据库中的数据以计算机文件的方式存储在磁盘上- 结构性:数据不是杂乱无章的存储- 大量:只受到磁盘空间的影响 3、 Myisam与innodb的区别 4、mysql架构 开始编程语言进…...
小白新手村冒险之“烤”json串
JSON是什么? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但是JSON是独立于语言的文本格式,许多编…...
SQL基础入门—— 简单查询与条件筛选
在SQL中,查询是从数据库中获取数据的核心操作,而条件筛选是查询中不可或缺的一部分。通过使用条件筛选,我们可以精准地从大量数据中提取我们需要的信息。本节将详细讲解如何使用SQL进行简单查询与条件筛选,包含常见的条件运算符和…...
Java线程池种类及具体应用场景
Java线程池种类及具体应用场景 在实际开发中,选择合适的线程池类型至关重要,不同场景有不同的线程池需求。本文将结合线程池种类和具体应用示例,详细说明每种线程池的使用场景和适用情况。 一、固定大小线程池(FixedThreadPool&a…...
3D建筑模型的 LOD 规范
LOD(细节层次) 是3D城市建模中用于表示建筑模型精细程度的标准化描述不同的LOD适用于不同的应用场景 LOD是3D建模中重要的分级标准,不同层级适合不同精度和用途的需求。 从LOD0到LOD4,细节逐渐丰富,复杂性和精度也逐…...
掌上单片机实验室 — RT - Thread+ROS2 浅尝(26)
前面化解了Micro_ROS通讯问题,并在 RT-Thread Studio 环境下,使用Micro_ROS软件包中的例程,实现了STM32F411CE核心板和ROS2主机的通讯。之后还尝试修改例程 micro_ros_sub_twist.c ,实现了接收 turtle_teleop_key 所发出的 turtle…...