接收参数的注解笔记

            由于之前不是太经常用,所以对@PathVariable、@RequestHeader、@CookieValue、@RequestParam、@RequestBody、@Validated这几个接受参数的注解总是不太明白,到用的时候也分不清楚到底该用谁,今天就百度了一下,做一个笔记,参考此处:https://www.cnblogs.com/caolei1108/p/6214091.html。

@PathVariable:用来接收restful访问时携带的参数。例如 http:localhost:9001/****/savedemo/white

                接收例如 

接收参数的注解笔记_第1张图片
@PathVariable接收参数

注意那两个name,如果此处有一个不为name(就是两个不一致时候)需要在@PathVariable中启用value属性进行映射。


@RequestHeader :可以把Request请求header部分的值绑定到方法的参数上。

接收参数的注解笔记_第2张图片
header中的参数列表

@RequestHeader 接收操作:

接收参数的注解笔记_第3张图片
@RequestHeader 接收

   这时候访问hello时候,就会在页面显示我们的host信息--localhost:9001

@RequestBody 是用来接收到请求中放入body的参数。(一般讲参数扔到body中的,是post)

@CookieValue 与@RequestBody的用法类似,不过它是可以找到cookie中的参数

@RequestParam 注解用来接收地址中的参数,参数的格式是http://*****?age=10&moth=10。(我们等会儿给出接收操作)

@Validated 接收的和@RequestParam 情况类似,但是区别在于它是用模型接收的,也就是说,如果传入参数不是模型能接收的参数,是会接收不到的。

下面给出@Validated、@RequestBody接收操作和@PathParam、@PathVariable的测试

接收参数的注解笔记_第4张图片
接收与测试

若是@Validated、@RequestBody都能使用,当然要参数传递时的方法不同。上面也有说到他们接收的参数,就不讲传参方法了。

            出于好奇我顺便测试了一下@PathParam、@PathVariable 。@PathParam可以不需要模板,能接收到参数,而@PathVariable需要模板,所以接收不到参数。


到最后用一个例子结束吧:

 下面看一个url http:loaclhost:/****/savedemo/white?age=10&moth=10 我们应该如何接收这里的三个参数?

    首先要确定age=10&moth=10 这一段是需要@RequestParam或者@PathParam 来接收的。再看前面的white?,我们可以确定的是@PathVariable。

方法很多给出一种接收操作:

接收参数的注解笔记_第5张图片
例子

        好了,结束!

你可能感兴趣的:(接收参数的注解笔记)