Spring MVC响应

响应

在我们前⾯的代码例⼦中,都已经设置了响应数据,Http响应结果可以是数据,也可以是静态⻚⾯,也可 以针对响应设置状态码,Header信息等.

1. 返回静态页面

创建前端⻚⾯index.html(注意路径)

html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Index⻚⾯</title>
</head>
<body>
 Hello,Spring MVC,我是Index⻚⾯.
</body>
</html>

后台代码:

@RestController
public class IndexController {
   
   
 @RequestMapping("/index")
 public Object index(){
   
   
    //返回index.html 
    return "/index.html";
 }
}

运⾏结果:http://127.0.0.1:8080/index


结果却发现,⻚⾯未正确返回,http响应把 “/index.html” 当做了http响应正⽂的数据

那SpringMVC如何才能识别出来index.html 是⼀个静态⻚⾯,并进⾏返回呢?

我们需要把@RestController 改为@Controller

正确代码如下:

@Controller
public class IndexController {
   
   
 @RequestMapping("/index")
 public Object index(){
   
   
	return "/index.html";
 }
}

再次运⾏:http://127.0.0.1:8080/index

发现⻚⾯正确展⽰了

@RestController@Controller 有着什么样的关联和区别呢?

咱们前⾯讲了MVC模式,后端会返回视图,这是早期时的概念

随着互联⽹的发展,⽬前项⽬开发流⾏"前后端分离"模式, Java主要是⽤来做后端项⽬的开发,所以也就 不再处理前端相关的内容了

MVC的概念也逐渐发⽣了变化,View不再返回视图,⽽是返回显⽰视图时需要的数据.

所以前⾯使⽤的 @RestController 其实是返回的数据.

@RestController =@Controller +@ResponseBody

@Controller :定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理.

@ResponseBody :定义返回的数据格式为⾮视图,返回⼀个text/html信息

如果想返回视图的话,只需要把 @ResponseBody 去掉就可以了,也就是 @Controller

2. 返回数据@ResponseBody

我们上⾯讲到,@ResponseBody 表⽰返回数据.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨 子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值