@Controller、@RequestMapping、@ResponseBody注解的结合使用
RequestMapping注解
客户端发送过来的请求,服务端必须要有个接收的方法,那使用哪些方法接收呢?就是使用加有@RequestMapping注解的方法接收。比如我们想让一个方法接收url为/getStudent,方法类型为get方法的请求,那么我们定义注解的时候就要写成 @RequestMapping(method = RequestMethod.GET, path = “/getStudent”)。
或者我们也可以直接写成@GetMapping(path = “/getStudent”)
@ResponseBody注解
@ResponseBody通常会配合@Controller、@RequestMapping注解一块使用,主要是负责返回客户端响应结果内容的,比如如下代码:
@Controller
public class MyController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "hello";
}
}
上面的代码主要接收客户端的请求/hello之后,会返回给客户端一个响应结果内容,是一个字符串"hello"。
那么假如说我们方法上面不写@ResponseBody注解会发生什么呢?这个时候会用到一个视图解析,比如说你的springmvc中配置的视图解析是后缀加上.html,那么return "hello"的意思就是去寻找程序里面的hello.html,如果没有找到就报错,如果找到了会把这个hello.html页面返回给客户端。
@Controller和@ResponseBody也可以结合使用,使用@RestController注解,如下图:
@RestController
public class MyController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
这样的话我们会在控制器类的每一个方法的上边都加上了一个@ResponseBody注解。