Spring MVC-基础概念(定义+创建和连接+@RequestMappring的描述)

目录

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两个基本信息:

  1. 构架在 Servlet (API) 之上的
  2. 是一个 Web框架(Http)
  3. 来自于 Spring webMVC 模块

这就意味着:

1.servlet那套写法再MVC中是适配的

2.意味着具备http能力,意味着可以拿它去做接口,做网站

2. MVC 和 Spring MVC 的关系

MVC 是 Model View Controller 的缩写,它是软件工程中的一种软件架构模块,他把软件系统分为了  模型,视图,控制器 三个基本部分

  1. Model(模型)是一个数据模型,适用于和数据库打交道的数据持久层,通过它可以访问所有的数据库
  2. View(视图)通常是用来展现信息的,给用户看的东西
  3. 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 有什么区别? - 掘金

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆腐乾净找方规

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值