【JavaEE】springMVC返回Http响应

ops/2025/4/1 2:05:15/

目录

  • 一、返回页面
  • 二、@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}";}

结果:


http://www.ppmy.cn/ops/170766.html

相关文章

docker简单使用

docker简单使用 简单介绍一. docker 简介 ---docker 初使用二。安装 dockerdocker 容器的基本操作在容器中部署静态网站练习&#xff1a;查看和删除镜像&#xff1a;查看镜像删除镜像根据镜像仓库和标签只能删除一个docker 批量删除容器、镜像获取和推送镜像拉取镜像配置 Docke…

QT记事本

记事本应用程序提供了基本的文本编辑功能&#xff0c;支持文件的新建、打开、保存和另存为操作&#xff0c;同时具备修改提示和关闭窗口时的保存确认功能。使用 UTF - 8 编码确保了对多语言文本的支持。 1. 项目整体结构 main.cpp&#xff1a;程序的入口点&#xff0c;负责初…

SpringCloud-环境和工程搭建

前言 JDK用17&#xff0c;MySQL用8.0 微服务就是微小的服务 一个微服务只做一个事情 基本概念 打开官网 spring springcloud就是给我们提供工具&#xff0c;方便我们来弄微服务 springcloud是分布式微服务架构的一站式解决方案 Distributed/versioned configuration 分布…

Canvas粒子系统终极指南:从基础运动到复杂交互的全流程实现

文章目录 一、粒子系统基础架构1.1 粒子数据结构设计1.2 粒子系统管理器 二、基础粒子效果实现2.1 重力场模拟2.2 弹性碰撞效果 三、高级交互实现3.1 鼠标吸引效果3.2 颜色渐变粒子 四、性能优化策略4.1 粒子池复用4.2 分层渲染 五、复杂效果实现5.1 烟花爆炸效果5.2 流体模拟 …

ADZS-ICE-2000和AD-ICE2000仿真器在线升级固件

作者的话 近期发现有些兄弟的ICE-2000仿真器链接DSP报错&#xff0c;然后test第四步不通过&#xff0c;我就拿我的仿真器也试了一下&#xff0c;发现ADI悄咪咪的在线升级仿真器固件&#xff0c;有些兄弟不会操作&#xff0c;就会导致仿真器升级失败&#xff0c;连不上目标板&a…

RTMP推流+EasyDSS云服务+边缘AI分析的无人机监控系统设计

在现代科技不断发展的背景下&#xff0c;无人机技术已经广泛应用于各个领域&#xff0c;从航拍摄影到工业巡检&#xff0c;从农业监测到应急救援&#xff0c;无人机以其高效的工作能力&#xff0c;为人们的生活和工作带来了诸多便利与创新&#xff0c;而其视频传输与分析系统更…

STL入门

STL入门 作者&#xff1a;blue 时间&#xff1a;2024.3 文章目录 STL入门0.概述1.pair2.set(集合)3.vector4.string字符串类型5.queue&#xff0c;deque&#xff0c;priority_queue6.list的用法 0.概述 本文讨论部分常用的STL的运用 1.pair pair是将2个数据组合成一组数据…

leetcode240.搜索二维矩阵||

从右上角开始&#xff0c;往左移动就是变小&#xff0c;往下移动就是增加&#xff0c;类似于二叉搜索树&#xff0c;当目标大于矩阵只就下移&#xff0c;小于就左移 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int mmatrix.length,nmatrix[0]…