SpringMVC 基础知识

学习目标

  1. 掌握基于 SpringMVC 获取请求参数与响应 json 数据操作
  2. 熟练应用基于 REST 风格的请求路径设置与参数传递
  3. 能够根据实际业务建立前后端开发通信协议并进行实现
  4. 基于 SSM 整合技术开发任意业务模块功能

1 SpringMVC 简介

1.1 概述

1.1.1 web程序开发流程

【执行过程】

web 程序通过浏览器访问页面,前端页面使用异步提交的方式发送请求到后端服务器;

后端服务器采用表现层、业务层、数据层的三层架构的形式进行开发,页面发送的请求由表现层接收,获取用户的请求参数后,将参数传递到业务层,再由业务层访问数据层,得到用户需要访问的数据后,将数据返回给表现层,表现层拿到数据,将数据转换成 json 格式发送给前端页面;

前端页面接收数据后解析数据,并组织成用户浏览的最终页面信息交给浏览器 

1.1.2 SpringMVC 概述 

一种基于 Java 实现 MVC 模型的轻量级 Web 框架,是表现层框架技术,用于进行表现层功能开发

1.2 入门案例

1.2.1 代码开发

1.2.2 注解介绍 

1.3 入门案例工作流程分析

1.4 Controller 加载控制

简化开发

1.5 PostMan 

网页调试与发送网页 HTTP 请求的插件,用于接口测试

【注】这类插件有很多,比如 YApi 等,可自行选择一个合适的工具

2 请求与响应

2.1 请求映射路径

为避免多个模块下的请求路径发生冲突,需要设置模块名作为请求路径前缀

2.2 请求参数

2.2.1 Get 请求

2.2.2 Post 请求

 2.2.3 五种参数类型传递

普通参数

【注】如果地址参数和形参变量名不相同,可以采用 @RequestParam 注解的方式 可以实现请求参数和形参的绑定

public String commonParam(@RequestParam("name") String userName,int age)

POJO 类型参数 

【注】请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数

嵌套 POJO 类型参数

【注】 请求参数名与形参对象属性名相同,按照对象层次结构关系接收嵌套POJO属性参数

数组类型参数

【注】请求参数名与形参对象属性名同且请求参数为多个,定义数组类型形参即可接收参数

集合类型参数

2.2.4 json 数据传递

 传递 json 对象

 传递 json 数组

2.3 日期类型参数传递

内部转换工作过程:利用 Converter 接口

2.4 响应 json 数据

内部转换工作过程:HttpMessageConverter 接口

【注】和上述 Converter 接口功能一样,只是转换的东西不一样,这个是用来转换 http 的消息, 并不是一个类型转换到另一个类型

3 REST 风格

3.1 REST 简介

【注】REST 风格描述的是一种资源的访问形式, 根据 REST 风格对资源进行访问称为RESTful

【注】① 通过上述约定,通过路径和请求的方式就可以确认一个资源的访问行为。② 描述模块的名称通常使用复数,也就是加 s 的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts.....

3.2 RESTful 入门案例

3.3 REST 快速开发

问题描述:

当前程序仍然存在代码冗余

代码简化:

3.4 案例:基于 RESTful 页面数据交互

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hook+jsdom 解决cookie逆向

前言 记录下如何破cookie逆向 目标 目标网址:https://q.10jqka.com.cn/ 目标接口:http://q.10jqka.com.cn/index/index/board/all/field/zdf/order/desc/page/2/ajax/1/ 对抗:cookie反爬虫处理,关键字v,如图 解决步骤 1、JS中关键字查找 如上,我们找到了关键字 v,…

etoken是什么意思,有什么作用?

EToken是一种数字货币,它是由以太坊区块链平台发行的智能合约,旨在为以太坊生态系统提供一种安全、可靠、去中心化的交易媒介。EToken具有多种作用,下面将详细介绍。 一、EToken的定义和发行 EToken是由以太坊智能合约创建的数字货币&#xf…

交易宝订单系统使用心得

简介 交易宝是管理订单支付的软件系统,可对多个应用的支付业务进行统一管理和运营,为你节省时间和精力,让你专注于核心业务,实现更高的效率和利润。 特点:无需开发,开箱即用,统一管理支付订单…

【运动规划】191 自适应跟踪kinodynamicrrt的路径

分层法: two layer approach 自适应控制,跟随轨迹。运动规划:扩展自由空间(基于速度约束缩小自由空间)为控制部分留余量,确保安全。 控制设计: 考虑平移和旋转,速度环控制&#xff…

什么是多要素自动气象监测设备?

WX-CQ12 随着科技的发展,我们对天气的预测和监测能力也在不断提高。其中,多要素自动气象监测设备正成为一种革命性的工具,帮助我们更好地理解和预测天气变化。 一、什么是多要素自动气象监测设备? 多要素自动气象监测设备是一种…

查看sql语句执行计划并重建索引

