JaveEE进阶----Spring Web MVC入门

news2025/1/15 20:48:19

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、什么是 Spring Web MVC??
      • 1.1MVC 定义
      • 1.2 什么是Spring MVC ?
      • 1.3过浏览器和用户程序交互
  • 二、 @RequestMapping 注解
  • 三、Postman


前言

Spring Boot是一个用于构建快速、简单和可扩展的生产级应用程序的框架。它基于Spring框架,提供了开发微服务和独立的应用程序所需的一切。

一、什么是 Spring Web MVC??

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring
MVC".
从上述定义我们可以得出⼀个信息: Spring Web MVC 是⼀个 Web 框架.
简称之为: Spring MVC

1.1MVC 定义

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分
为模型、视图和控制器三个基本部分.

在这里插入图片描述

•View(视图) 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源.
• Model(模型) 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.
• Controller(控制器)可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型.

1.2 什么是Spring MVC ?

MVC 是⼀种架构设计模式, 也⼀种思想, ⽽ Spring MVC 是对 MVC 思想的具体实现. 除此之外, Spring
MVC还是⼀个Web框架.
总结来说,Spring MVC 是⼀个实现了 MVC 模式的 Web 框架.
所以, Spring MVC主要关注有两个点:

  1. MVC
  2. Web框架

1.3过浏览器和用户程序交互

主要分以下三个⽅⾯:

  1. 建立连接:将用户(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的
    Spring 程序。
  2. 请求: 用户请求的时候会带⼀些参数,在程序中要想办法获取到参数, 所以请求这块主要是获取参数
    的功能.
  3. 响应: 执行了业务逻辑之后,要把程序执行的结果返回给用户, 也就是响应.

二、 @RequestMapping 注解

eg.

@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/sayHi")
    public String sayHi(){
        return "hello,Spring";
    }
}

/*注意:
@RequestMapping 的URL 路径最前⾯加不加 / (斜杠)都可以, 
Spring程序启动时, 会进⾏判断, 如果前⾯没有加 / , Spring会拼接上⼀个 /          
*/

Q:上诉代码为什么加@RestController?
A:⼀个项⽬中, 会有很多类, 每个类可能有很多的⽅法, Spring程序怎么知道要执⾏哪个⽅法呢?因此Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法
有没有加 @RequestMapping 这个注解,从而去实现该方法。

@RequestMapping 是 Spring Web MVC 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的
路由映射的.表示服务收到请求时, 路径为 /sayHi 的请求就会调⽤ sayHi 这个⽅法的代码.
路由映射: 当用户访问⼀个 URL时, 将用户的请求对应到程序中某个类的某个⽅法的过程就叫路由映射.

@RequestMapping 即可修饰类,也可以修饰方法 ,当修饰类和方法时,访问的地址是类路径 + 方
法路径.
@RequestMapping标识⼀个类:设置映射请求的请求路径的初始信息
@RequestMapping标识⼀个方 法:设置映射请求请求路径的具体信息

在这里插入图片描述
@RequestMapping 的URL路径也可以是多层路径, 最终访问时, 依然是 类路径 + ⽅法路径

@RequestMapping 既⽀持Get请求, ⼜⽀持Post请求. 同理, 也⽀持其他的请
求⽅式.

如何指定GET/POST⽅法类型?
我们可以显⽰的指定@RequestMapping 来接收POST的情况。

@RestController
public class UserController {
    @RequestMapping(value = "/getRequest",method= RequestMethod.POST)
    public String sayHi(){
        return "hello,Spring";
    }
}

在这里插入图片描述

在这里插入图片描述

  1. 使⽤ @RequestParam 进⾏参数重命名时, 请求参数只能和 @RequestParam 声明的名称⼀
    致, 才能进⾏参数绑定和赋值.
  2. 使⽤ @RequestParam 进⾏参数重命名时, 参数就变成了必传参数.

三、Postman

后端开发⼯程师, 如何测试⾃⼰的程序呢? – 使⽤专业的接⼝测试⼯具
如下图:
在这里插入图片描述

访问不同的路径, 就是发送不同的请求. 在发送请求时, 可能会带⼀些参数, 所以学习Spring的请求, 主要
是学习如何传递参数到后端以及后端如何接收.传递参数, 我们主要是使⽤浏览器和Postman来模拟.大家可以自己学习如何使用Postman。

注意事项 使⽤基本类型来接收参数时, 参数必须传(除boolean类型), 否则会报500错误 类型不匹配时, 会报400错误.

在这里插入图片描述


最后,码字不易,如果觉得对你有帮助的话请点个赞吧,关注我,一起学习,一起进步!

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

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

相关文章

能理解你的意图的自动化采集工具——AI和爬虫相结合

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…

计网:网络应用层【Email应用/SMTP协议】

Email应用与SMTP协议 Email应用层的构成 客户端服务器协议 用户代理 用于读写邮件消息;与服务器交互,收发邮件消息 常见的客户端:Outlook,Foxmail(这两个是需要下载的客户端),Web客户端&…

浏览器插件利器-allWebPluginV2.0.0.14-bata版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

【数据建模】微分方程与动力系统

