SpringMVC是一款基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称(
spring-webmvc
),但它通常被称为“Spring MVC”。
接收数据前,肯定是先要找请求的路径的。所以有了@RequestMapping,设置请求路径
@RequestMapping(“/**”) 用来设置请求路径,还有几个进阶的注解
1、直接接收:形参名和传递参数名相同,就可以直接传递。
2、@RequestParam注解接收:用@RequestParam注解帮助形参与传递参数进行绑定
接收的数据有:基本数据类型、集合、Java类
@CookieValue
注释将 HTTP Cookie 的值绑定到控制器中的方法参数。就是原生Api直接间接进行数据交互的区域。
后端开发分为:混合开发和前后端分离开发。
- 混合开发:就是后端既要会前端也要后端,最后在返回数据的时候,返回的是一个前端页面。
- 分离开发:后端只需要注重后端的数据开发就行了,最终返回的是一个某种类型的数据。
- 转发:就是在项目下的资源跳转
- 重定向:相当于超链接。比如进入一个网页中可以随便由后端跳转到某个资源或网页中。
转发是项目下的资源跳转,路径 : 项目下的地址 jsp/index 忽略applicationContext。
重定向项目下的资源可以是项目外的地址 重定向属于二次请求 路径: 项目下的地址 全地址 /springmvc/jsp /index 不忽略applicationContext
redirect是重定向的关键字
forward是转发的关键字
- //重定向:
- //1、方法返回值写出字符串类型
- //2、不能添加responseBody注解
- //3、返回字符串 redirect:/重定向地址
-
- @RequestMapping("/redirect-demo")
- public String redirectDemo() {
- // 重定向到 /demo 路径
- return "redirect:/demo";
- }
-
- //转发:只能是项目下的资源
- //1、方法返回值写出字符串
- //2、不能添加responseBody注解
- //3、返回字符串forward :/转发地址
-
- @RequestMapping("/forward-demo")
- public String forwardDemo() {
- // 转发到 /demo 路径
- return "forward:/demo";
- }
-
- //注意: 转发和重定向到项目下资源路径都是相同,都不需要添加项目根路径!填写项目下路径即可!
前期需要准备:
导入json依赖
添加json数据转换器 @EnableWebMvc
接下来就是两个注解:
@ResponseBody注解:将返回的对象转换成json数据返回。
@RestController:@ResponseBody注解 + @Controller注解
就是在配置类中配置
配置类
-
-
- //这里是一个配置类
- @EnableWebMvc //json数据处理,必须使用此注解,因为他会加入json处理器
- @Configuration
- @ComponentScan(basePackages = "com.atguigu.controller") //TODO: 进行controller扫描
- //WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
- public class SpringMvcConfig implements WebMvcConfigurer {
-
- //配置jsp对应的视图解析器
- @Override
- public void configureViewResolvers(ViewResolverRegistry registry) {
- //快速配置jsp模板语言对应的
- registry.jsp("/WEB-INF/views/",".jsp");
- }
-
- //开启静态资源处理
- @Override
- public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
- configurer.enable();
- }
- }
方法
- /**
- * 设置静态资源映射
- * @param registry
- */
- protected void addResourceHandlers(ResourceHandlerRegistry registry) {
- log.info("开始静态资源映射");
- registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
- registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
- }
-
操作 | 请求方式 |
---|---|
查询 | GET |
保存 | POST |
删除 | DELETE |
更新 | PUT |
将异常的处理独立处理,通过配置之后统一来应对。
实现流程
定义好异常类
声明异常处理控制器类(用来统一定义异常处理的handler方法)
声明异常处理handler方法
核心点 | 掌握目标 |
---|---|
springmvc框架 | 主要作用、核心组件、调用流程 |
简化参数接收 | 路径设计、参数接收、请求头接收、cookie接收 |
简化数据响应 | 模板页面、转发和重定向、JSON数据、静态资源 |
restful风格设计 | 主要作用、具体规范、请求方式和请求参数选择 |
功能扩展 | 全局异常处理、拦截器 |