目录
1.什么是SpringMVC?
1.它构建servlet之上的(servlet学的就是API)
2.他是一个web框架(具有Http能力)(ajax底层是Http)
3.来自于Spring中的webMVC模块
MVC是什么:Model View Controller 模型 视图 控制器
Model负责在数据库中存取数据
View:视图是用来展现信息的(用户看的)
Controlller:处理Controller的信息给用户(为了让用户看懂,Controller的信息用户看不懂)
SpringMVC和MVC的关系就像DI基于Ioc的关系一样,一个是具体的技术,一个是软件工程设计思想。
总结来说,SpringMVC是一个实现了MVC设计思想,并继承了servlet的API的Web框架
为什么学习SpirngMVC?
是为了更好的使用SpringBoot 因为SpringBoot里面的Spring Web内置了SpringMVC
2.学习SpringMVC学习了什么?
1.连接浏览器 和Java程序
2.获取用户参数的功能
3.输出数据返回浏览器
3.SpringMVC核心1
上图解释
@RequestMapping 使用这个注解来实现类和方法路由的注册,实现浏览器连接Java程序
其实就是网页的路径,类可以不加,但是方法一定要加
@Controller 前后端交互 加了这个Spring启动的时候把这个类注册到Spring中
@ResponseBody 该注解表示方法的返回值将直接作为响应体返回给客户端,
如果不加@ResponseBody 方法返回的hi会被视为逻辑视图名(View),会被解析为对应的视图模块进行渲染,而不是直接返回客户端。
不写@ResponBody默认返回的View 这是SpringMVC的历史遗留原因
总结起来,加入这三个注解是为了实现将方法的返回值直接作为响应体返回给客户端,并将请求路径映射到对应的方法上,使得浏览器能够访问到对应的方法并获取响应结果。
符合注解@RestController 是Controller和ResponseBody的复合
get和post的区别
4.SpringBoot传递参数
第二个表示当前接口只支持post接口的访问url
从url获取参数(一切都是对于后端而言的 )
Java代码中的name要和url或者body中的key完全相同
传参注意事项:在SpringBoot(MVC)传参中一定要传包装类型,不能传入基本类型
如果传入了基本类型的话,如果url不设置参数的话那么就会报500错误
5.SpringBoot传递对象参数
GetMapping是从服务器拿东西(查询字符串是直接写入到服务器再拿到前端的)
6.SpringBoot传递表单
前端给后端传入参数,两种方式
1.from表单 传入后端和get一样 ,后端去取的话使用对象去取
2.ajax
不管前端是表单还是ajax,后端都是用GetMapping和SetMapping来传入前端和接受的前端的数据的
7.SpringBoot后端参数重命名
当前端小哥给你个不标准的参数命名的时候,你要改成标准的
@RequestParam
实际就是
前端是按照t1 t2传给我的
但是我接受的时候把t1 t2 重命名 ,我用我重命名的beginTime 和endTime,前端用他自己的t1 t2 我们互不影响
注意用参数重命名的注解@RequestParam的时候默认是买一送一的,它自动给你设置了必须传入参数,否则无法获取数据
如果不想设置必须传入参数的话,把required 设为false
8.SpringBoot后端用来接收json对象
首先明白接受java对象的注解@GetMapping方法不能接受json对象
为什么要用json传输呢?
当第三方之间进行信息交互的时候一般约定用json交流
如何接受json对象?
注解@RequestBody,从请求的body中去拿数据
json是存放在body中的 ,get大部分没有body所以用postMapping最好