14_SpringMVC_其他注解

时间:2023-02-26 12:57:47


 SpringMVC中注解完善

1、@PostMapping

作用:

指定当前发送请求的方式只可以是post请求

属性:

    和@RequestMapping中属性一致

代码实现

@PostMapping("/userControllerA")

public String userControllerA(){

return "forward:/success.jsp";

}

 

2、@GetMapping

作用:

指定当前发送请求的方式只可以是get请求

属性:

    和@RequestMapping中属性一致

代码实现:

@GetMapping("/userControllerA")

public String userControllerA(){



return "forward:/success.jsp";

}

 

3、@RestController  

作用:

      书写到类上,代表该类中所有控制单元方法均是ajax响应 相当于@ResponseBody+@Controller

属性:

      其中的属性和@Controller中一样

代码实现:

@RestController
public class UserController {

}

 

4、@JsonFormat

作用:

     处理响应json 数据的处理

属性:

    pattern :指定响应时间日期的格式

    Timezone:指定响应的时区,否则会有8个小时的时间差

代码实现:

@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd" ,timezone="GMT+8")
private Date birth;

 

5、@RequestBody

作用:

用于获取请求体json格式的字符串内容。直接使用得到是 key=value&key=value...结构的数据,get 请求方式不适用。

属性:

required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值 为 false,get 请求得到是null。

实现:

$(function () { 
var jsonObj ={name:"zs",pwd:"123"};
var str =JSON.stringify(jsonObj);
$.ajax({
type:"post",
url:"testController",
/*data:'{"name":"zs","password":"123"}',*/
data:str,
contentType:"application/json",
})
})

 

 
@RequestMapping("/useRequestBody")
 
public String   useRequestBody(@RequestBody(required=false) User user){
 
    System.out.println(body);
 
    return "msb";
 
}

6、@CrossOrigin 

什么是跨域

出于浏览器的同源策略限制。同源策略(SameOriginPolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)
​​​ http://127.0.0.1:8080/msb/index.jsp基础​​​ https://127.0.0.1:8080/msb/index.jsp 协议不一样
http://192.168.24.11:8080/msb/index.jsp IP不一致
http://127.0.0.1:8888/msb/index.jsp 端口不一致
http://localhost:8080/msb/index.jsp IP不一致
作用:

解决ajax请求之间的跨域问题

属性:

origins  : 允许可访问的域列表IP

maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。

代码实现:

@CrossOrigin(origins = "http://domain2.com", maxAge = 3600)
@RestController
@RequestMapping("/account")
public class AccountController {
@GetMapping("/{id}")
public Account receive(@PathVariable Long id) { }
}