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

【SpringMVC】_SpringMVC项目返回HTML与JSON

目录

1. SpringMVC项目返回HTML页面

2. SpringMVC项目返回JSON

2.1 程序演示

2.2 关于响应的Content-Type

2.2.1 接口为对象

2.2.2 接口为String

2.2.3 接口为Map


本专栏已介绍:

返回静态页面:

【Spring MVC】_SpringMVC项目返回静态页面_mvc 返回当前页面-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63299495/article/details/138230689返回数据:
【Spring MVC】_SpringMVC项目返回数据-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63299495/article/details/138257338本篇介绍返回HTML与返回JSON;

1. SpringMVC项目返回HTML页面

.java文件内容如下:

package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/return")
@Controller
public class ReturnController {@ResponseBody@RequestMapping("/returnHtml")public String returnHtml(){return "<h1>Return as HTML Page.<h1>";}
}

运行启动类,根据URL访问页面如下:

在本例中使用的是@Controller与@ResponseBody注解,即选择返回数据;

当后端返回的代码段中含有HTML代码,会被浏览器自动解析为HTML页面

注:如果需要设置不解析HTML代码,则需要使用转义字符,此处不再演示;

2. SpringMVC项目返回JSON

2.1 程序演示

.java文件内容如下:

package com.example.demo.controller;import com.example.demo.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/return")
@Controller
public class ReturnController {@ResponseBody@RequestMapping("/returnJson")public Person returnJson(){Person person = new Person();person.setId(1);person.setName("Mike");person.setAge(20);return person;}
}

运行启动类,输入URL进行访问,页面如下:

2.2 关于响应的Content-Type

2.2.1 接口为对象

(代码示例为2.1Person接口)

当接口为对象时,返回的Content-Type会被自动设置为application/json

2.2.2 接口为String

(代码示例为1HTML页面)

当接口为String类型时,返回的Content-Type为text/html

2.2.3 接口为Map

.java文件内容如下:

package com.example.demo.controller;import com.example.demo.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
import java.util.Map;@RequestMapping("/return")
@Controller
public class ReturnController {@ResponseBody@RequestMapping("/returnJson2")public Map<String,String> returnMap(){Map<String,String> kv = new HashMap<>();kv.put("k1","v1");kv.put("k2","v2");return kv;}
}

根据URL进行访问,页面如下:

使用Fiddler抓包查看HTTP响应详情:

可见接口为形如Map的泛型接口时,返回的Content-Type也是application/json

即:需要将HTTP响应的body部分设置为JSON类型

无需进行手动设置,当返回一个对象时Spring会自动将content-type设置为json。

http://www.lryc.cn/news/357791.html

相关文章:

  • STL库--stack
  • 从System Prompt来看Claude3、Kimi和ChatGLM4之间的差距
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • Docker安装nginx详细教程
  • FineBI学习总结
  • 现代操作系统上创建各类链接的方法汇总
  • CSS中的Flex布局
  • 基于扩散模型的,开源世界模型DIAMOND
  • 【MySQL精通之路】InnoDB存储引擎
  • 【创作活动】探索 GPT-4o:下一代语言模型的技术革命
  • 【热门话题】Debian常用命令指南
  • 人大金仓 KingBase查询死锁,释放死锁
  • C++高手进阶:Windows 模块加载的艺术与策略
  • 基于STM32单片机老人体温心率血氧跌倒定位短信报警
  • 【测评】雨云香港三区云服务器,2核2G 5兆,仅需38元/月
  • 如何应对Android面试官 -> 玩转 Fragment
  • sdbusplus:通过文件描述符传递数据
  • HyperLPR3 车牌识别
  • 面试的内容
  • 剪映网页版
  • pgsql
  • Kotlin学习笔记 泛型
  • 开发者必看:Linux终端的10大装逼神器,让你的命令行炫酷起来!
  • 20 VUE学习:插件
  • python之any用法
  • 【前端学习——react坑】useState使用
  • 【前端每日基础】day28——async/await
  • 错误记录:从把项目从Tomcat8.5.37转到Tomcat10.1.7
  • AJAX基础知识
  • xcode依赖包package已经安装,但是提示No such module ‘Alamofire‘解决办法