先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址。

代码:

@RequestMapping(value = "/test")//类级别映射,可以没有,一般用于减少书写量
public class myController {
    //方法级别映射,必须有,那么这个方法的访问地址就是/test/aaa,请求到的页面就是test.jsp【当然,这里的.jsp需要在配置文件中配置】@RequestMapping(value = "/aaa")public String getMyName() {return "test";}
}

那么 @ResponseBody呢?

@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

举个例子:

前台异步请求:

function loginAction() {// 获取用户输入的账号和密码var name = $('#count').val();var password = $('#password').val();$.ajax({url : 'account/login.do',type : 'post',// data对象中的属性名要和服务端控制器的参数名一致 login(name, password)data : {'name' : name,'password' : password},dataType : 'json',success : function(result) {if (result.state == 0) {// 登录成功,设置cookie并跳转edit.htmladdCookie('userId', result.data.id);addCookie('nick', result.data.nick);location.href = 'edit.html';} else {// 登录失败var msg = result.message;$('#sig_in').next().html(msg);$('#sig_in').next().css("color", "red");}},error : function(e) {alert("系统异常");}});$('#password').val("");
}

后台 Controller类中对应的方法:

    @RequestMapping("/login.do")@ResponseBodypublic Object login(String name, String password, HttpSession session) {user = userService.checkLogin(name, password);session.setAttribute("user", user);return new JsonResult(user);}

@RequestBody呢?

@RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。

比如上面的登录后台代码可以改为:

    @RequestMapping("/login.do")@ResponseBodypublic Object login(@RequestBody User loginUuser, HttpSession session) {user = userService.checkLogin(loginUser);session.setAttribute("user", user);return new JsonResult(user);}

@ResponseBody 和 @RequestBody 的作用相关推荐

  1. SpringMVC中@ResponseBody和@RequestBody的使用

    - @ResponseBody:该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给 ...

  2. @responseBody和@RequestBody

    @responseBody和@RequestBody @responseBody把后台pojo转换json对象,返回到页面. @RequestBody接受前台json数据,把json数据自动封装jav ...

  3. 详述@ResponseBody和@RequestBody注解的区别

    2019独角兽企业重金招聘Python工程师标准>>> 1 前言 在详述 @ResponseBody 和 @RequestBody 注解之前,咱先了解一下 @RequestMappi ...

  4. springMvc注解之@ResponseBody和@RequestBody

    简介 springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解 添加依赖 springmvc对json的处理 ...

  5. @ResponseBody,@RequestBody,@PathVariable

    最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服!   相关参考: Spring 注解学习手札 ...

  6. Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable(转)

    最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考:  Spring 注解学习手札( ...

  7. java几个注解的作用及比较(@RestController、@Controller、@ResponseBody、@RequestBody等)

    1.@Controller 标识一个Spring类是Spring MVC controller处理器,是一种特殊化的@Component 类,习惯于和@RequestMapping绑定来使用,后者是用 ...

  8. SpringMVC之@requestBody的作用

    1.@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是ap ...

  9. spring boot中@ResponseBody等注解的作用与区别

    在使用springmvc框架的时候,在处理json的时候需要用到spring框架特有的注解@ResponseBody或者@RestController注解,这两个注解都会处理返回的数据格式,使用了该类 ...

最新文章

  1. asp.net基础复习(二)——母版页
  2. /bin/bash^M: bad interpreter
  3. 5分钟让你了解 ZooKeeper 的功能和原理
  4. 第六章勘误以及Normalization算法不完整
  5. TKmybatis和mybatisplus哪个好用
  6. 《大数据》2022年第1期目次摘要
  7. 说说如何在 Spring 框架中使用 SpEL 表达式
  8. mybatis 不生效 参数_Spring Boot(七):你不能不知道的Mybatis缓存机制
  9. python 30个小代码_30个Python常用极简代码,拿走就用
  10. 下载zxing的网址
  11. Ribbon和Feign的对比-带简易例子
  12. 数据结构,持续更新!!!
  13. php 跳转邮箱,JS点击跳转登陆邮箱功能简单的实现方法
  14. 20189220余超 2019年密码与安全新技术讲座-课程总结报告
  15. ERP-企业资源计划
  16. 支付宝付款前后端(app)
  17. 一个苏州IT人的5年挨踢经历-------未来篇
  18. matlab试差法,研究生-化工单元与过程的稳态模拟方法(1).ppt
  19. 原生js实现美女拼图,把美女老婆抱回家,5个美女够不够!程序员就是可以为所欲为!
  20. 自动化查询四级真题 点击翻译

热门文章

  1. 陪伴程序员的一条龙、一骑士 36 岁了!
  2. 美团应届生年薪达 35 万?究竟什么导致薪资倒挂?
  3. 20 年坚守,不忘初心!一封来自程序员的感谢信!
  4. 团队作业——Alpha冲刺 6/12
  5. sass @function,@for,@mixin 的应用
  6. Java并发——ReentrantLock
  7. 自建ELK vs 日志服务(SLS)全方位对比
  8. Ubuntu下安装mysql与mysql workbench
  9. POJ2955Brackets[区间DP]
  10. Hadoop学习之第七章节:Hive安装配置