Spring笔记5——SpringMVC
简介
这个技术隶属于spring,是spring技术中的一部分。



入门案例

spring-webmvc的版本与前面spring包的版本保持一致5.2.10

作为spring技术,先要把它做成一个bean,用与@Component功能一样的注解@Controller(专用于开发表现层)
然后定义任意一个方法,返回值设置为期待的类型(json数据就是string类型)
页面想调用这个方法,访问的路径在@RequestMapping里设置。



第一个方法是告诉tomcat容器加载spring配置类。
第二个方法是拦截所有请求,交给springmvc去处理。




工作流程

服务器启动的工作流程

1.服务器启动之后第一件事是加载服务器的配置,在web3.0之后不用web.xml了,用配置类。在使用springmvc时,这个配置类执行了ServletContainersInitConfig这个类,初始化了web容器
2.WebApplicationContext这个对象是springmvc的容器最终体现的对象

3.加载具体的配置

配置是组件扫描:

4.扫的是controller:

5.这里用/save关联了save方法,以后用户发出/save请求的时候就会被拦截到这个方法中(这个映射关系不是在这里定义的,所有的springmvc的映射关系是放在一起统一管理的,不是这里)
6.设置拦截所有进入tomcat的请求全部交给springmvc来处理


一次具体请求流程
当用户发送了一次请求localhost/save,web容器收到,然后根据之前的设定把这个请求交给springmvc。springmvc根据之前@requestMapping的配置,解析请求路径发现是save()方法,然后就把save()执行后的返回值直接作为响应体返回给请求方。


bean加载控制







请求与响应

请求映射路径


↓

GET请求参数

POST请求参数
【图片】
中文参数 过滤器处理
请求参数

普通参数



POJO参数

嵌套POJO参数


集合保存普通参数

总结就是:默认的,名称都能对上;对不上的,用@RequestParam对一下就行
如果要用集合参数传递,写成下面的代码就会出错:

报错:
![]()
(<init>表示构造函数)这里的报错意思是找不到list的构造方法,因为list被当作一个引用类型去解析了,程序会去找其构造方法制造其对象,然后用set方法去给集合的属性赋值。但我们是想让外部数据做成集合中的数据出现,而非集合的属性(集合的属性都是些length什么的)
使用注解:

就可以解决
json数据传递参数
步骤:




两个注解:


演示:



日期类型参数传递


转换的原理:

响应






REST风格
REST简介
访问网络资源的格式转换





入门案例


以前使用这个注解不区分提交方式,现在开始区分了:



RESTful快速开发



案例





浙公网安备 33010602011771号