过滤器(Filter)
- 想象你有一个筛子,用来筛选东西。在厨房里,你可能用它来筛面粉。过滤器在软件中的作用类似,它用来“筛选”进入网站或者应用程序的请求。比如,你可以用过滤器来检查用户是否登录,或者清理用户输入的数据。
- 过滤器通常用在Web应用中,它们在请求到达网页或资源之前运行,也可以在响应发送给用户之前运行。
拦截器(Interceptor)
-
把拦截器想象成办公室里的助理帮你记录每次会议的开始和结束时间,但不会干预会议本身。在软件中,拦截器在某个操作执行之前和之后进行检查或执行其他任务,比如记录日志、测量执行时间或处理异常。
-
拦截器通常用在方法调用上,它们可以在方法执行前后添加额外的操作,但通常不会改变方法本身的执行流程。
区别
- 作用点不同:过滤器作用在请求上,拦截器作用在方法调用上。
- 使用场景不同:过滤器常用于处理Web请求的预处理和后处理,而拦截器用于在方法调用前后添加逻辑。
- 控制力度不同:过滤器通常对请求有更大的控制力度,可以决定是否继续处理请求;拦截器则更多用于监控和记录,不常改变方法的执行结果。