@responsebody一般在什么情况下使用,他的好处与坏处?

 我来答
huqian793
2017-11-13 · 知道合伙人教育行家
huqian793
知道合伙人教育行家
采纳数:13569 获赞数:70184
2011年高教社杯全国大学生建模国家二等奖; 2012年大学生创新项目校一等奖并获优秀大学生奖; 过英语四六级

向TA提问 私信TA
展开全部
@responsebody表示该方法的返回结果直接写入HTTP response body中。
它的使用情况如下:
1、一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

2、一般是指定要response 的type。比如json 或 xml 可以直接用jackson或jaxb的包,然后就可以自动返回了,xml中也无需多的配置,就可以使用。

好处是:GET模式下,这里使用了@PathVariable绑定输入参数,非常适合Restful风格。因为隐藏了参数与路径的关系,可以提升网站的安全性,静态化页面,降低恶意攻击风险。
POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
@ResponseBody可以标注任何对象,由Srping完成对象——协议的转换。
坏处是:返回之前,若前端编码格式不一致,很容易导致乱码
h378588270
2013-07-25 · TA获得超过213个赞
知道答主
回答量:22
采纳率:0%
帮助的人:5.4万
展开全部
GET模式下,这里使用了@PathVariable绑定输入参数,非常适合Restful风格。因为隐藏了参数与路径的关系,可以提升网站的安全性,静态化页面,降低恶意攻击风险。
POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
@ResponseBody可以标注任何对象,由Srping完成对象——协议的转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔼啡10
2017-10-23 · TA获得超过2078个赞
知道小有建树答主
回答量:579
采纳率:68%
帮助的人:79.9万
展开全部
Spring 2.5 版本新增了注解功能, 通过注解,代码编写简化了很多;但熟悉注解的使用,需要一个过程,如果不熟悉Spring 早期的版本,上来就使用注解,有些困难。

这里,我们讨论下: @ResponseBody在什么情况下使用?

先来看一段代码:
@Controller
@RequestMapping("/")
public class HelloController {
@RequestMapping(value = "/something", method = RequestMethod.GET)
@ResponseBody
public String helloWorld() {
return"Hello World";
}
}

运行以上代码,在浏览器地址栏输入: http://localhost:8080/something
运行结果,页面上输出 Hello World
如果去掉 @ResponseBody ,又会怎样呢?
Spring点滴: @ResponseBody在什么情况下使用? - 悠悠 - 悠悠电台iOS客户端:几千个国内外电台

结果表明:如果在一个方法上使用了@RequestMapping注解,这时候,方法的返回值通常解析为跳转的路径, 也就是说,要跳转到指定的jsp页面。在这个代码实例中,要跳转到的是 Hello World.jsp 页面。 因为工程中尚未添加这个jsp文件,所以报出了 404 错误 (The requested resource is not available)。

如果添加了 @ResponseBody 这个注解, 则表明该方法的返回值直接写入到 HTTP Response Body 中。 这就是说,如果返回的是JSON, 就得必须添加 @ResponseBody 这个注解

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疯狂代码社区
2013-06-14 · TA获得超过147个赞
知道答主
回答量:46
采纳率:0%
帮助的人:12.3万
展开全部
一般是指定要response 的type 比如json 或 xml

可以直接用jackson或jaxb的包,然后就可以自动返回了,
xml中也无需多的配置,就可以使用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guodefu909
2015-07-08 · TA获得超过1463个赞
知道小有建树答主
回答量:203
采纳率:66%
帮助的人:64.3万
展开全部
@responsebody表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

http://www.cnblogs.com/guodefu909/p/4216327.html
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式