当前位置: 首页 > 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.mrgr.cn/news/93017.html

相关文章:

  • CentOS 7.9 安装 ClickHouse 文档
  • python学习第三天
  • 【Transformer优化】什么是稀疏注意力?
  • ubuntu离线安装nvidia-container-runtime
  • NUDT Paper LaTeX 模板使用
  • Solana 核心概念全解析:账户、交易、合约与租约,高流量区块链技术揭秘!
  • GitLab常用操作
  • 第二节:基于Winform框架的串口助手小项目---创建界面《C#编程》
  • HarmonyOS NEXT开发进阶(十一):应用层架构介绍
  • unity pico开发二:连接头盔,配置手柄按键事件
  • 【和春笋一起学C++】逻辑操作符和条件操作符
  • MySQL快速搭建主从复制
  • 【C++指南】一文总结C++类和对象【中】
  • Nginx1.19.2不适配OPENSSL3.0问题
  • NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句
  • 小白向:如何使用dify官方市场“ECharts图表生成”工具插件——dify入门案例
  • 【动手学强化学习】番外2-多智能体强化学习算法框架之“MARLlib”学习
  • PPT 小黑第38套
  • Spring(二)容器
  • Unity中动态切换光照贴图LightProbe的方法