之前在面试题中看到这样的一个问题,SpringMVC有哪几种接收前端请求数据的方式?当时脑子里第一种反应就是HttpServletRequest,后面的却是答不出来了,后面看了看资料动手写了一个demo,总结一下这几种方式,如果有哪里总结的不对还请指正。
为了方便,这里选用的是SpringBoot,将从搭建框架一步步讲解一下。
首先创建一个项目,我们选择在线安装,输入Spring地址:https://start.spring.io/,然后就可以一直选下一步了
因为我创建的是一个web项目,所以我们这里把web下面的web勾选上,这样就可以了。
好了,项目创建完成了,我们开始编辑代码。首先我们需要在pom.xml添加页面视图元素,添加如下代码:
然后我们开始画一个简单的登录界面,我们在static文件夹下新建一个login.html的文件,可以直接访问
写一个简单的form表单作为登录:
<form action="login.do">
用户名:<input type="text" name="name"/>
密码:<input type="password" name="password"/>
<input type="submit" value="登陆">
</form>
下面我们在demo下面新建一个测试文件编写我们的测试代码:
第一种方式:通过Httprequest来获取前端请求数据,这也是最常见的一种方式了
现在我们访问测试一下,在浏览器输入:http://localhost:8080/login.html,输入我们的用户名跟密码点击登录:
然后我们再看一下控制台的输出跟我们界面的输入对不对
我们界面的输入跟控制台的输出是一致的,说明这种获取方式是可行的。
第二种方式:直接获取
现在我们访问测试一下,在浏览器输入:http://localhost:8080/login.html,输入我们的用户名跟密码点击登录
然后我们再看一下控制台的输出跟我们界面的输入对不对
我们界面的输入跟控制台的输出是一致的,说明这种获取方式是可行的。
第三种:通过@RequestParam注解来绑定页面参数获取
注意:@RequestParam注解括号里的值一定要与页面元素的name、password属性的值保持一致而userName、passWord则相当于取了个别名。
现在我们访问测试一下,在浏览器输入:http://localhost:8080/login.html,输入我们的用户名跟密码点击登录:
然后我们再看一下控制台的输出跟我们界面的输入对不对:
我们界面的输入跟控制台的输出是一致的,说明这种获取方式是可行的。
第四种:通过实体类的get方法获取
首先我们新建一个User的实体类,并添加set/get方法
注意:这里的属性要与页面元素的name属性值保持一致。
现在我们开始编写测试代码:
我们来做一下访问测试,在浏览器输入:http://localhost:8080/login.html,输入我们的用户名跟密码点击登录:
现在我们再看一下控制台的输出跟我们界面的输入对不对:
我们界面的输入跟控制台的输出是一致的,说明这种获取方式是可行的。
以上就是总结的SpringMVC获取前端请求数据的四种方式了,如果有哪里总结的不对或者言辞有误还请指正。