- @PostMapping和@GetMapping 只可以发送get或者post请求控制单元
- @ResponseBody :用于Ajax响应(如果放到类上,则所有类都需要发Ajax请求;放到指定的方法,指定的方法响应Ajax请求)
- @RestController RestController效果等同于@Controller+@ResponseBody 放于类上
- @DateTimeFormat(pattern = “yyyy-MM-dd”)处理接收的日期格式处理
- @JsonFormat(pattern = “yyyy-MM-dd”,timezone=”GMT+8”)处理响应的日期格式处理,由于返回的日期慢于当前的时间,所以调整到东八区的时间
- RequestBody:用于接收前台传递过来的Json字符串并转换为Json格式,get请求不适用
@@CorssOrigin(origins={“192.168.58.121”}) origins:定义允许跨域访问的Ip地址列表
springmvc注解汇总
@Controller 定义控制器
- @RestController 等效于@Controller+@ResponseBody
- @ControllerAdvice 基于Spring框架的异常通知实现。
- @RequestMapping 定义映射路径
- @PutMapping 接收put请求
- @DeleteMapping 接收delete请求
- @PostMapping 接收post请求
- @GetMapping 接收get请求
- @ResponseBody 把返回值转换为json并设置到响应体中
- @CrossOrigin 允许跨域,在响应头添加Access-Control-Allow-Origin属性
- @ExceptionHandler 异常处理
- @RequestParam 处理请求参数
- @RequestHeader 接收请求头
- @RequestAttribute 获取请求域数据
- @RequestBody 把请求体数据转换为对象
- @SessionAttribute 获取Session作用域的值
- @PathVariable 获取restful请求参数
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:是否必须提供占位符。
实现:
/***
* SpringMVC处理restful格式请求
* 1.
* 在 @RequestMapping注解中可以使用{字母}来声明单元方法的拦截范围
* 比如:
* @RequestMapping("aa/{uname}/{age}")
* 表示请求地址要请求的单元方法以aa开头,后面为两位任意。
* 2.
* 我们可以在单元方法的形参声明上使用注解@PathVariable
* 来告诉DispatcherServlet将请求地址中的数据截取后作为
* 实参传递给单元方法使用,默认按照地址占位中的参数名和
* 形参名一致的规则赋值,如果不一致可以在@PathVariable中
* 指明赋值@PathVariable("un")
* 3.
* 注意:
* 说白了SpringMVC的restful格式的支持就是单元方法模糊拦截+注解声明来实现。
*/
@RequestMapping("aa/{un}/{age}")
public String demoResful(@PathVariable("un") String uname,@PathVariable Integer age){
//处理请求
System.out.println("MyController.demoResful:SpringMVC处理restful格式请求:"+uname+":"+age);
//响应结果
return "aa";
}
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”;
}