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 日

相关推荐

  • Discord技术架构调研(IM即时通讯技术架构分析)

    一、目标 调研 discord 的整体架构,发掘可为所用的设计思想 二、调研背景 Discord作为目前比较火的一个在线聊天和语音通信平台且具有丰富的功能。另外其 “超级”群 概念号称可支持百万级群聊 以及 永久保留用户聊天记录。探究其相关技术架构与技术实现 三、产品介绍 目前广泛使用的在线聊天和语音通信平台。最初于2015年发布,旨在为游戏社区提供一个交流…

    2025 年 1 月 14 日
    39000
  • MySQL

    阿里云社区https://developer.aliyun.com/mirror 目录 一:数据库 1.1 二: MySQL数据库基本操作 2.1 创建数据库: 2.2 使用某个数据库: 2.3 删除数据库: 2.4 查询支持的存储引擎 2.5 创建表: 2.6 查看表结构: 2.7 查看表结构详细信息: 2.8 删除表: 三:表的操作 3.1 修改表名字:…

    未分类 2025 年 1 月 11 日
    35100
  • 深入解析ThreadLocal机制及其在Java多线程环境中的上下文管理实践

    目录导航第一部分:ThreadLocal核心概念解析(1)ThreadLocal工作机制剖析(2)弱引用key在GC后的状态探讨(3)内存泄漏隐患与官方解决方案(4)关键源代码解读set()方法实现原理get()方法执行流程remove()方法运作机制(5)实际应用示例第二部分:构建基于ThreadLocal的上下文控制器(1)ContextManager类…

    未分类 2025 年 5 月 13 日
    21600
  • 【前端】javaScript

    目录 一、JavaScript概述 1.1 引入方式 二、基础语法 2.1 变量 2.2 数据类型 2.3 运算符 2.4 对象 2.4.1 数组 2.4.2 函数 2.4.3 对象 三、jQuery 3.1 引入依赖 3.2 jQuery语法 3.3 jQuery选择器 3.4 jQuery事件 3.5 操作元素 3.6 常用方法 一、JavaScript…

    2024 年 12 月 28 日
    44700
  • Java技术前沿——大数据机器学习在金融衍生品风险建模中的创新实践(244)

    🌟亲爱的技术探索者们,诚挚欢迎来到【云端科技驿站】!在这个数字化浪潮奔涌的时代,我们共同搭建了一个融合创新与实用的技术交流平台。这里不仅有前沿的技术解析,更期待您分享独到见解,让我们携手在科技海洋中扬帆远航!🌟全网平台(微信公众号/CSDN/抖音/华为/支付宝/微博):云端科技一、加入【技术精英联盟】快速通道1:【云端科技精英社群(2024新版)】快速通道2…

    2025 年 5 月 19 日
    24000

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信