JavaEE进阶(5/28)SpringMVC

news2025/1/2 3:19:58

目录

1.什么是SpringMVC?

2.学习SpringMVC学习了什么?

3.SpringMVC核心1

4.SpringBoot传递参数

5.SpringBoot传递对象参数

6.SpringBoot传递表单

7.SpringBoot后端参数重命名

8.SpringBoot后端用来接收json对象


1.什么是SpringMVC?

1.它构建servlet之上的(servlet学的就是API)

2.他是一个web框架(具有Http能力)(ajax底层是Http)

3.来自于Spring中的webMVC模块

MVC是什么:Model View Controller  模型 视图 控制器

Model负责在数据库中存取数据

View:视图是用来展现信息的(用户看的)

Controlller:处理Controller的信息给用户(为了让用户看懂,Controller的信息用户看不懂)

SpringMVC和MVC的关系就像DI基于Ioc的关系一样,一个是具体的技术,一个是软件工程设计思想。

总结来说,SpringMVC是一个实现了MVC设计思想,并继承了servlet的API的Web框架

为什么学习SpirngMVC?

是为了更好的使用SpringBoot 因为SpringBoot里面的Spring Web内置了SpringMVC

2.学习SpringMVC学习了什么?

1.连接浏览器 和Java程序

2.获取用户参数的功能

3.输出数据返回浏览器

3.SpringMVC核心1

 上图解释

@RequestMapping  使用这个注解来实现类和方法路由的注册,实现浏览器连接Java程序

其实就是网页的路径,类可以不加,但是方法一定要加

@Controller   前后端交互    加了这个Spring启动的时候把这个类注册到Spring中

@ResponseBody  该注解表示方法的返回值将直接作为响应体返回给客户端,

如果不加@ResponseBody 方法返回的hi会被视为逻辑视图名(View),会被解析为对应的视图模块进行渲染,而不是直接返回客户端。

不写@ResponBody默认返回的View 这是SpringMVC的历史遗留原因

总结起来,加入这三个注解是为了实现将方法的返回值直接作为响应体返回给客户端,并将请求路径映射到对应的方法上,使得浏览器能够访问到对应的方法并获取响应结果。

符合注解@RestController 是Controller和ResponseBody的复合

get和post的区别

4.SpringBoot传递参数

 第二个表示当前接口只支持post接口的访问url

从url获取参数(一切都是对于后端而言的 )

Java代码中的name要和url或者body中的key完全相同

传参注意事项:在SpringBoot(MVC)传参中一定要传包装类型,不能传入基本类型

如果传入了基本类型的话,如果url不设置参数的话那么就会报500错误

5.SpringBoot传递对象参数

 

 GetMapping是从服务器拿东西(查询字符串是直接写入到服务器再拿到前端的)

6.SpringBoot传递表单

前端给后端传入参数,两种方式

1.from表单  传入后端和get一样  ,后端去取的话使用对象去取

2.ajax

不管前端是表单还是ajax,后端都是用GetMapping和SetMapping来传入前端和接受的前端的数据的

7.SpringBoot后端参数重命名

当前端小哥给你个不标准的参数命名的时候,你要改成标准的

 @RequestParam

实际就是

前端是按照t1 t2传给我的

但是我接受的时候把t1 t2 重命名 ,我用我重命名的beginTime 和endTime,前端用他自己的t1 t2 我们互不影响 

注意用参数重命名的注解@RequestParam的时候默认是买一送一的,它自动给你设置了必须传入参数,否则无法获取数据

 如果不想设置必须传入参数的话,把required 设为false

8.SpringBoot后端用来接收json对象

首先明白接受java对象的注解@GetMapping方法不能接受json对象

为什么要用json传输呢?

当第三方之间进行信息交互的时候一般约定用json交流

                如何接受json对象?

注解@RequestBody,从请求的body中去拿数据

  

 json是存放在body中的 ,get大部分没有body所以用postMapping最好

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

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

相关文章

如何在手机和平板中浏览三维实景模型?

对于数据量庞大的三维实景模型,想要在手机和平板中进行在线浏览并实现实时交互,一般平台很难实现这些功能。 四维轻云是一款操作简单、支持在线协作、在线展示及在线分享的三维实景模型在线浏览平台。在四维轻云平台中,用户可以创建项目&…

人生苦短,我用Python:如何入门Python的世界

人生苦短,我用Python:如何入门Python的世界 Python是一门非常简洁、易读、高效的编程语言,适合初学者入门。自从1991年问世以来,Python已经在全球范围内成为了众多工程师、科研人员、数据分析师等人群的首选编程语言。本文将详细…

数据库DBMS并发控制

pgsql(PostgreSQL)常用命令行操作_pgsql常用命令_石头wang的博客-CSDN博客 事务的操作和事务的性质 操作演示 三种典型数据不一致现象: 串行调度和可串行调度 串行调度 顾名思义 就是可以进行调度的意思 可串行调度 就是 一种和串行调度等价的并行调…

Quest 3初体验,或是苹果MR最大竞争对手

随着苹果MR临近,我们从彭博Mark Gurman了解到更多消息。昨日,Mark Gurman发布了Quest 3上手体验文章,并认为Quest 3可能是苹果MR头显最大的竞争对手。 1,Meta是XR头显领导者 尽管WWDC 23苹果MR将会成为最大的主角,但…

