目录
- [1、什么是 SpringMVC](#1、什么是 SpringMVC)
- 2、返回数据
-
- [2.1、返回 JSON 对象](#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 中。
- 当 Controller 类上方法都返回 JSON 数据时,需要注解 @Controller 和 @ResponseBody,此时,可以使用 @RestController来代替这两个注解。
2.2、请求转发
不返回 JSON 数据,有转发和重定向网页两种方式,都不能使用 @ResponseBody 注解,且返回值只能是 String,表示资源路径。
抓包的结果为:
2.3、请求重定向
抓包的结果为:
转发和重定向的区别:
- 请求重定向将请求重新定位到资源,请求转发是服务器端转发。
- 请求重定向地址发生变化,请求转发地址不发生变化。
- 请求重定向不存在原来的外部资源不能访问,请求转发有可能造成原来的外部资源不能访问(如果资源和转发的页面不在同一目录下,就会导致外部资源不能访问)
2.4、自定义返回的内容