前后端交互之传参的几种常见方式

前端传参

1、url传参

1.1 ?+参数

http(s)://域名/项目名/接口名?key1=value1&key2=value2

1.2 /参数/参数

http(s)://域名/项目名/接口名/value1/value2

(这种方法传的参数不是键值对)

2、表单传参

1,action : 传参的对象,地址 PHP文件

2,method : 传参的方式,get/post

3,enctype: 上传文件的格式 multipart/form-data

3、Json传参

后端接收

1、直接把表单的参数写在Controller相应的方法的形参中,适用于GET 和 POST请求方式

@RestController
@RequestMapping("/tools")
public class InnerController {
    @RequestMapping("/addUser1")
    public String addUser1(String username,String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "success";
    }
}

2、通过HttpServletRequest接收,适用于GET 和 POST请求方式

@RestController
@RequestMapping("/tools")
public class InnerController {
    @RequestMapping("/addUser2")
    public String addUser2(HttpServletRequest request) {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "success";
    }
}

3、用注解@RequestParam绑定请求参数到方法入参,适用于GET 和 POST请求方式

@RestController
@RequestMapping("/tools")
public class InnerController {
    @RequestMapping(value="/addUser6",method=RequestMethod.GET)
    public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "success";
    }
}

4、用注解@RequestBody绑定请求参数到方法入参 , 用于POST请求

@RestController
@RequestMapping("/tools")
public class InnerController {

    @RequestMapping(value="/addUser7",method=RequestMethod.POST)
    public String addUser7(@RequestBody DemoUser user) {
        System.out.println("username is:"+user.getUsername());
        System.out.println("password is:"+user.getPassword());
        return "success";
    }
}

猜你喜欢

转载自blog.csdn.net/wjqsm/article/details/123409550