重点是关注Controller,它主要进行接收请求,设置响应
Web服务器
对HTTP协议操作进行封装,简化web程序开发
部署web项目,对外提供网上信息浏览服务
Tomcat
轻量级web服务器,支持servlet,jsp等少量javaEE规范
也被称为web容器,servlet容器
Springboot有内置Tomcat
nginx并发比tomcat好一点但是tomcat是为java量身定做,nginx是为web做方向代理多点
3.0以上的springboot用JDK17
起步依赖
-starter都是起步依赖
在启动springboot会自动启动内嵌Tomcat,并占用端口号8080
POJO
专门存放实体类
pojo=>Plain Ordinary Java Object 就是普通java类,这是j2ee时代的名字和复杂j2ee对象做区分
简单参数
请求参数名与形参一致,就可自动接收
参数对应不上,就要借助于注解
@RequestParam
实体参数
当请求参数过多,不如将参数封装到实体类中。
要求就是:请求参数名与形参属性名相同,定义POJO接受即可
数组集合参数
服务端接收形式:数组、集合
日期参数
接收json参数
请求POST,json数据需要通过请求体携带到后端。
JSON键名与形参对象属性名相同,定义POJO类型形参即可接收是参数,需要使用
@RequestBody
注解将json数据封装到实体对象中
服务端一般通过实体对象来接收
路径参数
通过URL直接传递参数,即请求参数是请求路径的一部分
需要使用
@PathVariable
获取路径参数
响应
响应数据
@RestController
=
@ReponseBody
【也就是说这个@RestController已经包括了】@Controller
@ReponseBody
加了这个注解,当前类下所有方法的返回值都能作为相应数据,集合啥的都转换为JSON作为返回值
响应的格式:响应行+响应头+响应体
统一响应结果
整理一下一些注解
@ResponseBody
的作用其实是将java对象转为json格式的数据,然后直接写入HTTP response 的body中;
@RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。
2.
@RestController
=
@ReponseBody
@Controller
在类上用@RestController,其内的所有方法都会默认加上@ResponseBody,也就是默认返回JSON格式。如果某些方法不是返回JSON的,就只能用@Controller了吧,这也是它们俩的区别。
@RestController和@Controller
的共同点是都用来表示Spring某个类是否可以接收HTTP请求,二者区别: @RestController无法返回指定页面,而@Controller可以;前者可以直接返回数据,后者需要@ResponseBody辅助。
3.
@RequestBody
是作用在形参列表上,用于将前台发送过来固定格式的数据【xml格式 或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。
就是将JSON格式的数据封装到实体类中
版权归原作者 weixin_44040169 所有, 如有侵权,请联系我们删除。