当前位置: 首页 > news >正文

Spring MVC 返回数据

目录

  • 1、什么是 SpringMVC
  • 2、返回数据
    • 2.1、返回 JSON 对象
    • 2.2、请求转发
    • 2.3、请求重定向
    • 2.4、自定义返回的内容

1、什么是 SpringMVC

1、Tomcat 和 Servlet 分别是什么?有什么关系?
Servlet 是 java 官方定义的 web 开发的标准规范;Tomcat 是 Servlet 容器(遵循 Servlet 规范来实现的 Web 服务器),可以统一管理 Servlet (整个生命周期)。
2、SpringMVC 和 Web 服务器,Servlet 的关系?
SpringMVC 是内置的定制过的 Web 服务器,而 Web 服务器遵循 Servlet 规范。总的来说,SpringMVC 基于 Servlet 标准,又进一步封装了,然后提供给我们更方便的使用方式。因此,我们开发的内容是基于 SpringMVC 定义的 Web 开发标准。

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

在这里插入图片描述

  • Model(模型)是应用程序中用于处理数据逻辑的部分,通常负责在数据库中存取数据。
  • View(视图)是应用程序中处理数据显示的部分,通常是依据模型数据创建的。
  • Controller(控制器)是应用程序中处理用户交互的部分。

2、返回数据

2.1、返回 JSON 对象

1.@ResponseBody 注解的作用是将 Controller 的方法返回的对象,通过适当的转换器转换为指定的格式,然后写入到 response 对象的 body 区,通常用来返回 JSON 数据或者是 XML 数据。即将 Java 对象转换为 JSON 格式的数据,然后直接写在 HTTP response 的 body 中。@ResponseBody 返回的值如果是字符会转换成 text/html,如果返回的是对象会转换成 application/json返回给前端。@ResponseBody 可以用来修饰方法或者是修饰类,修饰类表示类中的所有方法都会返回 html 或者 json。
2. 当 Controller 类上方法都返回 JSON 数据时,需要注解 @Controller 和 @ResponseBody,此时,可以使用 @RestController来代替这两个注解。

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

2.2、请求转发

不返回 JSON 数据,有转发和重定向网页两种方式,都不能使用 @ResponseBody 注解,且返回值只能是 String,表示资源路径。

在这里插入图片描述
在这里插入图片描述
抓包的结果为:
在这里插入图片描述

2.3、请求重定向

在这里插入图片描述
在这里插入图片描述
抓包的结果为:
在这里插入图片描述

转发和重定向的区别:

  1. 请求重定向将请求重新定位到资源,请求转发是服务器端转发。
  2. 请求重定向地址发生变化,请求转发地址不发生变化。
  3. 请求重定向不存在原来的外部资源不能访问,请求转发有可能造成原来的外部资源不能访问(如果资源和转发的页面不在同一目录下,就会导致外部资源不能访问)

2.4、自定义返回的内容

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

http://www.lryc.cn/news/546171.html

相关文章:

  • QT-信号与槽
  • 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点
  • 迷你世界脚本方块接口:Block
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)
  • Docker项目部署-部署前端
  • 【向量数据库Weaviate】与ChromaDB的差异、优劣
  • 2024华为OD机试真题-热点网站统计(C++)-E卷-100分
  • 【大模型】大模型分类
  • Redis 的几个热点知识
  • 【新手入门】SQL注入之getshell(木马)
  • 【pytest框架源码分析二】pluggy源码分析之add_hookspecs和register
  • 四、数据存储
  • 【原创】Ollama Test API For Linux/MacOS/Unix
  • LeetCode-Hot100-005盛最多水的容器
  • 电源测试系统有哪些可以利用AI工具的科技??
  • 【3-3】springcloud
  • Goby 漏洞安全通告| Ollama /api/tags 未授权访问漏洞(CNVD-2025-04094)
  • ‌Debian 包版本号比较规则详解
  • 009---基于Verilog HDL的单比特信号边沿检测
  • 2025全开源Java多语言跨境电商外贸商城/Tk/FB内嵌商城I商家入驻I批量下单I完美运行
  • iOS实现一个强大的本地状态记录容器
  • 【mysql】有索引和没有索引字段更新时锁的不同
  • 机器学习的三个基本要素
  • 神经机器翻译:联合学习对齐和翻译
  • [Web 安全] PHP 反序列化漏洞 —— PHP 魔术方法
  • 聆听PostgreSQL数据库的使用
  • 2025嵌入式软件开发工程师--音频方向
  • C#释放内存空间的方法
  • 《鸢尾花数学大系:从加减乘除到机器学习》开源资源
  • 如何将一台服务器的pip环境迁移到另一个机器?