SpringMVC的请求

客户端发的请求SpringMVC在接收时可以分为:

获取基本类型参数

Controller中的业务方法的参数名称要与实际参数的name一致,参数值回自动映射匹配

直接在controller方法的参数位置声明想要的参数即可,参数名称和request传递来的参数名称必须相同(username和age要对应上)


POJO(简单Java类)类型参数

Controller中的业务方法的POJO参数的属性名和请求参数的name一致,参数值回自动映射匹配

URL里的username,age与User类中的属性名username,age一致,没有就跳过。然后匹配上的属性会通过反射器调用getset方法

SpringMVC会把url传来的参数值自动封装到user对应的属性中

UserController类:

Url:

结果:

数组类型参数

Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配

UserController类:

URL:

结果:

集合数据类型

集合的POJO封装(几乎不用这种方式)

获得集合参数时,要将几何参数包装到一个POJO中才可以,我们新建一个VO类

UserController类:

新建一个jsp,并通过post方式访问,并给userList集合里的第一个和第二个对象进行封装

访问jsp

返回集合:

异步获得集合类型参数

如果使用json格式提交数据(ajax请求),可以指定contentType为json形式,在controller的方法参数位置使用@RequestBody注解可以把接收到的json转换成对象。直接接收集合数据而无需使用POJO进行封装。

导入js

ajax.jsp

UserController类:

最后在spring-mvc.xml中添加一句话,因为默认js这种静态资源默认是不加载的。

url:

结果:

关于静态资源的处理

SpringMVC的前端控制器路径配置为 / 前端控制器会接收到静态资源的请求

1.让SpringMVC处理静态资源,手动配置一个映射关系,让SpringMVC有映射访问静态资源的能力

mapping:映射,指的是请求的url路径

location:实际访问的资源的位置

意思是url里写mapping后面跟着的位置时,会映射到location后面跟着的位置

2.不让SpringMVC处理静态资源,让Web容器来处理(Tomcat)

SpringMVC请求的乱码问题

参数绑定注解requestParam

Parameter

标注在Controller中方法的参数上,用于指定请求参数和方法的参数名的映射关系

UserController类:

URL:

结果是Van

结果是Aniki

Map

标注的Controller方法的参数是一个map,它会把所有的请求参数都获取出来存入该map中,类似request.getParameterMap()

UserController类:

URL:

结果:

Restful风格:请求方式+url,目前主流都这样用

可以在不同的请求方式和不同的url都会导致请求的资源不同,对缓存支持的好

UserController类:

localhost8080/getParameterByPathVariable/Van中的Van被占位符{name}接收,然后传递给@PathVariable(value = "name")中的name,然后赋值给username

这样更改请求方式

posted @ 2020-02-09 18:42  卯毛  阅读(264)  评论(0编辑  收藏  举报