栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【SpringMVC】@RequestHeader与@RequestParam的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【SpringMVC】@RequestHeader与@RequestParam的区别

首先明确这样一个问题:

SpirngMVC默认如何获取请求带来的各种信息?

默认方式获取请求参数

直接给方法入参上写一个和请求参数名相同的变量,这个变量就来接受请求参数的值。例如:

@RequestMapping("/handle01")
public String handle01(String username){
    System.out.println("这个变量的值:" + username);
    return "success";
}

1.当请求是localhost:8080/handle01?username=yst时,handle01里的username会自动匹配yst。所以输出:

这个变量值:yst

2.当请求是localhost:8080/handle01?user=yst时,handle01里的username匹配不到值,因为请求里没有username。所以输出:

这个变量值:null
@RequestParam注解

如果用此注解,参数默认是必须带的。它有如下方法:

value:映射请求参数名称required:设置请求参数是否必须的defaultValue:设置默认值,当没有传递参数时使用该值

形式:

@RequestMapping("/handle02")
public String handle02(@RequestParam("username")  String username){
    System.out.println("这个变量的值:" + username);
    return "success";
}

1.必须带有参数。
也就是说你直接输入localhost:8080/handle02会报错,不会执行方法只能输入localhost:8080/list?username=?才能执行相应的方法。

2.假如将@RequestParam("username") 改成了@RequestParam("user"):

@RequestMapping("/handle02")
public String handle02(@RequestParam("user")  String username){
    System.out.println("这个变量的值:" + username);
    return "success";
}

请求是localhost:8080/handle01?user=yst时,可以成功输出:

这个变量值:yst

3.设置required为false可以不带参数。

@RequestMapping("/handle02")
public String handle02(@RequestParam(value="user",required=false)  String username){
    System.out.println("这个变量的值:" + username);
    return "success";
}

4.设置defaultValue就可以在地址里面不带参数,如果带了参数会接收,不带参数会默认为该值。

@RequestMapping("/handle02")
public String handle02(@RequestParam(value="user", required=false, defaultValue="visitor01")  String username){
    System.out.println("这个变量的值:" + username);
    return "success";
}
@RequestHeader注解

使用 @RequestHeader 绑定请求报头的属性值。请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即可将请求头中的属性值绑定到处理方法的入参中 。

使用起来同@RequestParam,只不过映射的信息由URL中的参数变成了Header中的键值对。

@RequestMapping(value="/testRequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept-Language") String al){
	System.out.println("testRequestHeader - Accept-Language:" + al);
return "success";
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号