在SpringMVC中,控制器负责处理由DIspatchServlet接收并分发过来的请求。它把用户请求的数据通过业务处理层封装成一个Model,然后把该model返回给对应的View进行展示。
Controller无需继承特定的类或实现特定的借口。只需使用@Controller(@RestController)来标记一个控制器,然后用注解@RequestMapping定义URL请求和Controller方法之间的映射,这样Controller就能被
访问到。并且可以包含多个请求方法。
常用注解
1.@Controller
标记在类上,表示的是SpringMVC的controller对象。分发处理器将会扫描使用了该注解的类,并检测其中的方法是否使用了RequestMapping
2.@RestController
等价于@Controller+@ResponseBody。直接返回字符串,用来标注Rest风格的控制器类
3.RequestMapping
用来处理请求地址映射的注解,可用在类或方法上。如果用在类上,则表示类中的所有响应请求的方法都以该地址作为父路径。
该注解有六个属性:
1.value:指定请求的地址
2.method:指定请求的method类型–GET,POST,PUT,DELETE,PATCH,HEAD等
3.consumes:消费消息,指定处理请求的提交内容类型
4.produces:生产消息,指定返回的内容类型
5.params:指定request中必须包含某些参数值才让该方法处理请求
6.headers:指定request中必须包含某些指定的header值才能让该方法处理请求
4.@PathVariable:将请求URL中的模版变量映射到功能处理方法的参数上,即获取URI中的变量作为参数。
将URL映射到方法
将URl(统一资源定位符)映射到方法,是通过注解@RequestMapping来处理的,URL映射其实就是用控制器定义访问的URL路径。用户通过输入路径来访问某个方法。
SpringBoot还提供了更简洁的编写,@GetMapping,@PostMapping,@DeleteMapping,@PutMapping分别表示处理get请求,post请求,delete请求,put请求。
简单分析一下GET请求和POST请求的区别!!!
1.GET可以在浏览器中回退,而POST访问同一个地址时也是再次提交请求
2.GET请求会被浏览器主动缓存,而POST不会
3.GET中的参数会被完整的保存在浏览器的历史记录里,而POST中的参数不会
4.GET的参数是通过URL传递的,而POST中的参数是被放到request body中的
5.GET只能接受ASCII字符,而POST没有任何限制