1. 连接功能
1.1几种注解
@RequestMapping最常用的注解之一,作用是用来路由注册(注册接口的路由映射),即可修饰类也能修饰方法,默认情况下的RequestMapping即可接收Get请求也可以接收Post请求。也可以通过设置method来限制,可以观看源码学习了解。
// @RequestMapping(value = "hi",method = RequestMethod.POST)
@RequestMapping("hi") //SpringBoot中的路由都是直通到各个方法的 //post和get请求都可以通过这个获取
public String sayHi(){
return "hi Spring Boot!";
}
也可以通过@GetMapping,@PostMapping来限制请求。
连接除了路由之外,还需要在Spring启动时将该类加载,需要用到@Controller,由于MVC的历史原因view,返回的数据是一个页面,而我们只需要数据,所以还需要@ResponseBody注解,它表示返回非页面数据。这两个注解的功能被@RestController同时拥有。
2.获取参数
可以获取url,form表单,ajax等中传的参数,注意,对于基本类型要使用它包装类,因为使用包装类才会在用户忘记传你要获取的参数时你的程序不会报错
获取的参数也可以是一个对象,对象中的属性的key要和用户设置的值相同,顺序无所谓
@RequestParam注解,作用参数的重命名,对于前端传过来的参数可以重新设置名称使用
@RequestBody注解,获取body中的对象,比如json传的对象
@RequestHeader注解,获取header头
@CookieValue注解,根据你所给你Cookie获取Cookie的值
spring mvc和servlet设置Session类似
servlet获取Session
@SessionAtrribute,获取session
3.返回数据
3.1返回静态页面
前面我们知道,springmvc返回的就是一个页面,而我们要获取的是数据。现在不加Responsebody注解就能获取到页面了。
3.2返回text/html,加上Responsebody
3.3返回JSON对象
3.4请求重定向和请求转发的区别
- 请求重定向是将请求重新定向到资源,请求转发就是服务器内部转发
- 请求重定向地址发送变化,请求转发地址不发生变化
- 请求重定向与直接访问新地址效果⼀样,不存在原来的外部资源不能访问;请求转发服务器端转发
有可能造成原外部资源不能访问。