1.1 SpringMVC概述
- SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
- 优点
- 使用简单,开发便捷 (相比于Servlet)
1.2 SpringMVC快速入门
- 使用SpringMVC技术需要先导入SpringMVC坐标与Servlet坐标
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
- 创建SpringMVC控制器类 (等同于Servlet功能)
@Controller
public class UserController {
@RequestMapping("/save")
@ResponseBody
public String save(){
System.out.printIn("user save);
return "{'info':'springmvc'}";
}
}
- 初始化SpringMVC环境 (同Spring环境),设定SpringMVC加载对应的bean
@Configuration
@ComponentScan("love.iloveworld.controller")
public class SpringMvcConfig {
}
- 初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC技术处理的请求
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
protected WebApplicationContext createServletApplicationContext() {
AnnotationConfigwebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(SpringMvcConfig.class);
return ctx;
}
protected Stringl] getServletMappings() {
return new String[]{"/"};
}
protected WebApplicationContext createRootApplicationContext() {
return null;
}
- 运行程序
加载tomcat插件,在运行自定义tomcat7:run
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
1.3 请求与响应
规避多模块请求冲突问题
1.3.1 请求传参
1.3.1.1 POST请求中文乱码处理
解决方案:为web容器添加过滤器并指定字符集,Spring-web包中提供了专用的字符过滤器
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherSeryletInitializer{
// 配字符编码过滤器
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("utf-8");
return new Filter[]{filter};
}
}
1.3.1.2 普通传参
1.3.1.3 POJO传参或嵌套POJO
1.3.1.4 数组传参
1.3.1.5 集合传参
1.3.1.6 总结记忆
数据传参默认使用变量名对应,若对应不上的就加个
@RequestParam
指定数据对应就行了!
1.3.2 传json参数
1.3.2.1 导入json坐标
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
1.3.2.2 核心配置文件中启动EnableWebMvc
1.3.2.3 接受请求中的json数据
1.3.3 @RequestParam 和 @RequestBody 的区别
1.3.4 数据格式转换
1.3.4.1 时间转换
内部工作原理: Converter接口
1.3.5 响应
工作原理:HttpMessageConverter接口
1.4 REST 风格
- REST (Representational State Transfer) ,表现形式状态转换
- 优点:
- 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
- 书写简化
1.4.1 RESTful快速入门
-
设定http请求动作(动词)
-
设定请求参数(路劲变量)
总结
1.4.2 REST简化开发
- 返回值简化
- 参数接受简化