目录
1.什么是Spring MVC?
2. MVC 和 Spring MVC 的关系
3.Spring MVC 项目创建
4. @RequestMappring实现用户和程序的映射
4.1 @RequestMappring 注解解释
4.2 方法1: @RequestMapping(“/xxx”)
4.4 @RequestMapping(method = xxxx, value = “xxx”) 是POST/GET请求
4.5 方法2:@PostMapping(“/xxx”)
4.6 方法3:@GetMapping(“/xxx”)
4.7 经典面试题Get方法和Post方法的区别
1.什么是Spring MVC?
官方对于 Spring MVC 的解释是:
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。的正式名称“Spring Web MVC”来自其源模块的名称(Spring-webmvc),但它通常被称为“SpringMVC”。
从上述解释我们可以知道Spring MVC两个基本信息:
- 构架在 Servlet (API) 之上的
- 是一个 Web框架(Http)
- 来自于 Spring webMVC 模块
这就意味着:
1.servlet那套写法再MVC中是适配的
2.意味着具备http能力,意味着可以拿它去做接口,做网站
2. MVC 和 Spring MVC 的关系
MVC 是 Model View Controller 的缩写,它是软件工程中的一种软件架构模块,他把软件系统分为了 模型,视图,控制器 三个基本部分
- Model(模型)是一个数据模型,适用于和数据库打交道的数据持久层,通过它可以访问所有的数据库
- View(视图)通常是用来展现信息的,给用户看的东西
- Controller(控制器)来处理用户交互的
MVC是一种思想,而 Spring MVC 是一个具体实现的框架
总的来说:Spring MVC 是一个实现了 MVC 模式,并继承了 Servlet API 的框架
3.Spring MVC 项目创建
现在主流的创建方式为:使用 Spring Boot 添加 Spring Web 模块 = Spring MVC
4. @RequestMappring实现用户和程序的映射
4.1 @RequestMappring 注解解释
@RequestMapping 是 Spring Web应用程序中最常被用到的注解之一,它是用来注册接口的路由映射的。
路由映射:所谓的路由映射指的是,当用户访问一个url时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射。
4.2 方法1: @RequestMapping(“/xxx”)
@RequestMapping 可修饰类, 也可以修饰方法. 当修饰类和方法时, 访问的地址是 类 + 方法
接下来,创建⼀个 UserController 类,实现⽤户到 Spring 程序的互联互通,具体实现代码如下:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller // 让 spring 框架启动时,加载
@ResponseBody // 返回⾮⻚⾯数据
@RequestMapping("/user") // 路由器规则注册
public class UserController {
// 路由器规则注册
@RequestMapping("/hi")
public String sayHi(){
return "<h1>Hi,Spring MVC.</h1>";
}
}
这样实现之后,当访问地址:http://localhost:8080/user/hi 时就能打印“hello,spring mvc”的信息
了
4.4 @RequestMapping(method = xxxx, value = “xxx”) 是POST/GET请求
使用PostMan可以测试得到,默认情况下使用注解@RequestMapping是可以接收GET和POST 请求的
@RequestMapping(method = xxxx, value = “xxx”)是可以指定POST还是GET请求的
@Controller
@ResponseBody // 定义返回的数据格式为⾮⻚⾯
public class UserController {
@RequestMapping(value = "/hi",method= RequestMethod.POST)
public String sayHi(){
return "<h1>Hi,Spring MVC.</h1>";
}
}
4.5 方法2:@PostMapping(“/xxx”)
直接指定为POST请求
@Controller
@ResponseBody // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user") // 类上的 RequestMapping 可以省略
public class UserController {
@PostMapping("/sayhi3")
public String sayHi3() {
return "Hello";
}
}
4.6 方法3:@GetMapping(“/xxx”)
直接指定为GET请求
@Controller
@ResponseBody // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user") // 类上的 RequestMapping 可以省略
public class UserController {
@GetMapping("/sayhi4")
public String sayHi4() {
return "Hello";
}
}
4.7 经典面试题Get方法和Post方法的区别
这里给大家推荐一篇大佬写的:
面试突击71:GET 和 POST 有什么区别? - 掘金