发布时间:2022-12-02 文章分类:编程知识 投稿人:赵颖 字号: 默认 | | 超大 打印

在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没有任何限制