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

Spring MVC 程序开发(1)

目录

  • 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/545760.html

相关文章:

  • PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】
  • Linux服务升级:Almalinux 升级 DeepSeek-R1
  • Linux操作系统5- 补充知识(可重入函数,volatile关键字,SIGCHLD信号)
  • ctfshow刷题笔记—栈溢出—pwn61~pwn64
  • java23种设计模式-责任链模式
  • 新一代跨境电商ERP系统:从订单到发货的全流程自动化管理
  • 苹果廉价机型 iPhone 16e 影像系统深度解析
  • hive 面试题
  • VScode在windows10上使用clang-format
  • AWS API Gateway灰度验证实现
  • 【每日八股】MySQL篇(三):索引(上)
  • 在Pycharm中将ui文件修改为py文件
  • 看视频学习方法总结
  • Matlab 大量接单
  • 《深度剖析:生成对抗网络中生成器与判别器的高效协作之道》
  • Android6到Android15版本新增的功能和api
  • 【现代Web布局与动画技术:卡片组件实战分享】
  • 计算机网络之传输层(传输层提供的服务)
  • FPGA开发,使用Deepseek V3还是R1(1):应用场景
  • 哈希表和STL —— unorderde_set/unordered_map【复习笔记】
  • 计算机毕业设计SpringBoot+Vue.js体育馆使用预约平台(源码+文档+PPT+讲解)
  • 42 session反序列化漏洞
  • 【Jenkins】个人向-Jenkinsfile如何写
  • staruml绘制时序图和用例图
  • 问题修复-后端返给前端的时间展示错误
  • Rust配置开发环境+服务器实战
  • 使用DeepSeek+KIMI生成高质量PPT
  • 虚拟机如何设置ip
  • 蓝桥杯 路径之谜
  • Git操作指南:分支合并、回退及其他重要操作