🍎一.Spring MVC介绍
🍒1.1 什么是SpringMVC?
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为“Spring MVC” .
从上述定义我们可以得出两个关键信息:
- Spring MVC 是⼀个
Web 框架
- Spring MVC 是基于
Servlet API 构建的
🍒1.2 MVC 定义
MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构模式,它把软件系统分为 模型、视图和控制器
三个基本部分
● Model(模型)是应⽤程序中⽤于处理应⽤程序数据逻辑的部分。通常模型对象负责在数据库中存取数据
● View(视图)是应⽤程序中处理数据显示的部分。通常视图是依据模型数据创建的
● Controller(控制器)是应⽤程序中处理⽤户交互的部分。通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据
🍒1.3 Spring MVC 与 MVC 的区别
MVC 是⼀种思想,⽽ Spring MVC 是对 MVC 思想的具体实现
总结来说,Spring MVC 是⼀个实现了 MVC 模式,并继承了 Servlet API 的 Web 框架。既然是 Web框架,那么当⽤户在浏览器中输⼊了 url 之后,我们的 Spring MVC 项⽬就可以感知到⽤户的请求
🍒1.4 Spring MVC的基本功能
Spring MVC 我们只需要掌握以下 3 个基本功能:
连接的功能:将⽤户(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的Spring 程序
获取参数的功能:⽤户访问的时候会带⼀些参数,在程序中要想办法获取到参数
输出数据的功能:执⾏了业务逻辑之后,要把程序执⾏的结果返回给⽤户对于 Spring MVC 来说,掌握了以上 3 个功能就相当于掌握了 Spring MVC
🍎二. Spring MVC项目的创建
🍒2.1 Spring MVC 创建
Spring MVC 项⽬创建和 Spring Boot 创建项⽬相同(Spring MVC 使⽤ Spring Boot 的⽅式创建),在创建的时候选择 Spring Web 就相当于创建了 Spring MVC 的项⽬
Spring MVC 可以基于 Spring Boot 创建,也就是创建⼀个 Spring Boot 项⽬,勾选上 Spring Web模块即可,如下图所示:
🍒2.2 Spring MVC 连接
在 Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射,也就是浏览器连接程序的作⽤
例如:
在我们所部署的项目中返回一个"hello world!“的这个方法,我我们就可以利用@RequestMapp(”/你所设置的访问目录")在本地浏览器网站输入127.0.0.1:8080/输入你所设置的目录就会在页面中返回你设置的方法"hello world!"
@Controller public class UserController { //返回一个非静态页面的数据 @ResponseBody //设置路由url/第一路径 @RequestMapping("/sayhi") public String sayHi(){ return "hello world." ; } }
🍎 @RequestMapping 与 (GetMapping和PostMapping)注解的使用
@RequestMapping
的请求方式
● 如果方法上的@RequestMapping注解没有设置method属性,则get和post请求默认都可以访问
● 如果方法上的@RequestMapping注解设置了method属性,则只能是相应的请求方式可以访问
🍒3.1 @RequestMapping注解的介绍与使用
@RequestMapping 即可修饰类,也可以修饰⽅法,当修饰类和⽅法时,访问的地址是类 + ⽅法
@RequestMapping 是 Spring Web 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的.
路由映射:所谓的路由映射指的是,当⽤户访问⼀个 url 时,将⽤户的请求对应到程序中某个类的某个⽅法的过程就叫路由映射
@RequestMapping 基础使⽤就与刚才我们提到的Spring MVC连接中提到的就
我们也可以在method属性中来选择使用哪个方法
@RequestMapping(method = RequestMethod.POST, value = "/sayhi2") public String sayHi2(){ return "Hello World!"; }
🍒3.2 GetMapping注解的使用
// 写法1 @RequestMapping("/index") // 写法2 @RequestMapping(value = "/index",method = RequestMethod.GET) // 写法3 @GetMapping("/index")
我们可以通过postman来进行验证,是否GetMapping注解只能支持Get方法访问
@GetMapping("/sayhi4") public String sayHi4(){ return "Hello World4!"; }
我们可以在postman不能在post方法下进行访问
🍒3.3 PostMapping注解的介绍与使用
// 写法1 @RequestMapping(value = "/index",method = RequestMethod.POST) // 写法2 @PostMapping("/index")
我们可以通过postman来进行验证,是否PostMapping注解只能支持Post方法访问
@PostMapping("/sayhi3") public String sayHi3(){ return "Hello World3!"; }
我们可以在postman中发现不能在Get方法下进行访问