跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Javajava

Spring MVC 快速入门:响应处理与报文格式设置

Spring MVC 响应处理涉及状态码设置与报文格式配置。通过 HttpServletResponse 可设定 HTTP 状态码如 400,利用 produces 属性指定返回内容类型。掌握这些基础响应控制是构建 Web 应用的关键步骤,有助于开发者更精准地管理前后端交互细节。

战神发布于 2026/3/23更新于 2026/4/304 浏览
Spring MVC 快速入门:响应处理与报文格式设置

Spring MVC 快速入门:响应处理与报文格式设置

在 Spring MVC 中,控制器不仅负责接收请求,还需要精准地返回响应。除了基本的业务逻辑处理,开发者往往需要控制 HTTP 状态码和响应内容的格式,这对于前后端交互的稳定性至关重要。

1. 设置响应状态码

默认情况下,Spring MVC 会根据业务结果自动返回 200 OK。但在某些场景下(如参数校验失败),我们需要显式设置其他状态码,例如 400 Bad Request。

import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@RequestMapping("/response")
@Controller
public class ResponseController {
    
    /**
     * 设置状态码,利用 HttpServletResponse 来设置
     * @param response
     * @return
     */
    @RequestMapping("/setStatus")
    @ResponseBody
    public Student setStatus(HttpServletResponse response) {
        Student student = new Student();
        student.setName("dalao");
        student.setAge(18);
        student.setGender("nv");
        // 设置响应状态码为 400
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        return student;
    }
}

注意:类级别使用 @RequestMapping("/response") 和 @Controller,方法级别添加 @RequestMapping("/setStatus") 和 @ResponseBody。通过 HttpServletResponse 对象调用 setStatus() 方法即可修改状态码。

关于常用的状态码常量,可以参考 HttpServletResponse 源码中的定义,例如 SC_BAD_REQUEST 对应 400,SC_OK 对应 200 等。根据实际业务需求选择合适的枚举值即可。

2. 设置报文格式

除了状态码,响应内容的类型(Content-Type)同样重要。Spring MVC 允许通过 produces 属性直接指定返回数据的媒体类型,这样前端就能正确解析 JSON、XML 或纯文本。

import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@RequestMapping("/response")
@Controller
public class ResponseController {

    /**
     * 设置报文格式
     */
    @RequestMapping(value = "/setContentType", produces = "application/json")
    @ResponseBody
    public String setContentType(HttpServletResponse response) {
        return "{\"status\": \"success\"}";
    }
}

在这个示例中,produces = "application/json" 确保了无论方法返回什么,HTTP 响应头中的 Content-Type 都会被设置为 JSON 格式。这种方式比手动设置 Header 更简洁,也更符合 RESTful 规范。

在实际开发中,建议优先使用注解配置,减少样板代码。如果确实需要动态调整 Header,再结合 HttpServletResponse 进行底层操作。

目录

  1. Spring MVC 快速入门:响应处理与报文格式设置
  2. 1. 设置响应状态码
  3. 2. 设置报文格式
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 前端加密:常用加密方式及使用
  • HarmonyOS 分布式软总线原理剖析:从理论到实践
  • 文心一言开源版部署与多维度测评实践
  • 扩散模型加速:Flow Matching 到 Rectified Flow 再到 Reflow
  • SWE-CI: 基于持续集成评估智能体代码维护能力
  • SpringBoot 整合 Flowable 快速实现工作流
  • 豆包 Seedream 4.0 多图融合能力测评:田园犬与三花猫多场景创作
  • 基于 Unity 2022 LTS 与 UXR 3.0 SDK 开发 Rokid AR 消消乐游戏
  • OpenClaw 浏览器控制方案:使用 Chrome Debug 模式保留登录状态
  • MCP Server 案例:利用 Excel 生成可视化 HTML 报告
  • Qwen3+Qwen Agent 智能体开发实战:接入 MCP 工具详解
  • llama.cpp 加载多模态 GGUF 模型
  • 数据结构:顺序表与链表对比及实现原理
  • 深入理解 SELinux:Linux 系统安全的核心门禁机制
  • 大模型实战:深入解析 LLaMA 核心算子 RMSNorm 开发
  • 时序数据库选型指南:Apache IoTDB 技术创新与优势解析
  • Llama.cpp 模型量化与 Ollama Docker 部署实战指南
  • OpenClaw 本地 AI 助手安装、配置与钉钉接入流程
  • OpenClaw v2026.3.1 版本更新:本地 AI 助手功能详解
  • 本地部署与运行大语言模型实战指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online