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 日

相关推荐

  • WxPython跨平台开发框架之模块字段权限的管理

    在我的很多Winform开发项目中,统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(工具栏、按钮、菜单权限),另外还可以进行字段级别的字段权限控制,字段权限是我们在一些对权限要求比较严格的系统里面涉及到的,可以对部分用户隐藏一些敏感的信息,或者禁止不够权限的用户编辑它。本篇随笔介绍基于这一理念,实现在WxPython跨平台开发框架中的模块字段…

    2025 年 1 月 6 日
    9500
  • 在不同操作系统上安装 PostgreSQL

    title: 在不同操作系统上安装 PostgreSQLdate: 2024/12/26updated: 2024/12/26author: cmdragon excerpt:PostgreSQL 是当今最受欢迎的开源关系数据库管理系统之一,由于其强大的功能和灵活性,广泛应用于不同的行业和应用场景。在开始使用 PostgreSQL 之前,用户需要了解如何在不…

    2024 年 12 月 30 日
    11300
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理

    目录 一、ThreadLocal基本知识回顾分析 (一)ThreadLocal原理 (二)既然ThreadLocalMap的key是弱引用,GC之后key是否为null? (三)ThreadLocal中的内存泄漏问题及JDK处理方法 (四)部分核心源码回顾 ThreadLocal.set()方法源码详解 ThreadLocalMap.get()方法详解 Th…

    2025 年 1 月 10 日
    8600
  • IDEA中如何查看最近打开过的文件?

    前言 大家好,我是小徐啊。我们在Java开发的时候,最重要的是选择一款合适的开发工具,像eclipse,IDEA等。其中,IDEA是我平时在开发的时候,用的那一款工具,它功能十分强大。今天,我要来介绍下它的一个功能,就是查看下最近打开过的文件。 IDEA如何查看最近打开的文件 首先,我们需要先打开IDEA,然后按下键盘快捷键,Ctrl+E。 然后,就会弹出一…

    2025 年 1 月 16 日
    13500
  • Discord技术架构调研(IM即时通讯技术架构分析)

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

    2025 年 1 月 14 日
    8000

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信