关于限制请求方式

在Spring MVC框架中,@RequestMapping注解的主要作用是配置请求路径,除此以外,还可以配置请求方式,例如:

@RequestMapping(value = "/add-new", method = RequestMethod.POST)

注意:

  • 在配置注解属性时,如果配置的是value属性,且只配置这1个属性的值,可以不必显式的写出属性名,即:@RequestMapping("/add-new")@RequestMapping(value = "/add-new")是完全等效的,但是,如果配置多个属性,则每个属性的名称都是必须的
  • @RequestMappingmethod属性是用于限制请求方式的,在没有配置此属性时,所有的请求方式都是允许的,如果配置了此属性,将限制为所配置的请求方式,如果使用其它请求方式,将出现405错误
  • @RequestMappingmethod属性的值类型是数组类型的,当配置注解属性时,如果属性值是数组类型,且当前只配置1个值时,可以不必使用大括号将值框住,即:@RequestMapping(method = RequestMethod.POST)@RequestMapping(method = {RequestMethod.POST})是完全等效的,如果要配置多个值,则必须使用大括号框住,各值之间使用逗号分隔

为了简化限制请求方式的代码,Spring MVC框架提供了与@RequestMapping相关的注解:

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

通常,以获取数据为主要目的,应该设计(或限制)为GET请求,否则,全部使用POST请求,并不以数据是否敏感、数据量是否较大作为区分标准。

附:关于GET和POST请求方式

GET:通过浏览器的地址栏发出、使用网页中的超链接(使用<a>标签)发出的请求,或者通过<form>表单却未指定method="post",或者使用JavaScript中的相关API显式的发出GET请求,都是GET请求,GET请求的典型特征是将请求参数体现在URL上,例如 http://localhost:8080/test?id=1,所以,GET请求不适合传输敏感参数,并且,受到URL长度的限制(取决客户端服务器端,通常,建议控制在1KB以内),虽然GET存在一些不足,但是,GET请求可以用于存储、缓存、分享,另外,GET请求比POST更快!

POST:通过<form>表单指定method="post",或者使用JavaScript中的相关API显式的发出POST请求,都是POST请求,POST请求的典型特征是请求参数是封装在请求体中的,所以,POST请求可用于传输敏感参数,请求参数不受到长度限制,相比之下,POST不可以用于需要存储、缓存、分享的场景,并且,比GET请求要慢一些!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值