请求处理
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,这个属性里面进行加载相应的路径,就可以进行