目录

  • Controller层获取请求参数的方式介绍
  • 1、Controller方法的参数名称和请求的参数名称相对应
  • 适用场景
  • 实例
  • 2、使用HttpServletRequest 对象获取参数
  • 适用场景
  • 实例
  • 3、通过建立一个实体对象来获取参数
  • 适用场景
  • 实例
  • 4、通过 PathVariable 从请求连接中获取参数
  • 适用场景
  • 实例
  • 5、通过 ModelAttribute 获取传进的参数
  • 适用场景
  • 实例
  • 6、用注解@RequestParam绑定请求参数到方法入参
  • 适用场景
  • 实例
  • 7、用注解@RequestBody绑定请求参数到方法入参
  • 适用场景
  • 实例
  • 项目git地址


Controller层获取请求参数的方式介绍

1、Controller方法的参数名称和请求的参数名称相对应

适用场景

只适用get请求

实例

请求例子:http://127.0.0.1:8888/study/param/add_string?name=小米&age=10

@RequestMapping(path = "/add_string", method = RequestMethod.GET)
public User add_String(String name,Integer age)
{
    User user = new User();
    user.setName(name);
    user.setAge(age);
    return user;
}



2、使用HttpServletRequest 对象获取参数

适用场景

适用get请求和post请求

实例

请求例子:http://127.0.0.1:8888/study/param/add_servlet?name=小红&age=11 在post的body中加入phone

@RequestMapping(path = "/add_servlet")
public User add_servlet(HttpServletRequest request)
{
    User user = new User();
    user.setName(request.getParameter("name"));
    user.setAge(Integer.parseInt(request.getParameter("age")));
    user.setPhone(request.getParameter("phone"));
    return user;
}

spring boot controller path 获取Path springboot controller获取参数_spring boot


3、通过建立一个实体对象来获取参数

适用场景

适用get请求和post请求

实例

请求例子:http://127.0.0.1:8888/study/param/add_entity?name=小红&age=11 在post的body中加入phone

@RequestMapping(path = "/add_entity")
    public User add_entity(User user)
    {
        System.out.println(user.toString());
        return user;
    }



4、通过 PathVariable 从请求连接中获取参数

适用场景

适用get请求

实例

请求例子:http://127.0.0.1:8888/study/param/add_path_variable/小红/11

@RequestMapping(path = "/add_path_variable/{name}/{age}",method = RequestMethod.GET)
public User add_path_variable(@PathVariable String name,@PathVariable String age)
{
    User user = new User();
    user.setName(name);
    user.setAge(Integer.parseInt(age));
    return user;
}

spring boot controller path 获取Path springboot controller获取参数_获取参数_02


5、通过 ModelAttribute 获取传进的参数

适用场景

适用post请求

实例

请求例子:

@RequestMapping(path = "/add_model_attribute",method = RequestMethod.POST)
public User add_model_attribute(@ModelAttribute("user") User user)
{
    System.out.println(user.toString());
    return user;
}

spring boot controller path 获取Path springboot controller获取参数_spring boot_03



6、用注解@RequestParam绑定请求参数到方法入参

@RequestParam注解:将请求参数区域的数据映射到控制层方法的参数上
name:参数 名称
required:是否必须
defaultValue:默认值

适用场景

适用get请求和post请求参数是key-value形式时的数据

实例

请求例子:http://127.0.0.1:8888/study/param/add_request_param?as_name=小红&as_age=11

@RequestMapping(path = "/add_request_param")
public User add_request_param(@RequestParam(name="as_name",required = true,defaultValue = "默认名称") String name,@RequestParam(name="as_age",required = true) String age)
{
    User user = new User();
    user.setName(name);
    user.setAge(Integer.parseInt(age));
    return user;
}

spring boot controller path 获取Path springboot controller获取参数_spring boot_04


spring boot controller path 获取Path springboot controller获取参数_spring boot_05


7、用注解@RequestBody绑定请求参数到方法入参

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)

适用场景

适用post请求

实例

请求例子:http://127.0.0.1:8888/study/param/add_request_body

@RequestMapping(path = "/add_request_body",method = RequestMethod.POST)
public User add_request_body(@RequestBody User user)
{
    System.out.println(user.toString());
    return user;
}

spring boot controller path 获取Path springboot controller获取参数_获取参数_06


spring boot controller path 获取Path springboot controller获取参数_请求参数_07