当前位置: 首页 > news >正文

【JavaEE】springMVC返回Http响应

目录

  • 一、返回页面
  • 二、@Controller和@ResponseBody与RestController区别
  • 三、返回HTML代码⽚段
  • 四、返回JSON
  • 五、HttpServletResponse设置状态码
  • 六、设置Header
    • 6.1 HttpServletResponse设置
    • 6.2 @RequestMapping设置

一、返回页面

步骤如下:

  1. 我们先要在static目录下创建我们的HTML文件。

HTML源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
    Hello,Spring MVC,我是Index⻚⾯.
</body>
</html>
  1. 在源码的类注解前面要使用@Controller注解,返回的页面名要与创建的文件名一致,并且加上后缀,且必须加上反斜杠 /

源码:

@RequestMapping("/response")
@Controller
public class ResponseController {
    @RequestMapping("/r1")
    public String r1() {
        return "/index.html";
    }
}

浏览器访问结果:

二、@Controller和@ResponseBody与RestController区别

SpringBoot默认扫描路径是启动类所在路径(包),和子目录。

@RestController的作用就是告诉Spring这个类需要扫描。
@RestController = @ResponseBody+@Controller

在早期编程,前后端不分离时@Controller就是负责返回视图的, @ResponseBody就是负责返回数据的。

  1. 当一个类中既要返回页面,又要返回数据的时候,就在类上加上@Controller,在类中返回数据的方法上加@ResponseBody。
  2. 当一个类全部返回数据的时候,就在类上加上@Controller + @ResponseBody,或者@RestController。
  3. 当一个页面只返回页面时,在类上加@Controller。

三、返回HTML代码⽚段

直接跟写HTML代码一样,写就行了,注意这种算返回数据。
代码:

	@RequestMapping("/r2")
    public String r2() {
        return "<h2>我是二级标题</h2>";
    }

访问结果:

如果这就是一个文本,只需要在@RequestMapping的products中注明类型即可。

@RequestMapping(value = "/r2", produces = "text/pain")
    public String r2() {
        return "<h2>我是二级标题</h2>";
    }

四、返回JSON

后端⽅法返回结果为对象直接就是返回的JSON。

源码:

 @RequestMapping("/r3")
    public Person r3() {
        Person person = new Person();
        person.setId(1);
        person.setName("zhangsan");
        person.setPassword("123");
        return person;
    }

结果:

五、HttpServletResponse设置状态码

Spring MVC会根据我们⽅法的返回结果⾃动设置响应状态码, 程序员也可以⼿动指定状态码。
通过类HttpServletResponse下的setStatue来设置。

源码:

 @RequestMapping("/r4")
    public String r4(HttpServletResponse response) {
        response.setStatus(404);
        return "设置状态码成功";
    }

结果:

六、设置Header

6.1 HttpServletResponse设置

通过类HttpServletResponse下的setHeader来设置。
在方法中前一个参数是header的参数名,后一个是值。

源码:

@RequestMapping("/r5")
    public String r5(HttpServletResponse response) {
        response.setHeader("myHeader","444");
        return "设置Header成功";
    }

结果:

6.2 @RequestMapping设置

@RequestMapping的组成如下:

我们通过设置 produces属性的值, 设置响应的报头Content-Type。
源码:

@RequestMapping(value = "/r6",produces = "application/json")
    public String r6() {
        return "{\"success\":true}";
    }

结果:

相关文章:

  • 【负载均衡系列】Nginx
  • 【例6.5】活动选择(信息学奥赛一本通-1323)
  • 如何拆解模糊需求管理
  • 【C语言】自定义数据类型:联合体和枚举
  • Java Collection API增强功能系列之二 List.of、Set.of、Map.of
  • 《Python全栈开发》第12课:RESTful API设计 - 构建现代化接口
  • ArrayList<E>案例//定义一个方法,将价格低于3000的手机信息返回
  • 0324-项目
  • 【蓝桥杯速成】| 11.回溯 之 子集问题
  • SpringBoot星之语明星周边产品销售网站设计与实现
  • 内存管理模块设计与实现
  • 单片机的时钟输出功能-MCO输出(7)
  • Android 13深度定制:揭秘类MIUI全面屏手势返回动效的架构级实现
  • 零知识证明:区块链隐私保护的变革力量
  • python人脸检测、人脸识别、活体检测入门学习教程
  • Java 中调用语言模型(如 OpenAI、阿里云通义千问、Hugging Face 等)API 的详细步骤和示例代码,涵盖常见场景及注意事项
  • pip包py2safe一键加密python项目
  • IntelliJ IDEA 将 Spring Boot 项目远程部署到服务器
  • Oracle相关的面试题
  • BKA-CNN-LSTM、CNN-LSTM、LSTM、CNN四模型多变量时序光伏功率预测,附模型研究报告
  • 人民时评:透过上海车展读懂三组密码
  • 75岁亚当·费舍尔坐镇,再现80分钟马勒《第九交响曲》
  • 大四本科生已发14篇SCI论文?学校工作人员:已记录汇报
  • 上市不足一年,吉利汽车拟私有化极氪并合并:整合资源,杜绝重复投入
  • 金融监管总局将出八大增量政策,李云泽详解稳楼市稳股市“组合拳”
  • A股三大股指集体高开大涨超1%,券商、房地产涨幅居前