欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot获取URL请求参数的多种方式

程序员文章站 2023-12-14 13:36:04
 1、直接把表单的参数写在controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。 /** * 1.直接把表单...

 1、直接把表单的参数写在controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。

 /**
   * 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";
  }

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

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

  /**
   * 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)建立一个和表单中参数对应的bean

package demo.model;
public class usermodel {
  private string username;
  private string password;
  public string getusername() {
    return username;
  }
  public void setusername(string username) {
    this.username = username;
  }
  public string getpassword() {
    return password;
  }
  public void setpassword(string password) {
    this.password = password;
  }
}

(2)用这个bean来封装接收的参数

/**
   * 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、通过@pathvariable获取路径中的参数

 /**
   * 4、通过@pathvariable获取路径中的参数
   * @param username
   * @param password
   * @return
   */
  @requestmapping(value="/adduser4/{username}/{password}",method=requestmethod.get)
public string adduser4(@pathvariable string username,@pathvariable string password) {
    system.out.println("username is:"+username);
    system.out.println("password is:"+password);
    return "demo/index";
  }

例如,访问http://localhost/ssmdemo/demo/adduser4/lixiaoxi/111111 路径时,则自动将url中模板变量{username}和{password}绑定到通过@pathvariable注解的同名参数上,即入参后username=lixiaoxi、password=111111。

5、使用@modelattribute注解获取post请求的form表单数据

jsp表单如下:

<form action ="<%=request.getcontextpath()%>/demo/adduser5" method="post"> 
   用户名: <input type="text" name="username"/><br/>
   密  码: <input type="password" name="password"/><br/>
   <input type="submit" value="提交"/> 
   <input type="reset" value="重置"/> 
</form>

java controller如下:

  /**
   * 5、使用@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";
  }

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

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

 /**
   * 6、用注解@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";
  }

总结

以上所述是小编给大家介绍的springboot获取url请求参数的多种方式,希望对大家有所帮助

上一篇:

下一篇: