震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)

简介: 文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。

注:以下我写的所有方法都在我的一个类中,类已经添加好@Controller注解

1、返回静态页面

现在前后端分离,基本不再由后端来返回前端的静态页面,但此处还是分享一下用法,以防万一

如果想要返回静态页面,对应的类和方法就不能再用 @RestController@ResponseBody 这两个注解了,后者表示不再返回静态页面,而是返回数据,前者功能包含后者

需使用@Controller注解(已在类中使用):

    @RequestMapping("/index")
    public String returnIndex(){
        return "/index.html";
    }

index.html是我早已定义好,且放在static目录下的静态页面

你若也想返回静态页面,在static目录下也需要提前放好对应的静态页面

2、返回数据

    @ResponseBody
    @RequestMapping("/returnData")
    public String returnData(){
        return "返回视图需要的数据";
    }

返回数据需使用@ResponseBody注解

该注解可以修饰类,也可以修饰方法

  • 修饰类的时候,表示这个类下的所有方法,返回的均为数据
  • 修饰方法时,表示该方法返回的是数据

如果一个类中的所有方法返回的是数据,我们就把这个注解加在类上

3、返回html代码片段

    @ResponseBody
    @RequestMapping("/returnHtml")
    public String returnHtml(){
        return "<h1>返回HTML代码片段</h1>";
    }

直接在return处编写Html代码即可

4、返回JSON(即主要是对象和Map)

返回JSON是目前最常用的返回数据的格式,对象等数据格式通过注解会自动转换为JSON

    @ResponseBody
    @RequestMapping("/returnJson")
    public Person returnJson(){
        Person person = new Person();
        person.setId(1);
        person.setName("zhangsan");
        person.setAge(7);
        return person;
    }

    @ResponseBody
    @RequestMapping("/returnMap")
    public Map<String,String> returnMap(){
        Map<String,String> kv = new HashMap<>();
        kv.put("k1","v1");
        kv.put("k2","v2");
        kv.put("k3","v3");
        return kv;
    }

返回数据的格式是String还是对象,是通过content-type决定的(可以手动指定)

  • 当我们的接口返回的是String时,content-type是text/html
  • 当我们的接口返回的是对象/Map时,content-type自动设置为application/json

手动指定:

设置@RequestMapping的produces参数,来手动指定返回的数据格式

@RequestMapping(value = "/example", produces = "application/json")

5、设置状态码

状态码不影响页面的展示

    // 不常用,目前状态码通常还是用servlet设置的
    @ResponseBody
    @RequestMapping("/setStatus")
    public String setStatus(HttpServletResponse response){
        response.setStatus(401);//通常表示没有登录
        return "设置状态码";
    }

不常用,目前状态码通常还是用servlet设置的

6、设置响应的Header

    @ResponseBody
    @RequestMapping(value = "/r1",produces = "application/json;charset=utf-8")
//    @RequestMapping(value = "/r1")
    public String r1(HttpServletResponse response){
        //设置header
        response.setHeader("myhead","myhead");
        return "{'OK':1}";
    }

Header是HTTP的请求头

Header的详细介绍及获取方式

目录
相关文章
|
1月前
|
存储 监控 安全
前端框架的数据驱动方式如何保证数据的安全性?
总之,前端框架的数据驱动方式需要综合运用多种手段来保证数据的安全性。从传输、存储、访问控制到防范攻击等各个方面进行全面考虑和实施,以确保用户数据的安全可靠。同时,不断加强安全管理和技术创新,以应对不断变化的安全挑战。
107 60
|
7天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
34 3
|
1月前
|
前端开发 JavaScript 开发工具
震惊!前端小白到大神的蜕变之路,这些技巧你竟然还不知道?
前端开发是互联网技术的重要组成部分,从新手到大神需要掌握HTML、CSS和JavaScript的基础知识,熟练使用框架和工具,如React、Vue和Git,并注重性能优化。持续学习和实践是成长的关键。本文分享了一些实用技巧,帮助你在前端开发之路上快速进步。
31 4
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
72 3
|
1月前
|
小程序 前端开发 算法
|
1月前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
121 1
|
2月前
|
监控 JavaScript 前端开发
前端的混合之路Meteor篇(六):发布订阅示例代码及如何将Meteor的响应数据映射到vue3的reactive系统
本文介绍了 Meteor 3.0 中的发布-订阅模型,详细讲解了如何在服务器端通过 `Meteor.publish` 发布数据,包括简单发布和自定义发布。客户端则通过 `Meteor.subscribe` 订阅数据,并使用 MiniMongo 实现实时数据同步。此外,还展示了如何在 Vue 3 中将 MiniMongo 的 `cursor` 转化为响应式数组,实现数据的自动更新。
|
2月前
|
JSON 分布式计算 前端开发
前端的全栈之路Meteor篇(七):轻量的NoSql分布式数据协议同步协议DDP深度剖析
本文深入探讨了DDP(Distributed Data Protocol)协议,这是一种在Meteor框架中广泛使用的发布/订阅协议,支持实时数据同步。文章详细介绍了DDP的主要特点、消息类型、协议流程及其在Meteor中的应用,包括实时数据同步、用户界面响应、分布式计算、多客户端协作和离线支持等。通过学习DDP,开发者可以构建响应迅速、适应性强的现代Web应用。
|
1月前
|
JSON Dart 数据格式
<大厂实战场景> ~ flutter&鸿蒙next处理后端返回来的数据的转义问题
在 Flutter 应用开发中,处理后端返回的数据是常见任务,尤其涉及转义字符时。本文详细探讨了如何使用 Dart 的 `dart:convert` 库解析包含转义字符的 JSON 数据,并提供了示例代码和常见问题的解决方案,帮助开发者有效处理数据转义问题。
137 0
|
2月前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。

热门文章

最新文章