springboot学习笔记(三)

这篇博客详细介绍了SpringBoot中处理请求的各种方式,包括@RequestParam、@RequestHeader、@CookieValue、@RequestBody等注解的用法。此外,还讨论了如何使用@RequestAttribute获取request域属性,以及如何启用和使用@MatrixVariable处理矩阵变量,特别是在cookie被禁用时模拟session的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求处理

springMVC在底层处理web请求可以接收的传参类型
1.注解
@RequestParam(“形参A”) String 形参B;
当从请求参数的位置拿到形参A的时候,赋值给形参B从而传进来,避免用名重复。
2.Select API
Httpsession
可以传入session对象,允许对session进行操作。
3.复杂参数
model
可以操作model对象。
4.自定义对象参数
所有提交的请求参数,或者请求体里面的kry-value,都会被封装到person对象里面方便后来的使用。

注解:
1.@RequestHeader获得请求头。当使用Map对象或者MultiValueMap.或者叫HttpHeaders就能帮你拿到一个请求头的对象,里面包含请求头的所有信息。(Map对象中kv必须是string,string)使用时如果直接写,那么传入对象应该为y一个Map<string,string>对象,如果想要相应的值,加括号即可。
在这里插入图片描述

网页中相关的请求头信息 Referer:地址 User.Agent:浏览器信息。
在这里插入图片描述

2.@RequestParam获得请求参数和。RequestHeader需要的结构差不多,区别在于@RequestParam获取的是请求的参数,你链接中想要的参数都可以用@RequestParam获取。
在这里插入图片描述
在这里插入图片描述

3.@CookieValue 获取cookie对象 同理,可以直接传入一个cookie对象。来获取cookie对象的值和名字。
在这里插入图片描述

在这里插入图片描述

4.@RequestBody获取请求体只有Post对象才有请求体。所以要用@RequestBody一定要用Post方法。
在这里插入图片描述
可以获取到表单的信息。

@RequestAttribute注解

作用:获取request域属性
首先获取原生的request,然后可以向其中添加一些属性,用setAttribute。
在这里插入图片描述
然后可以通过转发出来的新页面来找到想要的值,获取值得方法有两种:
1.利用@RequestAttribute注解来获取值,
2.利用原生的request来获取值,因为之前的request和现在的request是一个,所以可以用request.getAttribute的方法来获取他的值.
在本次方法中结果都可以调用出来。
在这里插入图片描述

@MatrixVariable

矩阵变量:当页面开发时cookie被禁用但是想使用session时,可以使用矩阵变量的方法拿到cookie中的jsessionid属性,因为jsessionid是保存在cookie中的,每次发请求的时候都会携带cookie,服务器就会根据jsessionid找到session对象,然后调用session里面的方法就能找到里面的内容,所以当cookie被禁用时,如果还想使用session的内容我们就要拿到这个jessionid属性,所以可以用矩阵变量的方法。如下图所示。
使用分号,分号前面是访问路径,分号后面就是矩阵变量,键值对方式进行赋值,可以用逗号一次性赋值多个,也可以单个进行赋值。
在这里插入图片描述
在这里插入图片描述

由于springboot默认是禁用了矩阵变量的功能的,所以当我们想使用矩阵变量的时候,需要手动开启。有时间可以再看一遍源码,源码中有一个属性是remobeSemicolonContext,这个属性控制了矩阵变量的开启和关闭。并且值得注意的一点是其中GetMapping中的路径变量要写成{path}的形式,并且要在传入的数据中传入path,否则会报错404。

在这里插入图片描述

下面第一个方法选择的是进行继承WebMvcConfigurer的方法
在WebConfig中,添加一个新的自定义的configpathmatch即可.
在这里插入图片描述

在这里插入图片描述
也可以直接在容器中放一个这个类型的组件,这样可以不用继承WebMvc
在这里插入图片描述

在这里插入图片描述

还有一种情况是当矩阵变量遇到了相同的名字,为了避免由于不知道想获取哪个路径变量下age的值,这种情况下我们应该使用@MatriVariable中的除了value的一个新属性pathVar,这个属性里面进行加载相应的路径,就可以进行
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值