SpringMVC请求和响应方式

news/2024/9/23 12:28:42/

1. SpringMVC的数据响应

1.1 SpringMVC的数据响应方式

  1. 页面跳转:
  • 直接返回字符串
  • 通过ModelAndView对象返回
  1. 回写数据:
  • 直接返回字符串
  • 返回对象或集合

1.2 页面跳转 - 直接返回字符串

在这里插入图片描述

1.3 页面跳转 - 通过ModelAndView对象返回在这里插入图片描述

1.4 页面跳转 - 传递参数

    1. 通过SpringMVC框架注入的request对象setAttribute()方法设置
      在这里插入图片描述
    1. 通过ModelAndView的addObject()方法设置
      在这里插入图片描述

1.5 回写数据 - 直接返回字符串

在这里插入图片描述
在这里插入图片描述

1.6 回写数据 - 返回对象或集合

    1. 在方法上使用 @ResponseBody 注解

在这里插入图片描述

    1. 使用mvc注解驱动
 <!--mvc的注解驱动-->
<mvc:annotation-driven/>

<mvc:annotation-driven/> 默认底层就会集成jackson进行对象或集合的json格式字符串的转换。

1.7 Java对象转换为json格式字符串

    1. 手动拼接json字符串返回
      在这里插入图片描述
    1. 使用json转换工具jackson进行转换
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

2. SpringMVC获取请求数据

SpringMVC可以接收如下类型的参数:

  • 基本类型参数
  • POJO类型参数
  • 数组类型参数
  • 集合类型参数

2.1 SpringMVC 获得基本类型参数

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。
在这里插入图片描述

2.2 SpringMVC获得POJO类型参数

Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配。
在这里插入图片描述

2.3 SpringMVC获得数组类型参数

Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配。
在这里插入图片描述

2.4 SpringMVC获得集合类型参数

    1. 获得集合参数时,要将集合参数包装到一个POJO中才可以。

在这里插入图片描述

    1. 当使用ajax提交时,可以指定 contentType 为json形式,在方法参数位置使用 @RequestBody可以直接接收集合数据。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/76969d77adbe41fcad53572243643864.png
在这里插入图片描述

3. @RequestParam注解

参数绑定:当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过 @RequestParam 注解显示的绑定。

在这里插入图片描述

属性参数:

  • value:与请求参数名称一致
  • required:此在指定的请求中参数是否必须包括,默认是true,提交时如果没有此参数则会报错
  • defaultValue:当没有指定请求参数时,则使用指定的默认值赋值

4. Restful风格的参数

Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。Restful风格的请求是使用 “url+请求方式” 表示一次请求目的。

HTTP 协议 里四个表示操作方式的动词如下:

  • GET : 用于获取资源
  • POST : 用于新建资源
  • PUT : 用于更新资源
  • DELETE : 用于删除资源

在这里插入图片描述

SpringMVC中可以使用占位符进行参数绑定。地址/user/1可以写成/user/{id},占位符{id}对应的就是1的值。在Controller层可以使用 @PathVariable 注解进行占位符的匹配获取工作。

在这里插入图片描述


http://www.ppmy.cn/news/1437200.html

相关文章

新媒体运营-----短视频运营-----PR视频剪辑----转场与过渡

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. 效果控件和图片过渡转场1.1 效果控件针对图片的操作1.2 通过效果控件过渡转场 2. 默认的视频转场过渡3. 转场插…

javascript使用setTimeout函数来实现仅执行最后一次操作

在JavaScript中&#xff0c;setTimeout函数用于在指定的毫秒数后执行一个函数或计算表达式。它的主要用途是允许开发者延迟执行某些代码&#xff0c;而不是立即执行。 当我们想要确保仅最后一次更新UI时&#xff0c;我们可以使用setTimeout来合并多次连续的更新请求。具体做法…

Mybatis 动态Sql标签使用总结

一、前言 常用的动态sql标签包括 if、choose(when、otherwise)、trim(where、set)、foreach。 二、标签介绍 2.1、if 标签 1、动态拼接查询条件 select DISTINCT ksid as id,ksdm as cd , ksmc as na ,id_org ,1 as fg_active,kspydm as py FROMV_CIS_RO_USERWHERE 11<…

qt QTreeWidget 学习

树形控件的节点可以有多层、多个子节点&#xff0c; 如果将子节点全部展开&#xff0c;那么每一行都是一个数据条目。QTreeWidgetItem 比较特殊&#xff0c;一个条目内部可以有多列数据信息&#xff0c;相当于表格控件一整行的表格单元集成为一个条目。 默认情况下&#xff0c;…

FastGPT编译前端界面,并将前端界面映射到Docker容器中

建议在linux系统下编译 1、克隆代码 git clone https://github.com/labring/FastGPT 2、进入FastGPT目录&#xff0c;执行 npm install 3、进入projects/app目录&#xff0c;执行 npm run dev 此时会自动下载依赖包&#xff0c;这里如果执行npm install的话&#xff0c;…

TablePlus for Mac/Win:开启高效数据开发新纪元

在当今数字化时代&#xff0c;数据的重要性日益凸显。无论是企业还是个人&#xff0c;都需要一款强大而实用的本地原生数据开发软件来提升工作效率。而 TablePlus for Mac/Win 正是这样一款卓越的工具&#xff0c;它为用户带来了全新的体验&#xff0c;让数据开发变得更加轻松、…

启动MySQL服务

在 Windows 系统上&#xff1a; 首先&#xff0c;找到 MySQL 安装目录&#xff0c;一般默认是在 C:\Program Files\MySQL 文件夹下。进入该目录下的 bin 文件夹。找到 mysqld.exe 文件&#xff0c;双击运行它。 在 Linux 系统&#xff08;以 CentOS 为例&#xff09;&#xff…

【漏洞复现】WebLogic XMLDecoder反序列化(CVE-2017-10271)

1、漏洞描述 CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务&#xff0c;其中使用了XMLDecoder来解析用户传入的XML数据&#xff0c;在解析的过程中出现反序列化漏洞&#xff0c;导致可执行任意命令。攻击者发送精心构造的xml数据甚至能…