1.基本数据类型
2.POJO类型
3.数组类型
4.集合类型
Controller的方法参数的参数名要和请求参数名相同,参数值自动映射
代码如下(示例):
(传统方式):getParamterMap得到map集合
要求请求参数中的参数名对应类方法中的setter方法后通过javaBean封装。
代码如下(示例):
method1:
获得集合时候要将集合参数包装到POJO当中
搭建VO类,封装集合中的数据类型
method2(当客户端发起Ajax请求):
当客户端发起Ajax请求时,可以ContentType的类型为json类型,那
么在方法参数位置加上@RequestBody可以直接收集集合数据,无需在使用POJO封装。
前端控制器的配置:
DispatcherServlet
/
控制器会将jquery作为访问的路径,自然找不到对应的mapping。
解决思路:
1.开放静态资源
2.权限交付
当spring-mvc匹配不到对应的地址后就将权限交给原始的容器去寻找(当前使用的是tomcat)
配置filter:
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
前提:当请求参数与Controller业务方法对应的参数名称不相同时,需要通过@RequestParam注解显示绑定
代码如下(示例):
1.value:请求参数名称
2.required:指定请求参数是否必要,默认为true,当请求没有该参数时会报错。
3.defaultValue:当没有该参数时,使用默认参数
Restful是一种架构风格,而并不是标准,只是提供了一种设计原则和约束条件,使得设计风格更加简洁有层次感,更易于缓存机制。
1.GET:用于获取资源
2.Post:用于新建资源
3.PUT:用于更新资源
4.DELETE:用于删除资源
代码如下(示例):
1.使用@RequestHeader可以获得请求头信息,相当于web阶段的request.getHeader(name)。
2.@CookieValue用于获取Cookie信息
① 表单项type=“file”
② 表单提交方式为Post
③ 表单的enctype属性值必须为multipart/form-data
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form-data | 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 “+” 加号,但不对特殊字符编码。 |
① 当表单修改为多部分表单时request.getParameter将失效
② 请求体的正文内容变成了多部分形式
① 导入fileupload和io的坐标
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
② 配置文件上传解析器
③ 编写文件上传编码
@RequestMapping("/main8")
public void save8(String name , MultipartFile filename){
System.out.println(filename);
}
注:MultipartFile对应的对象名要和文件请求的name相同
MutipartFile中存在方法transferTo,只需传递File对象即可保存上传的文件。
@RequestMapping("/main8")
public void save8(String name , MultipartFile filename) throws IOException {
System.out.println(filename);
String originalFilename = filename.getOriginalFilename();
filename.transferTo(new File("xxxxxxxxxx"));
}
MultipartFile数组作为参数即可。