1. @RequestParam注解
- 在入参处使用@RequestParam可以把请求参数传给请求方法。如果请求参数的参数名与形参名一致可以不加
- @RequestParam中的属性
- value:用来设置请求参数的参数名
- name:与value功能一样,是value的别名
- required: 用来设置参数是否是必须的,默认是true
- defaultValue: 用来设置一个默认值,如果没有参数传递将使用改值(有默认值后,required属性将失去效果)
@RequestMapping(value = {"/param"},method = RequestMethod.GET)
public String params(
@RequestParam(value = "name",required = false) String name,
@RequestParam(value = "age",required = true) Integer age,
@RequestParam(value = "address",required = true, defaultValue = "深圳") String address) {
List<Object> list = new ArrayList<>();
System.out.println(name + age + address);
list.add(name);
list.add(age);
list.add(address);
return list.toString();
}
2.@RequestHeader注解
- 每次发送请求时请求头包含了若干个属性,服务器可通过@RequestHeader注解获取客户端的信息,通过 @RequestHeader 即可将请求头中的属性值绑定到处理方法的入参中。
- @RequestHeader中的属性
- value属性:用来设置请求头中的属性名。
- name属性:与value功能一样,是value的一个别名。
- required属性:用来设置该请求头中的属性是否是必须的,默认是true。
- defaultValue属性:用来设置一个默认值,如果请求头中没有该属性将使用此值。
效果与@RequestParam注解差不多,就不演示了
3. @CookieValue注解
- 通过 @CookieValue 即可将请求头中的Cookie对象的值绑定到处理方法的入参中。
- @CookieValue中的属性
- value属性:用来设置请求头Cookie对象的名字。
- name属性:与value功能一样,是value的一个别名。
- required属性:用来设置请求头中Cookie对象的名字是否是必须的,默认是true。
- defaultValue属性:用来设置一个默认值,如果请求头中没有该Cookie对象的名字将使用此值。
4. 使用POJO作为入参
- Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。而且支持级联属性赋值。
- 必须要保证请求参数名与POJO的属性名保持一致。
5. 使用原生Servlet-API作为入参
- SpringMVC处理器方法中的原生Servlet API有以下9个:
1 HttpServletRequest
2 HttpServletResponse
3 HttpSession
4 java.security.Principal
5 Locale
6 InputStream
7 OutputStream
8 Reader
9 Writer
//测试入参为Servlet API
@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request){
//获取员工编号
String id = request.getParameter("id");
//获取员工姓名
String lastName = request.getParameter("lastName");
System.out.println("员工的编号为:"+id);
System.out.println("员工的姓名为:"+lastName);
return "success";
}