Java之Spring MVC篇三

![](https://pic.it1024doc.com/csdn/202412/1a8934ea1b097949f559a12ad79fd34c.gif)​​​​​​​

**目录**

[响应](#响应)

[返回静态页面](#返回静态页面)

[@RestController 和 @Controller的区别和联系](#@RestController-和-@Controller的区别和联系)

[返回数据@ResponseBody](#返回数据@ResponseBody)

[关于@ResponseBody](#关于@ResponseBody)

[返回HTML代码片段](#返回HTML代码片段)

[返回JSON](#返回JSON)

[设置状态码](#设置状态码)

[设置Header](#设置Header)

[设置Content-Type](#设置Content-Type)

[没设置Content-Type之前](#没设置Content-Type之前)

[设置Content-Type之后](#设置Content-Type之后)

* * *

#### 响应

##### 返回静态页面

在`resources/static`路径下创建一个HTML文件:

```html



 
 Index页面


 Hello, Spring MVC, 我是Index页面。


处理并返回index.html的代码:

@RestController
public class ResponseController {
    @RequestMapping("/index")
    public String index() {
        return "/index.html";
    }
}

响应结果:

Java之Spring MVC篇三

却发现页面未正确返回,HTTP响应把"/index.html"当作了HTTP响应正文的数据。那么,Spring MVC如何识别出index.html是一个静态页面,并进行返回呢?我们需要将@RestController改为@Controller

修改后的代码:

@Controller
public class ResponseController {
    @RequestMapping("/index")
    public String index() {
        return "/index.html";
    }
}

响应结果:

Java之Spring MVC篇三

@RestController 和 @Controller的区别和联系

Java之Spring MVC篇三

@RestController = @ResponseBody + @Controller

联系:

  1. 组合关系:@RestController可以被视为@Controller@ResponseBody的组合注解。这意味着,当你在类上使用@RestController注解时,它实际上同时应用了@Controller@ResponseBody的效果。
  2. 用途相似:两者都用于处理HTTP请求,但它们处理请求后返回的内容类型不同。

区别:

  1. 返回内容类型:
  2. @Controller:用于处理HTTP请求,并将处理结果返回给客户端。控制器类中的方法通常通过@RequestMapping或其衍生注解来映射特定的URL请求路径和HTTP方法。返回的结果可以是一个视图名称,框架会根据视图解析器将其解析为具体的视图页面(如HTML页面)。
  3. @RestController:专门用于构建RESTful API。与@Controller不同的是,@RestController注解的类中的每个方法都默认返回JSON、XML或其他数据类型,而不是视图。在Spring MVC中,使用@RestController相当于在每个方法上都添加了@ResponseBody注解,用于直接返回数据对象或集合,而不是视图。
  4. 应用场景:
  5. @Controller:通常用于传统的Web应用开发,负责处理HTTP请求,并返回视图页面。它适用于需要渲染视图页面的场景,如动态网站开发。
  6. @RestController:则专门用于构建RESTful API,处理HTTP请求,并直接返回数据对象或集合,而不是视图。它适用于构建微服务、移动应用后端服务等需要直接提供数据接口的场景。
    默认行为:
  7. 使用@Controller注解的类,其方法默认返回的是视图名称,需要配合视图解析器来渲染视图。
  8. 使用@RestController注解的类,其方法默认返回的是JSON、XML等数据格式,Spring MVC会自动将数据对象序列化为相应的格式,并设置正确的HTTP响应头。
返回数据@ResponseBody
@ResponseBody
@RequestMapping("/indexData")
public String indexData() {
    return "返回数据";
}

Java之Spring MVC篇三

关于

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4494.html

(0)
LomuLomu
上一篇 2024 年 12 月 27 日 下午3:38
下一篇 2024 年 12 月 27 日

相关推荐

  • python SQLAlchemy ORM——从零开始学习 04 如何过滤(筛选)数据库中的数据

    04 如何过滤(筛选)数据库中的数据 从数据库中获筛选数据主要应用以下几个接口:filter、filter_by、以及 where。前两个在 02已经展开说过,先展开说where接口 前情提要:依赖03提及的model【本质上就是数据库的链接,有可忽视】 当前的数据库表内容如下,仅作例子,不相同根据自身数据库操作即可: 4-1 通过where进行筛选 同时筛…

    2025 年 1 月 14 日
    45300
  • Spring Boot实战:高效实现Excel导出与邮件异步推送方案

    基于Spring Boot框架的Excel数据导出与邮件自动发送技术实践一、项目背景在开发跑团管理系统过程中,我们遇到了一个典型的数据分发需求:需要将用户查询的团队信息和运动数据自动导出为Excel格式,并通过邮件系统直接推送给用户,避免手动下载的繁琐操作。技术挑战主要包括:- 数据导出与邮件发送耗时过长,严重影响接口响应速度- QQ邮箱服务对发件人身份验证…

    2025 年 5 月 11 日
    48200
  • java 8的下载安装

    java 8的下载安装 一、下载 官网下载地址:链接: https://www.oracle.com/java/technologies/downloads/#java8-windows 一般选择64位的 二、安装 下载完成双击安装即可,点击下一步 更改安装路径后点击下一步 出现该弹窗时直接×调,不需要单独安装jre,jdk已经自带jre了。 点击关闭完成安…

    2025 年 1 月 14 日
    60300
  • 数据结构与算法–顺序表(Java)

    什么是顺序表? 顺序表 是一种线性表 的数据结构。 顺序表通过一组连续地址 的存储单元依次存储 线性表中的数据元素。 顺序表的主要特点: 逻辑上相邻的元素在物理位置上也相邻。 可以随机访问表中的任意元素,通过元素的位置序号可以在 O(1) 的时间复杂度内直接获取对应元素。 插入和删除操作的效率相对较低。例如,在顺序表的中间位置插入一个元素,需要移动大量后续元…

    未分类 2024 年 12 月 28 日
    52700
  • 交易系统:订单模型设计详解

    大家好,我是汤师爷~ 订单模型作为整个交易系统的核心,支撑着所有交易环节。 订单域核心概念模型 如图所示,为订单核心概念模型。 1、订单 在实际交易业务处理中,订单会根据不同的业务规则(如店铺、收货地址、配送方式等)拆分成多个子订单,形成一个父订单对应多个子订单的结构。这种拆分机制便于后续的订单履约和商家结算。订单包含以下核心字段: 租户ID:标识订单所属的…

    2024 年 12 月 31 日
    60900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信