1、@RequestMapping 如果 不增加任何条件,默认是 get 还是 post?
如果在应用 @RequestMapping 注解时,没有指定具体的 HTTP 申请办法,那么默认状况下,这个申请映射将会接管 GET、POST、PUT、DELETE、HEAD、OPTIONS 等所有 HTTP 申请办法。
例如,上面的 hello 办法就没有指定具体的申请办法:
@RequestMapping("/hello")
public String hello() {return "Hello, World!";}
在这个例子中,/hello 门路将会承受 GET、POST、PUT、DELETE、HEAD、OPTIONS 等所有 HTTP 申请办法。如果须要限定申请办法,能够通过 method 属性来指定具体的申请办法,例如:
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {return "Hello, World!";}
在这个例子中,/hello 门路将仅承受 GET 申请办法。
2、设计逻辑的思考
HTTP 协定定义了很多申请办法,如 GET、POST、PUT、DELETE、HEAD、OPTIONS 等,每个申请办法都有本人的语义和用处。在 Spring MVC 中,默认状况下,如果在应用 @RequestMapping 注解时没有指定具体的申请办法,那么这个申请映射将会接管所有的 HTTP 申请办法,即 GET、POST、PUT、DELETE、HEAD、OPTIONS 等。
这是因为, 在理论开发中,有时候咱们并不分明客户端会应用什么申请办法来拜访咱们的接口,或者咱们须要提供一个接口同时反对多种申请办法。因而,为了兼容多种申请办法,Spring MVC 默认状况下会将 @RequestMapping 注解不指定申请办法时视为所有申请办法都能够解决。
当然,如果咱们须要限度申请办法,能够通过 method 属性来指定具体的申请办法。例如,如果只心愿承受 GET 申请办法,能够应用 @RequestMapping(value = “/hello”, method = RequestMethod.GET) 注解。这样,当客户端应用除 GET 申请办法以外的其余申请办法来拜访 /hello 接口时,Spring MVC 将会返回 405 Method Not Allowed 谬误响应。