晚上cpu报警显示当前cpu使用率达到90%以上,不到10%的空闲 先查询当前sql: #(ORACLE) SQL > set line 200 pages 1000 col event for a30 col program for a30 col username for a12 col sql_id for a15 col INST_ID for 9999 …

【数据结构初阶(4)】栈的基本操作实现

文章目录 Ⅰ 概念及结构1. 栈的概念2. 栈的操作 Ⅱ 基本操作实现1. 栈的定义2. 初始化栈3. 元素入栈4. 元素出栈5. 获取栈顶元素6. 获取栈中有效元素个数7. 判断栈空8. 销毁栈 Ⅰ 概念及结构 1. 栈的概念 栈:栈是一种特殊的线性表,其只允许在固定的一端…

SAP QA11/QA32质检放行时,如何处理产生记账更改通知单时

前提:启用SAP wms仓库管理 场景: 当做移动类型321质检放行的时候,有时候会产生记账更改通知单,这个时候怎么处理? 解决办法: 使用事务码LU04,查看未清的记账更改通知单,进入清单列表之后&…

【深度学习】卷积神经网络(CNN)的参数优化方法

著名: 本文是从 Michael Nielsen的电子书Neural Network and Deep Learning的深度学习那一章的卷积神经网络的参数优化方法的一些总结和摘录,并不是我自己的结论和做实验所得到的结果。我想Michael的实验结果更有说服力一些。本书在github上有中文翻译的…

蓝桥杯每日一题2023.11.23

题目描述 题目分析 本题使用递归模拟即可,将每一个大格子都可以拆分看成几个小格子,先将最开始的数字进行填入,使每一个对应小格子的值都为大格子对应的数,搜索找到符合要求的即可 (答案:50 33 30 41&am…

分布式篇---第二篇

系列文章目录 文章目录 系列文章目录前言一、你知道哪些分布式事务解决方案?二、什么是二阶段提交?三、什么是三阶段提交?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你…

第十七章:数据库操作

数据库基础 SQL语言 1、select 语句 select 语句用于从数据中检索数据。语法如下: SELECT 搜选字段列表 FROM 数据表名 WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件) ORDER BY 字段名[ASC|DESC] 2、insert 语句 insert 语句用于向表中插入…

PTA-用天平找小球

三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。 输入格式: 输入在一行中给出3个正整数,顺序对应球A、B、C的重量。 输出格式: 在一行中输出唯一的那个不一样的球。 输入样例&#xff…

【8】Spring Boot 3 集成组件:安全组件 spring security【官网概念篇】

目录 【8】Spring Boot 3 集成组件:安全组件 spring securitySpring Security 简介先决条件引入依赖身份验证密码存储密码存储历史DelegatingPasswordEncoder密码存储格式密码加解密类自定义密码存储 体系结构 ArchitectureServlet 过滤器DelegatingFilterProxyFilt…

基于element-plus定义表单配置化扩展表单按钮

文章目录 前言一、新增btn.vue组件二、使用总结如有启发&#xff0c;可点赞收藏哟~ 前言 在后台管理系统一般都存在列表查询&#xff0c;且可输入数据进行查询 基于element-plus定义表单配置化 新增按钮配置化 一、新增btn.vue组件 <template><template v-for&qu…

java协程操作mysql数据库

我的项目&#xff1a; nanshaws/nettyWeb: 复习一下netty&#xff0c;并打算做一个web项目出来 (github.com) 最近在项目中分别添加了虚拟线程操作mysql数据库&#xff0c;和用协程操作mysql数据库 同理先跟我这个博客操作一下前面的&#xff1a;就单纯代码的时候进行修改&a…

2014年12月22日 Go生态洞察:Go语言中的代码生成

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Sui第七轮资助:八个项目共获得超过50万美元的资助

今日&#xff0c;Sui基金会宣布了本月获得资助的项目方&#xff0c;他们将获得超过50万美元的资助金&#xff0c;用于构建项目&#xff0c;推动Sui的采用和发展。要获得资助&#xff0c;项目必须提交提案&#xff0c;详细说明他们正在构建的内容、预算明细、关键里程碑、团队经…

Vue环境的搭建

1.Vue开发的两种方式 &#xff08;1&#xff09;核心包传统开发模式 基于html/css/js文件&#xff0c;直接引入和辛堡&#xff0c;开发Vue。 &#xff08;2&#xff09;工程化开发模式&#xff1a; 主要是基于构建工具&#xff08;例如,webpack&#xff09;的环境中开发Vue…

SpringBoot——感谢尚硅谷官方文档

SpringBoot——感谢尚硅谷官方文档 1 Spring与SpringBoot1、Spring能做什么1.1、Spring的能力1.2、Spring的生态1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计 2、为什么用SpringBoot2.1、SpringBoot优点2.2、SpringBoot缺点 3、时代背景3.1、微服务3.2、分布式分…