请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Filter的作用

老师,上一章开头你讲在过滤器里面是拿不到post请求的数据的,最后还是在GlobalCacheRequestBodyFilter这个过滤器里面去处理了,没有明白是什么意思。
同样的都是全局过滤器。上一章用来缓存body,这一章又读取出来,再做处理。这样分开的意义是什么。为什么不能合并起来。在这个GlobalLoginOrRegisterFilter里面,直接解析body,再做处理。不是更简单吗?

正在回答 回答被采纳积分+3

1回答

张勤一 2022-01-11 22:56:06

同学你好:

    这里其实是一个混淆的概念:

    (1)并不是说在过滤器里面拿不到 post 类型请求的数据,而是说你直接去 “拿到”POST 中的数据,消费掉了之后,到达你的 Controller 方法之后,这个数据就为空了(这其实和 SpringMVC 的设计很像)

    (2)所以,我才会在“前一个”过滤器中保存下来副本,在“下一个”过滤器中消费这个副本,并且最终释放这个副本

0 回复 有任何疑惑可以回复我~
  • 提问者 慕工程4157871 #1
    老师,谢谢你的回答,还是2点不明白。
    1.你说的保存副本的动作是消费吗?如果是的话,那之后controller是不是也拿不到数据了。
    2.保存副本这个动作,相当于是提取body信息,那我直接在后一个filter里做这个提取动作有什么问题吗?还是不明白把他们分离在两个filter里的意义是什么?
    回复 有任何疑惑可以回复我~ 2022-01-11 23:05:08
  • 最简单的方式,你简单写个代码去试试,其实理论最后都要落到实践,哈哈哈,自己去试一试更容易理解。
    回复 有任何疑惑可以回复我~ 2022-01-11 23:07:20

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号