Android音视频开发2:So库适配总结

名词解析 Android NDK 是在SDK前⾯⼜加上了原⽣⼆字,即Native Development Kit,因此⼜被Google称为 NDK。C/C编写代码。so 为共享库,是shared object。 前⾔ ⽇常开发我们经常会使⽤到第三库,涉及到底层的语⾳,视频等都需要…

【虚拟机】VMware虚拟机安装Windows 10系统 详细教程

大家好,我是雷工! 由于购买的电脑自带系统为windows11家庭版,而有些软件无法在家庭版中安装,所以考虑用虚拟机再装个Windows10专业版系统。 前一段时间在Windows11 家庭版上安装的KingSCADA软件运行时总反应很慢,准备…

【MLC】 TensorIR 练习

文章目录 前言TensorIR 练习TensorIR: 张量程序抽象案例研究练习 1:广播加法练习 2:二维卷积练习 3:变换批量矩阵乘法程序 总结 前言 这两天重新看了一下天奇的mlc课程文档,把里边儿的TensorIR 练习写了一下,顺便推广…

ubuntu循环登录,无法进入桌面

现象 在用户登录界面输入用户名和密码后无法正常登录,并且一直循环提示输入登录信息。 问题定位 1. 键入:ctrlaltF1, 进入命令行登录界面 2. 输入当前的用户名和密码(也可以是root,操作需谨慎) 3.…

【SonarQube】下载、安装、配置、使用介绍

文章目录 SonarQube安装运行使用root启动问题处理修改文件数限制JDK版本问题创建Project创建token扫描代码数据持久化在线文档 SonarQube安装 官网下载地址: http://www.sonarqube.org/downloads/9.9.1.69595下载地址: https://binaries.sonarsource.com/Distribution/sonarqu…

chatgpt赋能python:Python下载之后怎么用:详细教程

Python下载之后怎么用:详细教程 Python作为一种著名的编程语言,已经成为众多程序员和开发者的首选。因此,如果您也想开始使用 Python 来进行编程,那么下一步应该是下载和安装Python。但是,下载完 Python 之后&#xf…

范式迁移 | Squids DBMotion支持Oracle迁移到GaussDB

Squids DBMotion 2304发版成功,再添重量级数据同步功能——支持Oracle迁移到GaussDB。 GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失&…

企业使用WordPress网站的6个理由

WordPress 为超过三分之一的网络和超过 38%的顶级 10K 网站提供支持。它最初是一个博客平台,现在是世界上使用最广泛的内容管理系统,对于希望在未来几年扩大规模的网站所有者来说,是一个明智的选择。 除了使用开源软件的好处之外&#xff0c…

从古板到智能:机器程序的华丽转身

因为 ChatGPT 的热潮,目前在恶补人工智能方面的知识。在某一篇文章的评论中,我看到了一个问题:“为什么 ChatGPT 能这么厉害,基本什么问题都能回答,如何做到的” 这也是我想问的问题,在初学编程的时候&…

Packet Tracer - 配置区域策略防火墙

Packet Tracer - 配置区域策略防火墙 拓扑 地址表 设备 接口 IP地址 子网掩码 默认网关 交换机端口 R1 F0/1 192.168.1.1 255.255.255.0 N/A S1 F0/2 S0/3/0 (DCE) 10.1.1.1 255.255.255.252 N/A N/A R2 S0/3/0 10.1.1.2 255.255.255.252 N/A N/A S0/3…

Unity 反射探针

反射射探针 是用来模拟反射周边物体的光照信息的一种解决方案让物体,受周围物体的光照或材质进行影响的一种模拟光照效果。如下图效果: 反射探针属性截图 反射探针类型 Baked 烘焙模式,此种模式需要反射的物体是静态的不能移动,但…

如何高效提问,准确搜索,开发小白不会百度?

How-To-Ask-Question ?其实我也是小白,这个问题没有太多发言权。目前来说,我暂时也没有找到一个通法,但整体上来说也不是无迹可寻(是有一定技巧和经验在里面的)。我之前也经常遇到了一些这方面问题&#x…

1.5. 流程控制(分支与循环)

流程控制是编程中的基本概念,用于控制程序的执行顺序。在 Java 中,流程控制主要分为两类:分支结构(Branching)和循环结构(Looping)。 1.5.1. 分支结构 分支结构是根据条件判断来选择执行不同的…

【*1900 DP+Tree】CF9D

Problem - 9D - Codeforces 题意: 思路: 计数问题,考虑计数DP 因为它是二叉树,比较特殊,所以可以考虑一下线性DP 按照题目最后要算的答案,状态可以这样设计: 设dp[i][j]表示树高为i&#x…

Linux设备驱动程序(二)——建立和运行模块

文章目录 前言一、设置测试系统二、Hello World 模块1、代码详解2、执行效果 三、内核模块相比于应用程序1、用户空间和内核空间2、内核的并发3、当前进程4、几个别的细节 四、编译和加载1、编译模块2、加载和卸载模块3、版本依赖 五、内核符号表六、预备知识七、初始化和关停1…

旗鱼优化(SFO)算法(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…