使用拦截器的优点是什么?
a:简化Action的实现,拦截器能把很多功能从Action中独立出来,大量减少了Action的代码
b:功能单一,按照上面的描述,把功能从Action中分离出来,分散到不同的拦截器中,这样每个拦截器的功能,以及Action本身的功能就更单一了
c:通用代码模块化,从Action中把功能分离出来,放到拦截器中去实现,这样能把一些在多个Action中通用的代码进行模块化,封装在一个或者几个拦截器中
d:提高重用性,当通用的功能代码被封装在拦截器中,实现了代码模块化过程之后,就可以对不同的Action,根据功能需要,来配置相同的拦截器了
e:实现AOP
拦截器相比Filter具有更强大的功能,比如拦截器与Servlet的API无关,拦截器可以访问到值栈等
过滤器和拦截器的区别?
区别 | 拦截器 | 过滤器 |
---|---|---|
基于 | java的反射机制 | 函数回调 |
依赖servlet容器 | 否 | 是 |
起作用 | 对action请求 | 对几乎所有的请求 |
可以访问action上下文、值栈里的对象 | 是 | 否 |
在action的生命周期中 | 多次被调用 | 在容器初始化时被调用一次 |
获取IOC容器中的各个bean | 是,并注入一个service,可以调用业务逻辑 | 否 |