一、环境准备
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope> //确定范围避免与tomcat冲突
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId> //启动spring内的webmvc
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding> //此处是解决tomcat中文乱码问题
</configuration>
</plugin>
</plugins>
</build>
二、请求
1.设置映射路径
优化后的:可以到看,user和book类中都有save()方法,故应该在类上添加@RequestMapping()来区分两个类。
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/save")
@ResponseBody
public String save(){
System.out.println("user save ...");
return "{'module':'user save'}";
}
@RequestMapping("/delete")
@ResponseBody
public String save(){
System.out.println("user delete ...");
return "{'module':'user delete'}";
}
}
@Controller
@RequestMapping("/book")
public class BookController {
@RequestMapping("/save")
@ResponseBody
public String save(){
System.out.println("book save ...");
return "{'module':'book save'}";
}
}
2.get请求出现中文乱码
添加环境准备中<configuration>标签的 <uriEncoding>UTF-8</uriEncoding>
3.post请求出现乱码
post请求需要配置过滤器,在ServletContainersInitConfig中
4.五种请求参数
(1).普通参数
拓展应用:
@RequestParam("name")中定义的name可以把username当成name来传参
(2).POJO数据类型
其实就是传递对象
(3).嵌套POJO类型参数
(4).数组类型参数
(5). 集合类型参数
集合类型参数在形参接受时要用@RequestParam修饰。
原因::SpringMVC将List看做是一个POJO对象来处理,将其创建一个对象并准备把前端的数 据封装到对象中,但是List是一个接口无法创建对象,所以报错。
知识点
5.JSON数据传输参数
常见的json数据格式
(1).JSON普通数组
(2).JSON对象数据
(3).JSON对象数组
知识点
6.日期类型参数传递
注意:SpringMVC默认支持的字符串转日期的格式为yyyy/MM/dd
如果要接收不同格式的参数,可以这样:
这些转换由SpringMVC来做,通过调用Converter接口