侧边栏

Web(一)

Web(一)

1、拦截器(interceptor)与过滤器(filter)的相同与不同之处?

相同之处:两者都是aop编程思想的体现,都能实现权限检查、日志记录等。
不同之处:
  1、规范和应用范围不同:过滤器filter是servlet规范中规定的,是由servlet容器支持的,只能用于web程序中;拦截器是spring容器中,是spring框架支持的,既可以用于web程序中,也可以用于Application、Swing程序中;
  2、使用资源不同:拦截器interceptor是spring的一个组件,归spring管理,配置在spring文件中,因此可以使用spring的任何资源和对象。例如service对象、数据源、事务管理等,通过IOC容器注入到拦截器即可,而filter不能;
  3、使用深度不同:过滤器filter只能在servlet前后器作用,而拦截器interceptor可以深入到方法前后、抛异常前后等,因此拦截器使用具有更大弹性,在spring架构中,优先使用拦截器;

总结:

  1、拦截器基于java反射机制,不依赖servlet容器,只对action请求起作用,可以访问action上下文,在action的生命周期中拦截器可以多次被调用,拦截器可以调用ioc容器中各个bean;
  2、过滤器基于函数回调,依赖servlet容器,过滤器所有请求都起作用,不能访问action上下文,过滤器只能在容器初始化被调用一次,不能调用ioc容器中的各个bean;

posted @ 2022-02-18 23:49  泡代码的小二黑  阅读(13)  评论(0编辑  收藏  举报
script src="https://files.cnblogs.com/files/fenggwsx/clipboard.min.js"/script script src="https://files.cnblogs.com/files/fenggwsx/cp.js"/script