为什么禁止在过滤器返回响应而不对拦截器限制
来源:6-13 写了@Transactional也不能回滚?
街边七号
2020-09-08
如图,也正确的返回了预期结果,过滤器返回响应信息可能会产生的问题是什么呢?
写回答
1回答
-
葫芦兄你好:
如果你对 Spring 的特性很熟悉,或者你看过过滤器和拦截器的介绍,你会发现,说法基本上都是一致的。它们起到切面的效果,对请求和响应进行加工。
但是,由于过滤器会在拦截器之前执行,如果我们直接在过滤器中返回了响应,那么,拦截器就不会再执行。那么,如果拦截器中配置了日志管理、用户管理相关的机制和策略,无疑,这些直接在过滤器中返回的请求信息就丢失了,那么,在统计上肯定会受到影响。
所以,我更建议的是不要在过滤器中返回响应,抛出异常可以(但是,你要在外层做捕获),一定不要让请求信息丢失。除非是对于一些攻击性的请求,那么,直接返回也无所谓。
过滤器和拦截器的目的就是在 service 的前后做一些补充,对于不需要发送到 service 的请求,在拦截器中返回,而不要在过滤器中返回。
我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!
122020-09-09
相似问题