1. @PostMapping和@GetMapping 只可以发送get或者post请求控制单元
  2. @ResponseBody :用于Ajax响应(如果放到类上,则所有类都需要发Ajax请求;放到指定的方法,指定的方法响应Ajax请求)
  3. @RestController RestController效果等同于@Controller+@ResponseBody 放于类上
  4. @DateTimeFormat(pattern = “yyyy-MM-dd”)处理接收的日期格式处理
  5. @JsonFormat(pattern = “yyyy-MM-dd”,timezone=”GMT+8”)处理响应的日期格式处理,由于返回的日期慢于当前的时间,所以调整到东八区的时间
  6. RequestBody:用于接收前台传递过来的Json字符串并转换为Json格式,get请求不适用
  7. @@CorssOrigin(origins={“192.168.58.121”}) origins:定义允许跨域访问的Ip地址列表

    springmvc注解汇总

  8. @Controller 定义控制器

  9. @RestController 等效于@Controller+@ResponseBody
  10. @ControllerAdvice 基于Spring框架的异常通知实现。
  11. @RequestMapping 定义映射路径
  12. @PutMapping 接收put请求
  13. @DeleteMapping 接收delete请求
  14. @PostMapping 接收post请求
  15. @GetMapping 接收get请求
  16. @ResponseBody 把返回值转换为json并设置到响应体中
  17. @CrossOrigin 允许跨域,在响应头添加Access-Control-Allow-Origin属性
  18. @ExceptionHandler 异常处理
  19. @RequestParam 处理请求参数
  20. @RequestHeader 接收请求头
  21. @RequestAttribute 获取请求域数据
  22. @RequestBody 把请求体数据转换为对象
  23. @SessionAttribute 获取Session作用域的值
  24. @PathVariable 获取restful请求参数

image.pngimage.png
image.png

image.png

SpringMVC中常见注解

1、@RequestMapping
作用:
用于建立请求 URL 和处理请求方法之间的对应关系
出现位置:
类上: 请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头,它出现的目的是为了使我们的 URL 可以按照模块化管理
方法上: 请求 URL 的第二级访问目录
属性:
value:用于指定请求的 URL。它和 path 属性的作用是一样的。
method:用于指定请求的方式。
params(了解):用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和 配置的一模一样。
例如: params = {“accountName”},表示请求参数必须有 accountName
Headers(了解):用于指定限制请求消息头的条件。
实现:
@RequestMapping(“/account”)
public class AccountController {
@RequestMapping(value=”/saveAccount”,method=RequestMethod.POST)
public String saveAccount() {
System.out.println(“保存了账户”);
return “success”;
}
}
2、@RequestParam

作用:
把请求中指定名称的参数给控制器中的形参赋值。
属性:
value:请求参数中的名称。
required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错。
实现:
@RequestMapping(“/RequestParam”)
public String useRequestParam(@RequestParam(“name”)String uname,
@RequestParam(value=”age”,required=false)Integer age){
System.out.println(username+”,”+age);
return “sxt”;
}

3、@PathVaribale
Restful的简介 :
REST(英文:Representational State Transfer,简称 REST)restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
restful 的优点
它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
作用:
用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符。 url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。
属性:
value:用于指定 url 中占位符名称。
required:是否必须提供占位符。
实现:

  1. /***
  2. * SpringMVC处理restful格式请求
  3. * 1.
  4. * 在 @RequestMapping注解中可以使用{字母}来声明单元方法的拦截范围
  5. * 比如:
  6. * @RequestMapping("aa/{uname}/{age}")
  7. * 表示请求地址要请求的单元方法以aa开头,后面为两位任意。
  8. * 2.
  9. * 我们可以在单元方法的形参声明上使用注解@PathVariable
  10. * 来告诉DispatcherServlet将请求地址中的数据截取后作为
  11. * 实参传递给单元方法使用,默认按照地址占位中的参数名和
  12. * 形参名一致的规则赋值,如果不一致可以在@PathVariable中
  13. * 指明赋值@PathVariable("un")
  14. * 3.
  15. * 注意:
  16. * 说白了SpringMVC的restful格式的支持就是单元方法模糊拦截+注解声明来实现。
  17. */
  18. @RequestMapping("aa/{un}/{age}")
  19. public String demoResful(@PathVariable("un") String uname,@PathVariable Integer age){
  20. //处理请求
  21. System.out.println("MyController.demoResful:SpringMVC处理restful格式请求:"+uname+":"+age);
  22. //响应结果
  23. return "aa";
  24. }


4、@RequestHeader(了解)
作用:
用于获取请求消息头。
属性:
value:提供消息头名称
required:是否必须有此消息头
实现
@RequestMapping(“/useRequestHeader”)
public String useRequestHeader(@RequestHeader(value=”Accept”,
required=false)String requestHeader){
System.out.println(requestHeader);
return “sxt”;
}
5、@CookieValue(了解)
作用:
用于把指定 cookie 名称的值传入控制器方法参数。
属性:
value:指定 cookie 的名称。
required:是否必须有此 cookie
实现
@RequestMapping(“/CookieValue”)
public String CookieValue(@CookieValue(value=”JSESSIONID”,required=false)
String cookieValue){
System.out.println(cookieValue);
return “sxt”;
}