文章目录 微分方程与动力系统1. 微分方程的理论基础1.1 函数、导数与微分1.2 一阶线性微分方程的解1.3 二阶常系数线性微分方程的解 2. 使用python求解微分方程2.1 求解微分2.2 求解定积分2.2.1 quad函数求解2.2.2 梯型法则求解 3. 使用Scipy和Sympy解微分方程3.1 使用sympy求解…

4. DSL入门_01

1. 常见的DSL (1) 查询所有: 查询出所有数据,一般测试的时候使用,例如: match_all .但是受分页限制,一般返回10条数据 (2) 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引中匹配&a…

三个 insert 导致的死锁问题

锁种类 插入意向锁(insert intention lock)对已有数据行的修改与删除,必须加强互斥锁 X 锁,那对于数据的插入,是否还需要加这么强的锁,来实施互斥呢?插入意向锁,孕育而生。插入意向…

任务5.2 掌握DStream基础操作

实战:DStream基础操作 了解DStream编程模型:DStream是Spark Streaming中对实时数据流的抽象,可以看作一系列持续的RDD。DStream可以通过外部数据源获取或通过现有DStream的高级操作获得。 操作本质:DStream上的操作最终会转化为对…

OneNote for Windows 10 下载

OneNote for Windows 10 安装 1.在浏览器中输入地址:https://apps.microsoft.com/detail/9wzdncrfhvjl?hlzh-cn&glUS2OneNote for Windows 10 - 在 Windows 上免费下载并安装 |Microsoft StoreOneNote 是用于在设备上捕获和组织你的一切内容的数字笔记本。快速…

对日期的处理

对日期的处理 对编码进行统一,在脚本最开始: # -*- coding: utf-8 -*-这里涉及到两个操作,一个是将数据进行标准化,比如有些日期是2024/05/06这并不符合日期的标准格式,需要转换成这样的2024-05-06 def tran_std(st…

八爪鱼现金流-030,升级日志

八爪鱼现金流 八爪鱼 2024年4月4日09:27:02 v-0.0.1 资产包、负债包,功能优化 2024年4月15日09:27:26 v-0.0.2 增加公告模块 2024年4月18日12:14:32 v-0.0.3 市场查询优化。创建人脱敏处理。增加市场风云菜单。 2024年4月18日15:57:10 v-0.0.4 对于无截止日…

[MYSQL] 数据库基础

1.什么是数据库 从数据库的名字可以看出,它是用来操作(增删查改....)数据的,事实上也的确如此,通过数据库,我们可以更方便.更高效的来操作.管理数据 以文件形式存储数据的缺点 文件的安全问题文件不利于数据的查询和删除文件不利于存储海量数据操作文件并不方便 为了解决上述问…

【Vue-Vben-Admin】1、初次运行和介绍

【Vue-Vben-Admin】1、初次运行和介绍 Vben-Admin 初次运行和介绍 小小的介绍规定版本文件树安装依赖运行项目 小小的介绍 一款 Vue3 Typescript4 Vite2 后台管理项目,功能挺多的,还有组件库 规定版本 此个人文档规定版本为 2.8.0,可能版本…

消息队列MQ相关面试题

消息队列MQ相关面试题 1 RabbitMQ 1.1 你们项目中哪里用到了RabbitMQ ? 难易程度:☆☆☆ 出现频率:☆☆☆☆ 我们项目中很多地方都使用了RabbitMQ , RabbitMQ 是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有二种方式实现 : 通过Fei…

STM32 温湿度采集与OLED显示

目录 一、I2C总线通信协议 1、I2C介绍 2、软件I2C和硬件I2C (1)硬件I2C (2)软件I2C 差异 二、AHT20温湿度传感器 接口原理介绍 1. 温度测量原理 2. 湿度测量原理 实物引脚 传感器性能 电气特性 三、任务实现 具…

【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-37微调

37微调 import os import torch import torchvision from torch import nn import liliPytorch as lp import matplotlib.pyplot as plt from d2l import torch as d2l# 获取数据集 d2l.DATA_HUB[hotdog] (d2l.DATA_URL hotdog.zip,fba480ffa8aa7e0febbb511d181409f899b9baa5…

setInterval 定时任务执行时间不准验证

一般在处理定时任务的时候都使用setInterval间隔定时调用任务。 setInterval(() > {console.log("interval"); }, 2 * 1000);我们定义的是两秒执行一次,但是浏览器实际执行的间隔时间只多不少。这是由于浏览器执行 JS 是单线程模式,使用se…

二进制炸弹的fp是什么?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Go日常分享 - error类型是指针类型吗?

背景 这个问题的产生来源于小泉在开发rpc接口时返回error遇到的问题,开发时想在defer里对err进行最终的统一处理赋值,发现外层接收一直都未生效。问题可以简化为成下面的小demo。 func returnError() error {var err errordefer func() {//err errors…

PMBOK® 第六版 管理项目知识

目录 读后感—PMBOK第六版 目录 在前面的文章中,输入环节都可以看见有事业环境因素、组织过程资产;工具与技术都有专家判断。都是说明知识的重要性。 虽然项目具有其独特的、唯一性,但项目相关的经验却能如同家族传承般,被持续地…