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 等。根据实际业务需求选择合适的枚举值即可。


