@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别

[email protected]

国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法,此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。

 @RequestMapping("/verifyCode")
    public void verifyCode(HttpServletResponse response, HttpSession session){
        response.setDateHeader("Expires", -1);
        response.setHeader("Cache-Control", "no-cache");

        VerifyCode vc = new VerifyCode();
        try {
            vc.drawImage(response.getOutputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }
        String code = vc.getCode();
        session.setAttribute("code", code);
        System.out.println(code);

    }

[email protected]

@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。 
作用: 
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。 
使用时机: 
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

   @ResponseBody   public void activeUser(String userId, String activecode, HttpServletResponse response){       userInfoService.activeUser(userId, activecode);       // 定时刷新       response.setContentType("text/html;charset=utf-8");       try {           response.getWriter().write("激活成功,3秒之后回到登录界面进行登录...");           response.setHeader("refresh", "3;url=/login");

       } catch (IOException e) {           e.printStackTrace();       }   }

[email protected]

@RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

作用:

1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; 
2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

原文地址:https://www.cnblogs.com/springcloud/p/8735158.html

时间: 2024-10-14 09:55:05

@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别的相关文章

浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别

首先,大家在使用SSM框架进行web开发的时候,经常会在Ctrl层遇到@RequestMapping.@ResponseBody以及@RequestBody这三个参数,博主就以自己在项目开发中总结的一些知识点浅谈一下三者之间微妙的关系. [email protected] 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径:用于方法上,表示在类的父路径

@RequestBody注解的用法

以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串.同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样

springMvc注解之@ResponseBody和@RequestBody

简介 springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解 添加依赖 springmvc对json的处理依赖jackson <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.1

spring 中注解的详细解释之@Responsebody与@RequestBody

1.@responseBoby @Responsebody与@RequestBody 一.预备知识:@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. 1 @RequestMapping(value = "/aaa")//类级别,可以没有 2 public class myController { 3 @RequestMapping(value = "/

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

最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札(一) 构建简单Web应用 Spring 注解学习手札(二) 控制层梳理 Spring 注解学习手札(三) 表单页面处理 Spring 注解学习手札(四) 持久层浅析 Spring 注解学习手札(五) 业务层事务处理 Spring 注解学习手札(六) 测试 Spring 注解学习手札(七) 补遗--@R

springMVC中使用注解@ResponseBody,@RequestBody传递json数据

在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换. [email protected] 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. 即可以将返回的对象(带有数据的javabean的集合List或Map)转换成JSON. [email protected] 该注解用于读取Request请求的

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

转-http://snowolf.iteye.com/blog/1628861/ Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable 博客分类: Spring spring@ResponseBody@RequestBody@PathVariableHttpMessageConverter 最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍

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

最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札(一) 构建简单Web应用 Spring 注解学习手札(二) 控制层梳理 Spring 注解学习手札(三) 表单页面处理 Spring 注解学习手札(四) 持久层浅析 Spring 注解学习手札(五) 业务层事务处理 Spring 注解学习手札(六) 测试 Spring 注解学习手札(七) 补遗——@R

@RequestBody注解用法

做Java已经有8个多月了,但是基本没有学习过Java语言,因此在项目中写代码基本靠的是其他语言的基础来写Java代码,写出来的很多代码虽然能用,但是感觉很不地道,虽然从来没有同事说过,但是我自己觉得是,因为我经常用下中国象棋的套路去下国际象棋. 在手头的项目用的SSM的框架,其中有用到Ajax的地方不少,方法是再简单不过了,在Ajax中对指定的URL提交参数,然后在Controller里通过request.getParameter()方法来接收参数.代码差不多就像下面的结构,Ajax的代码如下