前言
相信许多道友对数据请求响应知其然不知其所以然,例如: 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。
事实是:是我们在浏览器发起请求,请求了我们的后端web服务器。而我们在开发web程序时,定义了一个控制器类Controller,请求会被部署在Tomcat中的Controller接收,然后Controller再给浏览器一个响应,响应一个字符串 “Hello World”。 而在请求响应的过程中是遵循HTTP协议的。
接下来,小朕就来和大家讲解一下用过的几种方式:
-
原始方式
-
SpringBoot方式
原始方式
在原始的Web程序当中,需要通过Servlet中提供的API:HttpServletRequest(请求对象),获取请求的相关信息。比如获取请求参数: Tomcat接收到http请求时:把请求的相关信息封装到HttpServletRequest对象中。
在Controller中,我们要想获取Request对象,可以直接在方法的形参中声明HttpServletRequest 对象。然后就可以通过该对象来获取请求信息:String request.getParameter("参数名")
这种方式在以后的编程中也不大会去使用,这里只是码出来给大家了解一下。
SpringBoot方式
在讲解具体方式之前,推荐大家一个下载一个插件 postman(www.postman.comhttps://www.getpostman.com/www.postman.com):Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。其功能:可以模拟浏览器向后端服务器发起任何形式(如:get、post)的HTTP请求;使用Postman还可以在发起请求时,携带一些请求参数、请求头等信息。常用于:进行接口测试。
1. 简单参数
在Springboot的环境中,对原始的API进行了封装,接收参数的形式更加简单。 如果是简单参数,参数名与形参变量名相同,定义同名的形参即可接收参数。
postman测试( GET 请求):
Idea响应:
postman测试( POST请求 ):
Idea响应:
注意:不论是GET请求还是POST请求,对于简单参数来说,只要保证 请求参数名和Controller方法中的形参名保持一致;就可以获取到请求参数中的数据值。
2. 实体参数
在使用简单参数做为数据传递方式时,前端传递了多少个请求参数,后端controller方法中的形参就要书写多少个。如果请求参数比较多,通过上述的方式一个参数一个参数的接收,会比较繁琐。此时,我们可以考虑将其纳求参数封装到一个实体类对象中。要想完成数据封装,需要遵守:请求参数名和实体类的属性名相同。
2.1 简单实体对象
定义POJO实体类:
注:红框内的代码可以快速生成。点击右键选择Generate,选择Getter,全选后进行创建。
Controller方法:
Postman测试:
2.2 复杂实体对象
复杂实体对象指的是,在实体类中有一个或多个属性,也是实体对象类型的。如下:User类中有一个Address类型的属性(Address是一个实体类)
注:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套实体类属性参数。
定义POJO实体类:
-
Address实体类
-
User实体类
Controller方法:
Postman测试:
总结
对不住了,诸位。今天儿实在是太冷了,小朕扛不住了,剩下的内容小朕明天再写。如果大家伙还有疑问,可以再评论区里发出来,我们一起解决,共同进步。拜拜了,诸位。