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

news2024/11/25 20:41:55

目录

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 有什么区别? - 掘金

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

欧姆龙CX系列PLC串口转以太网欧姆龙cp1hplc以太网连接电脑

你是否还在为工厂设备信息采集困难而烦恼&#xff1f;捷米特JM-ETH-CX转以太网通讯处理器为你解决这个问题&#xff01; 捷米特JM-ETH-CX转以太网通讯处理器专门为满足工厂设备信息化需求而设计&#xff0c;可以用于欧姆龙多个系列PLC的太网数据采集&#xff0c;非常方便构建生…

请用Typescript写出20个数组方法的声明

前言 前段时间看直播看到狼叔直播驳斥”前端已死论“&#xff0c;前端死没死不知道&#xff0c;反正前端是拿不到以前那么多工资了&#xff1b;好&#xff0c;进入正题&#xff0c;狼叔在直播间提到要求前端写出20个数组上的方法&#xff0c;这确实不太简单&#xff0c;但是只…

【CSharp】关于xxx.csproj文件的理解

【CSharp】关于xxx.csproj文件的理解 1、背景2 关于.csproj 文件 1、背景 CShape又简写C#。 在示例代码里&#xff0c;遇到.csproj 文件。 项目结构如下&#xff1a; 本博客属于小白入门级。 2 关于.csproj 文件 上面的iRayBase.csproj 文件后缀是 .csproj 。 csproj的全称…

框架漏洞-CVE复现-Apache Shiro+Apache Solr

什么是框架&#xff1f; 就是别人写好包装起来的一套工具&#xff0c;把你原先必须要写的&#xff0c;必须要做的一些复杂的东西都写好了放在那里&#xff0c;你只要调用他的方法&#xff0c;就可以实现一些本来要费好大劲的功能。 如果网站的功能是采用框架开发的&#xff0c;…

typescript自动编译文件实时更新

npm install -g typescripttsc --init 生成tsconfig.json配置文件 tsc -w 在监听模式下运行&#xff0c;当文件发生改变的时候自动编译

【数学建模快速入门】

MD5码 生成了MD5码之后就不可以再去碰文件了&#xff08;打开都不行&#xff09;百度搜索 1、查询词的外边加上双引号“” 2、在查询词的前面加上&#xff1a;intitle: 3、查询词后面加上空格再输入filetype&#xff1a;文件格式&#xff08;doc/pdf/xls&#xff09; 4、在3的…

React+Redux 数据存储持久化

ReactRedux 数据存储持久化 1、安装相关依赖 yarn add reduxjs/toolkit redux redux-persist 2、userSlice&#xff1a;用户状态数据切片封装 import { createSlice, PayloadAction } from reduxjs/toolkitinterface IUserInfo {userName: stringavatar?: stringbrief?: st…

第111天:免杀对抗-JavaASM汇编CS调用内联CMSF源码特征修改Jar打包

知识点 #知识点&#xff1a; 1、ASM-CS-单汇编&内联C 2、JAVA-MSF-源码修改&打包#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载面-Dll反射…

基于linux下的高并发服务器开发(第三章)- 3.6 线程取消

#include <pthread.h> int pthread_cancel(pthread_t thread);- 功能&#xff1a;取消线程&#xff08;让线程终止&#xff09;取消某个线程&#xff0c;可以终止某个线程的运行&#xff0c;但是并不是立马终止&#xff0c;而是当子线程执行到一个取消点&#xff0c;线程…

GOT Online|解密游戏性能优化秘籍

随着UWA GOT Online功能的不断迭代&#xff0c;GOT Online为解决各种游戏性能问题&#xff08;如内存占用、CPU耗时、GPU耗时和卡顿&#xff09;提供了丰富的高效、准确且便捷的数据获取方式和分析建议。本文总结了GOT Online&#xff08;SDK 2.4.7版本&#xff09;中的关键优化…

fps php,帧率60帧是什么意思

帧率60的意思是每秒屏幕刷新60次&#xff0c;帧率是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数即Frames per Second&#xff0c;简称FPS或“赫兹”&#xff0c;此词多用于影视制作和电子游戏。 本文操作环境&#xff1a;Windows7系统&#xff0c;Dell G3电脑。 帧…

计算机网络模型

计算机网络模型 网络模型网络模型中各层对应的协议封装与分用TCP/IP协议簇的组成 网络模型 OSI 七层模型 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP四层模型 应用层、传输层、网络层、网络接口层 TCP/IP五层模型 应用层、传输层、网络层、数据链路…

【SpringCloud Alibaba】(二)微服务环境搭建

1. 项目流程搭建 整个项目主要分为 用户微服务、商品微服务和订单微服务&#xff0c;整个过程模拟的是用户下单扣减库存的操作。这里&#xff0c;为了简化整个流程&#xff0c;将商品的库存信息保存到了商品数据表&#xff0c;同时&#xff0c;使用商品微服务来扣减库存。小伙…

【简单认识MySQL主从复制与读写分离】

文章目录 一、MySQL主从复制1、配置主从复制的原因&#xff1a;2、主从复制原理1、 MySQL的复制类型2、 MySQL主从复制的工作过程;1、 MySQL主从复制延迟2、优化方案&#xff1a;3、 MySQL 有几种同步方式&#xff1a; 三种4、异步复制&#xff08;Async Replication&#xff0…

【初始C语言】多种输入格式的优劣

多种输入格式的优劣【初始C语言】 一.多种输入格式的不同&#xff08;只针对输入字符&#xff0c;字符串&#xff09;1.scanf&#xff08;"%s",字符数组名&#xff09;2.scanf("%[^\n]s",字符数组名)3.gets(字符数组名)4.fgets&#xff08;字符数组名,规定…

光耦参数设置

2.1发光二极管电阻的选择 数据手册中&#xff0c;IF是发光二极管的允许最大正向电流&#xff0c;值是80mA。这是需要考虑的第一个条件。 再看第二张图&#xff0c;VF是二极管上的电压&#xff0c;图中给出&#xff0c;当IF是10mA的时候&#xff0c;VF的值最大是1.4V。这是需要考…

【python工具】html中表格转化为excel

背景 大家在实际的工作中可能会遇到这样的场景,查看某个统计的页面数据,其中一些数据是表格形式展示的,比如这是国家统计局关于人口统计的数据: 你想将表格内容下载下来根据自己的需要进行二次加工,但是页面没有提供下载功能或者需要你登陆才能下载。那么重点来了~~ 操…

初识 Spring (存储和获取 bean)

目录 初识 Spring总结 DI&#xff08;依赖注入&#xff09;Spring 项目的创建创建一个 Maven 项目添加 Spring 框架支持添加启动类 存储 bean 对象创建 bean将 bean 注册到容器中 获取并使用 bean 对象获取 bean 的方法一获取 bean 的方法二获取 bean 的方法三 ApplicationCont…

【雕爷学编程】Arduino动手做(55)--DHT11温湿度传感器模块2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

Cesium态势标绘专题-位置点(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…