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 日

相关推荐

  • 数据结构(Java版)第二期:包装类和泛型

    目录 一、包装类 1.1. 基本类型和对应的包装类 1.2. 装箱和拆箱 1.3. 自动装箱和自动拆箱 二、泛型的概念 三、引出泛型 3.1. 语法规则 3.2. 泛型的优点 四、类型擦除 4.1. 擦除的机制 五、泛型的上界 5.1. 泛型的上界的定义 5.2. 语法规则 六、泛型方法 6.1. 定义语法 6.2. 交换方法的实例 七、通配符 包装类和泛型…

    2025 年 1 月 1 日
    51000
  • JavaSE 核心知识精要(万字长文详解,助你快速掌握!)

    目录一. 基础语法要点1. 数据类型概述2. 数据类型转换规则3. 运算符详解4. 循环结构解析5. 方法定义规范6. 数组使用指南二. 面向对象编程1. 类与对象关系2. 构造方法解析3. 方法重载机制4. this关键字应用5. static特性说明6. 代码块执行顺序7. 访问权限控制8. 三大特性剖析封装原理继承机制多态实现9. 方法重写规则10. …

    2025 年 5 月 15 日
    30400
  • JSON字符串反序列化 动态泛型

    需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。 方案一:将方法参数存成JSON字符串,然后JSON反序列化成对象,然后反射调用 目标方法时这样的: “` CommandResp sendXXX(BaseCommandApiDTO baseCommandApiDTO); “` 方式一:FastJson “` Class mainBod…

    未分类 2024 年 12 月 31 日
    49000
  • 什么是南北向流量和东西向流量?

    在现代云计算和微服务架构中,南北向流量与东西向流量是两种至关重要的网络流量模式。 南北向流量(North-South Traffic) 定义:南北向流量指的是穿越系统边界的流量,通常是从外部环境进入系统内部或从系统内部向外传输的数据流,例如用户通过浏览器或移动应用访问Web服务或API。 特点:这种流量模式涉及跨越网络边界的通信,如从外部网络进入内部网络,或…

    未分类 2024 年 12 月 24 日
    61200
  • [Java编程圣经《Effective Java》:从优秀到卓越的编码指南]

    《Effective Java》 提升Java代码质量的黄金法则 传奇作者的技术人生 业界公认的编程宝典 专属读者福利 提升Java代码质量的黄金法则 作为Java开发者必读的经典著作,《Effective Java》由资深技术专家Joshua Bloch倾力打造,为程序员提供了提升代码质量的完整方法论。本书以独特的条目式结构,系统性地阐述了Java语言的高…

    2025 年 5 月 19 日
    1.3K00

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信