前端页面通过表单与后台进行数据交换是一种非常常见的方式,以下罗列出后台接收前端用户输入数据的三种方式。
先贴一下一个简单的前端代码,输入email与password。

<form action="/login" method="get" class="form-horizontal" style="margin-top: 70px">
            <div class="form-group">
                <label for="inputEmail3" class="col-sm-2 control-label" style="font-size: 30px;text-align: center">Email</label>
                <div class="col-sm-10">
                    <input name="email" type="email" class="form-control" id="inputEmail3" placeholder="Email" style="background-color: transparent; height:50px;width: 400px;font-size: 20px">
                </div>
            </div>
            <div class="form-group" style="margin-top: 70px">
                <label for="inputPassword3" class="col-sm-2 control-label" style="font-size: 30px;text-align: center">Password</label>
                <div class="col-sm-10">
                    <input name="password" type="password" class="form-control" id="inputPassword3" placeholder="Password" style="background-color: transparent; height:50px;width: 400px;font-size: 20px">
                </div>
            </div>

            <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                    <button type="submit" class="btn btn-primary btn-lg" style="margin-top:70px;width: 200px;font-size: 20px;font-weight: bold">Login</button>
                </div>
            </div>
        </form>

需要注意的有两点:
1.每一个<input>的标签都应该设定一个id属性,用来作为后台代码识别对应输入框的唯一标识。
2.在<form>标签中应该写明一个action属性用来指定处理的Controller层方法。

一、使用id直接进行识别取值

    @RequestMapping("/login")
    public void login(String email, String password){
        System.out.println("email是"+email);
        System.out.println("password是"+password);
    }

即通过之前前端的输入框中指定的id值作为函数的形参传入进行处理,这里的形参需要和id的值一样,大小写也应该相同。

二、使用@RequestParam注解

    @RequestMapping("/login")
    public void login(@RequestParam("email") String e,@RequestParam("password") String p){
        System.out.println(e);
        System.out.println(p);
    }

这种方法的道理和第一种方法其实是一样的,同样也是通过前端标签中的id使得函数操作的参数与输入的内容一一对应,但是使用了@RequestParam注解使得我们可以对参数进行自定义命名。

三、用HttpServletRequest 接收

    @RequestMapping("/login")
    public void login(HttpServletRequest request ){
        String query = request.getQueryString();
        String email = request.getParameter("email");
        String password = request.getParameter("password");

        System.out.println(query);
        System.out.println(email);
        System.out.println(password);
    }

输出的结果:

email=123%40ww&password=4124123
123@ww
4124123

超人不会飞
12 声望4 粉丝

一个想去做开发的研究生