前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《面试季》高频面试题-Spring篇(二)

《面试季》高频面试题-Spring篇(二)

作者头像
IT学习日记
发布2022-09-13 14:50:58
4100
发布2022-09-13 14:50:58
举报
文章被收录于专栏:IT知识进阶学习

前言

  • 大家好,这里是IT学习日记,相信大家对今年IT的行情应该也有所了解了,从大厂到小厂,各种裁员消息。公司裁员我们无法决定,我们能做的就是不断提升自己,提前准备。
  • 本系列文章主要分享了之前博主真实面试中遇到的一些问题,希望能够帮助准备就业或者跳槽的朋友。

一、使用场景

  (一)RequestBody注解是我们书写代码时最常遇到的,但是关于它的使用场景和意思你真的懂了?观看本文你会学习到以下的知识点:

  • 1、RequestBody注解的作用是什么?
  • 2、RequestBody注解是在什么使用需要使用,是不是直接所有的Controller层都添加RequestBody?

二、定义和用途

  (一): RequestBody定义

  • 1、定义: RequestBody注解是SpringMVC下的一个注解,它可以通过HttpMessageConverter来将web请求中的数据绑定到指定方法的参数中,同时还可以结合Valid注解来校验请求参数是否满足条件。
  • 2、常见校验注解如: @Null 限制只能为null,@NotNull 限制必须不为null等等(ps:如果大家有有兴趣的话,可以在下方留言,到时候我可以专门出一篇文章)
  • 3、用法: 将常用的注解添加到需要检验的pojo实体的属性上,然后在方法处使用: Valid注解使之生效,BindResult适用于收集是否存在不满足条件的错误信息,也就是校验注解中的message,如果属性也是一个实体,且实体中有需要校验的,需要在实体的属性字段上添加Valid注解,使用图例如下:

  (二): RequestBody的用途

  1、前言: 很多人都知道RequestBody注解可以将请求中的参数映射到方法的实体属性中,但是,RequestBody注解并不是适用于所有的场景下,是否在参数中添加这个注解,取决于前端请求时参数的编码格式,常见的数据编码格式有以下两种:

2、form表单提交,默认的格式: application/x-www-form-urlencoded

  默认使用Form表单提交时,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码,它可以直接映射到实体的属性中。所以,此时我们并不需要在参数签名添加RequestBody,否则会报([org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported])错误。

3、Ajax请求,数据的编码格式常用的有两种情况:

  (1): 如果不指定contentType属性,则跟form表单相同,以application/x-www-form-urlencoded编码格式对数据进行编码,让发送到后台,所以此时也不需要添加RequestBody注解。

  (2): 如果ajax方式请求时,指定了contentType为:application/json,则此时请求将以json格式对请求数据进行编码,用来告诉服务端消息主体是序列化后的 JSON 字符串,格式如:{key:valkey:val...},此时后台参数中必须使用RequestBody注解,否则请求参数将无法映射到参数实体的属性中。

3、其他一些常用的数据编码格式:

  (1) multipart/form-data:当提交的表单中包含文件的时候,必须设置编码格式为这个(设置方式: 指定表单的enctype属性为:multipart/form-data即可),否则后台无法接受到请求的文件。

  (2) text/xml: 参数已xml格式进行编码,这个格式现在不是很常见。

4、常见的知识误区:

  (1) enctype: 表单数据提交时使用的编码类型,默认使用"pplication/x-www-form-urlencoded",如果是使用POST请求,则请求头中的content-type指定值就是该值。如果enctype 属性为"multipart/form-data",则以消息的形式发送给服务器。

  (2) enctype为form表单数据的编码格式,Content-type为Http传输的数据的编码格式

  (3) 表单的提交流程:

小结

   不积跬步,无以至千里;不积小流,无以成江海。今天播种努力的种子,总会有一天发芽!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/03/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、使用场景
  • 二、定义和用途
  • 小结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档