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

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

文章目录

  • 前言
  • 一、什么是 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.mzph.cn/diannao/31242.shtml

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

相关文章

Python中栈的实现与应用

Python中栈的实现与应用 一、引言 栈(Stack)是一种重要的数据结构,它遵循后进先出(LIFO,Last In First Out)的原则。栈的基本操作包括入栈(push)和出栈(pop&#xff09…

容器基本概念_从虚拟化技术_到容器化技术_开通青云服务器_并远程连接_容器安装---分布式云原生部署架构搭建007

这一部分,属于以前都会用到的,会快速过一遍,对于关键技术问题会加以说明 https://www.yuque.com/leifengyang/oncloud文档地址在这里,可以看,有些命令可以复制使用 可以看到容器的出现就是 目的就是,让你做的所有的软件,都可以一键部署启动 打包就是docker build 然后: 对于…

关于后端幂等性问题分析与总结

后端幂等性(Idempotency)是指对系统执行一次操作或多次执行相同的操作,其结果始终如一。在分布式系统和API设计中,这是一个关键概念,因为它能保证用户无论请求被路由到哪个节点,多次执行相同的请求都不会导…

陈晓婚前婚后大变样

陈晓婚前婚后大变样?陈妍希揭秘甜蜜与现实的碰撞在娱乐圈的星光璀璨中,有一对夫妻总是津津乐道,那就是陈晓和陈妍希。他们的爱情故事,从荧幕到现实,一直备受关注。然而,近日陈妍希在节目中透露,…

22、架构-资源与调度

1、资源与调度 调度是容器编排系统最核心的功能之一,“编排”一词本身便包 含“调度”的含义。调度是指为新创建的Pod找到一个最恰当的宿主机 节点来运行它,这个过程成功与否、结果恰当与否,关键取决于容器 编排系统是如何管理与分配集群节点…

Hadoop 面试题(一)

1. 简述Hadoop核心组件 ? Hadoop是一个开源的分布式计算平台,其核心组件主要包括以下几个方面: HDFS (Hadoop Distributed File System): 一个分布式文件系统,用于在廉价的硬件上存储和管理大量数据。 MapReduce&…

Elasticsearch**Elasticsearch自定义插件开发入门

Elasticsearch作为一个强大的搜索引擎和数据分析工具,其强大的扩展性是其受欢迎的重要原因之一。自定义插件开发入门** Elasticsearch作为一个强大的搜索引擎和数据分析工具,其强大的扩展性是其受欢迎的重要原因之一。通过自定义插件,用户可…

QT设计模式:备忘录模式

备忘录模式(Memento Pattern)是一种行为型设计模式,主要用于保存一个对象当前的状态,并在需要时恢复该状态。它常应用于以下场景: 撤销操作:如文本编辑器撤销、软件开发中的版本控制等,用户可以…

差分总结(一维+二维)

差分&#xff0c;可以视作前缀和的逆运算。 前缀和用于去求一个区间段的和 差分用于改变一个区间的值&#xff08;比如说某个区间都加上或者减去一个数&#xff09; P2367 语文成绩 #include<bits/stdc.h> using namespace std; #define int long long int n,p; int a…

RabbitMQ 学习笔记

RabbitMQ学习笔记 一些概念 Broker &#xff1a;RabbitMQ服务。 virtual host&#xff1a; 其实就是分组。 Connection&#xff1a;连接&#xff0c;生产者消费者与Broker之间的TCP连接。 Channel&#xff1a;网络信道&#xff0c;轻量级的Connection&#xff0c;使用Chann…

2024广东省职业技能大赛云计算赛项实战——Minio服务搭建

Minio服务搭建 前言 这道题是比赛时考到的&#xff0c;没找到具体题目&#xff0c;但在公布的样题中找到了&#xff0c;虽然很短~ 使用提供的 OpenStack 云平台&#xff0c;申请一台云主机&#xff0c;使用提供的软件包安装部署 MINIO 服务并使用 systemctl 管理 Minio是一个…

HTML静态网页成品作业(HTML+CSS)——手机电子商城网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

Vue 封装组件之Input框

封装Input组件:MyInput.vue <template><div class"base-input-wraper"><el-inputv-bind"$attrs"v-on"$listeners"class"e-input":style"inputStyle":value"value":size"size"input&quo…

深入解析微软Edge浏览器:探索其功能与应用

微软Edge浏览器是微软公司推出的一款现代化网页浏览器,旨在为用户提供快速、安全和高效的上网体验。本文将全面解析微软Edge浏览器,从其历史背景、核心功能、性能表现、安全特性到实际应用场景,带领读者深入了解这款浏览器的优势和使用技巧。 一、Edge浏览器的历史背景 1.…

python API自动化(Pytest+Excel+Allure完整框架集成+yaml入门+大量响应报文处理及加解密、签名处理)

1.pytest数据参数化 假设你需要测试一个登录功能&#xff0c;输入用户名和密码后验证登录结果。可以使用参数化实现多组输入数据的测试: 测试正确的用户名和密码登录成功 测试正确的用户名和错误的密码登录失败 测试错误的用户名和正确的密码登录失败 测试错误的用户名和密码登…

转换普通文件为Spring中的MultipartFile类型:处理不同文件格式

在Web开发中&#xff0c;处理文件上传是一个常见的需求。有时&#xff0c;我们需要将普通的文件对象&#xff08;如.txt或.xlsx文件&#xff09;转换为Spring框架中的MultipartFile类型&#xff0c;以便在Controller中处理文件上传和处理。本文将介绍如何在Java中进行这种转换&…

2024广东省职业技能大赛云计算赛项实战——chkrootkit安装与使用

chkrootkit安装与使用 前言 在今年比赛中有考到这样一道题&#xff0c;也是在公布的样卷中找到了它&#xff0c;今天就做做它并讲解一下&#xff1a; 公有云安全&#xff1a;入侵检测系统 使用提供的 makechk.tar.gz 包安装 chkrootkit 入侵检测工具&#xff0c;安装完毕后使…

音乐界的颠覆与挑战分析

最近的一个月&#xff0c;音乐界掀起了一场科技革命。一系列音乐大模型轮番上线&#xff0c;将素人生产音乐的门槛降到了最低。这一系列科技产品&#xff0c;不仅引发了大众对音乐产业未来发展的热烈讨论&#xff0c;也带来了新的挑战和问题。  一方面&#xff0c;这些AI音乐…

定时器-前端使用定时器3s轮询状态接口,2min为接口超时

背景 众所周知&#xff0c;后端是处理不了复杂的任务的&#xff0c;所以经过人家的技术讨论之后&#xff0c;把业务放在前端来实现。记录一下这次的离大谱需求吧。 如图所示&#xff0c;这个页面有5个列表&#xff0c;默认加载计划列表。但是由于后端的种种原因&#xff0c;这…

PHP XML: 解析、生成与操作指南

PHP XML: 解析、生成与操作指南 PHP,作为一种流行的服务器端脚本语言,提供了强大的功能来处理XML(可扩展标记语言)数据。XML是一种用于存储和传输数据的标记语言,它通过标签来标识数据。在Web开发中,XML常用于数据交换、配置文件和结构化文档。本文将详细介绍如何使用PH…