@RequestMapping 和 @ResponseBody的用法与区别

728 阅读1分钟

@RequestMapping

  • 处理请求地址映射的注解
  • 可以用于类或者方法上
  • 用于类上时,表示这个类中所有方法的请求地址都是以该地址作为父路径
  • 在类上可以没有,方法上必须有

下面这个例子里,如果我们想要在网页上看到这个'hello',我们需要在浏览器输入路径为localhost:portnumber/SayHello/hello

@Controller

//设置跳转到这个类的父路径
@RequestMapping("SayHello")
public class SayHello{
    
    //设置跳转到这个方法的子路径
    @RequestMapping("/hello")
    public String hello(){
        return "hello!";
    }
}

@ResponseBody

  • 异步请求
  • 该注解将Controller的方法返回的对象,转换成指定格式后,写入到Response对象的body数据区
  • 返回数据格式为json,xml
@RequestMapping("login")
@ReponseBody

// 不再跳转到login路径,而是直接讲返回结果user写成json对象写入HTTP相应正文中去
public User login(User user){
    User user = new User();
    user.setId(1);
    user.setName("Charles");
    return user;
}