目录
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博客https://blog.csdn.net/m0_63299495/article/details/138230689返回数据:
【Spring MVC】_SpringMVC项目返回数据-CSDN博客https://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。