java springboot spring controller层接收请求的几种方式

1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。若"Content-Type"="application/x-www-form-urlencoded",可用post提交

       url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Controller方法中的入参名称一致。  

1

2

3

4

5

6

7

8

9

10

11

12

/**

  * 1.直接把表单的参数写在Controller相应的方法的形参中

  * @param username

  * @param password

  * @return

  */

 @RequestMapping("/addUser1")

 public String addUser1(String username,String password) {

   System.out.println("username is:"+username);

   System.out.println("password is:"+password);

   return "demo/index";

 }

2、通过HttpServletRequest接收,post方式和get方式都可以。

1

2

3

4

5

6

7

8

9

10

11

12

13

/**

  * 2、通过HttpServletRequest接收

  * @param request

  * @return

  */

 @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 "demo/index";

 }

3、通过一个bean来接收,post方式和get方式都可以。

1

2

3

4

5

6

7

8

9

10

11

/**

 * 3、通过一个bean来接收

 * @param user

 * @return

 */

@RequestMapping("/addUser3")

public String addUser3(UserModel user) {

  System.out.println("username is:"+user.getUsername());

  System.out.println("password is:"+user.getPassword());

  return "demo/index";

}

 

4、使用@ModelAttribute注解获取POST请求的FORM表单数据

/**

   * 4、使用@ModelAttribute注解获取POST请求的FORM表单数据

   * @param user

   * @return

   */

  @RequestMapping(value="/addUser5",method=RequestMethod.POST)

  public String addUser5(@ModelAttribute("user") UserModel user) {

    System.out.println("username is:"+user.getUsername());

    System.out.println("password is:"+user.getPassword());

    return "demo/index";

  }

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

  当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@RequestParam(value="username", required=false)

  **** 若"Content-Type"="application/x-www-form-urlencoded",post get都可以

  **** 若"Content-Type"="application/application/json",只适用get

   /**

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

   * @param username

   * @param password

   * @return

   */

  @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 "demo/index";

  }

controller使用实体类接收json数据

    注解:@RequestBody
        ​​​​​​​@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody,前端要用POST方式进行提交
        一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。

        @PostMapping("/test/json")
        public JSONObject testJson(@RequestBody QueryParam param, HttpServletRequest request) {
            return null;
        }

接收路径上的单独参数

    @RequestParam(value="name",required=true):将请求参数绑定到你控制器的方法路径参数上(是springmvc中接收普通参数的注解)
        value="name": 表示参数的键名是name,
        required=true: 表示此参数不可以空,否则报错
        defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
        获取路径上的参数

        @PostMapping("/***")
        public Void queryCarPosition(@RequestParam(value="name",required=true) String
                 name) {
            
             System.out.println(name);
        }

 

6、用request.getQueryString() 获取spring MVC get请求的参数,只适用get请求

1

2

3

4

5

@RequestMapping(value="/addUser6",method=RequestMethod.GET)

public String addUser6(HttpServletRequest request) {

  System.out.println("username is:"+request.getQueryString());

  return "demo/index";

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值