Spring MVC之@PathVariable和@RequestHeader

  @PathVariable注解可以方便地获得请求URL中的动态参数,该注解只支持一个属性value,类型是String, 表示绑定的名称,如果省则默认绑定同名参数。
  @RequestHeader注解可以将请求头的信息区数据映射到功能处理方法的参数上。  

@PathVariable

@PathVariable注解可以把路径中的参数绑定到方法中的形参上, 参数默认是String类型, 只支持GET方式。
URL中的参数与后台接收参数的类型可以匹配也是能够接收,如url传递参数值是数字,后台可以用int类型接收。
请求链接:http://localhost/sys/sysUserLogin/admin/1122331

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Controller
@RequestMapping("/sys")
public class SysUserController {

@RequestMapping("/sysUserLogin/{account}/{password}")
public void sysUserLogin(@PathVariable String account, @PathVariable String password) {
System.out.println("account = " + account + "; password = " + password );
}

@RequestMapping("/sysUserLogin/{account}/{password}")
public void sysUserLogin(@PathVariable(value = "account") String loginName, @PathVariable("password") String passwd) {
System.out.println("loginName = " + loginName + "; passwd = " + passwd );
}
}

@RequestHeader

获取并收集请求头信息,可以对请求来源和类型等进行统计分析,如:用户的浏览器,语言等。
支持的属性有:

  1. 属性:name, String 类型, 指定请求头绑定的名称。
  2. 属性:value, String 类型, name 属性的别名。
  3. 属性:required, boolean 类型, 参数是否必须绑定。
  4. 属性:defaultValue, String 类型, 如果没有传递参数,则使用默认值。
1
2
3
4
5
6
7
8
9
10
11
@Controller
@RequestMapping("/sys")
public class SysUserController {

@RequestMapping("/sysUserLogin")
public void sysUserLogin(
@RequestHeader("User-Agent") String userAgent,
@RequestHeader(value="Accept") String[] accepts) {
System.out.println("userAgent = " + userAgent + "; accepts = " + accepts[0] );
}
}

作者

光星

发布于

2018-01-28

更新于

2022-06-17

许可协议

评论