关于@RestController与@Controller的区别以及通过@Responsebody联合使用所达到的效果

文章讲述了在SpringMVC中,@Controller和@ResponseBody注解的联合使用常用于返回JSON数据。@RestController是一个组合注解,相当于@Controller和@ResponseBody的结合,主要用于创建RESTfulAPI。GET请求用于获取资源,不应携带呈现数据,而POST请求则用于提交数据并可能改变服务器状态。
摘要由CSDN通过智能技术生成

首先@Controller与@Responsebody的联合使用的作用就相当于@RestController

@RestController注解的作用就是将当前这个类作为控制层的组件(Bean)添加到spring容器中

并且return返回的是json字符,想要return返回到jsp页面之类的则可以使用@Controller

​
@RestController //这是一个组合注解,等同于@Controller和@ResponseBody两个注解结合使用的效果,主要作用是将当前这个类作为控制层的组件添加到spring容器中,并且数据以json字符格式显示出来
@RequestMapping("/user")
@Slf4j
public class LoginController {

@GetMapping("/discuss/{userId}")
    public String discuss(BlogPage<IndexDataVo> blogPage, @PathVariable Integer userId, ModelMap modelMap){
        blogPage.setSize(2);
        blogPage=(BlogPage<IndexDataVo>) invitationService.selectMyInvitation(blogPage,userId);
        modelMap.put("page",blogPage);
        return "site/myself-invatation";
    }
}

​

@Responsebody则是将返回的结果以json的形式显示在页面,所以当使用@Controller注解后又需要返回json数据显示,可以进行联合使用,在方法上面使用@Reponsebody

  @ResponseBody
    @PostMapping("/register")
    public R register(@RequestBody UserEntity userEntity){
        userService.register(userEntity);
        return R.ok();
    }

包括@PostMapping与@GetMapping也是类似。它们实际上也就是@RequestMapping(method = RequestMethod.POST)、@RequestMapping(method = RequestMethod.GET)。之间的组合使用


GET
【获取资源】本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。 即GET请求只用来向服务器获取资源,而GET请求本身不应该携带任何呈现数据。

POST
【传输实体文本】向指定资源提交数据进行处理请求。数据被包含在POST请求体中(例如提交表单或者上传文件)。POST 请求可能会导致新的资源的建立或已有资源的修改。

GET
【获取资源】本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。 即GET请求只用来向服务器获取资源,而GET请求本身不应该携带任何呈现数据。

参考于:https://blog.csdn.net/demo_yo/article/details/123595846

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值