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


    1.@RequestMapping

    国际惯例先介绍什么是@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);
    
        }

    2.@ResponseBody

    @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();
    }
    }

    3.@RequestBody

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

    作用:

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

  • 相关阅读:
    Java程序:从命令行接收多个数字,求和并输出结果
    大道至简读后感
    大道至简第一章读后感Java伪代码
    Creating a SharePoint BCS .NET Connectivity Assembly to Crawl RSS Data in Visual Studio 2010
    声明式验证超时问题
    Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"
    Upgrading or Redeploying SharePoint 2010 Workflows
    Upgrade custom workflow in SharePoint
    SharePoint 2013中Office Web Apps的一次排错
    How to upgrade workflow assembly in MOSS 2007
  • 原文地址:https://www.cnblogs.com/springcloud/p/8735158.html
Copyright © 2020-2023  润新知