struts2 拦截器和过滤器的作用是什么?
struts2拦截器,在AOP中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。过滤器是输送介质管道上不可缺少的一种装置,通常安装在减压阀、泄压阀、定水位阀 ,方工过滤器其它设备的进口端设备。
介绍:
java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
原理:
大部分时候,拦截器方法都是通过代理的方式来调用的。Struts 2的拦截器实现相对简单。当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器。Struts2拦截器是可插拔的,拦截器是AOP的一种实现。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。
拓展:
过滤器由壳体、多元滤芯、反冲洗机构、和差压控制器等部分组成。壳体内 的横隔板将其内腔分为上、下两腔,上腔内配有多个过滤芯,这样充分利用了过滤空间,显着缩小了过滤器的体积,下腔内安装有反冲 洗吸盘。工作时,浊液经入口进入过滤器下腔,又经隔板孔进入滤芯的内腔。大于过滤芯缝隙的杂质被截留,净液穿过缝隙到达上腔, 最后从出口送出。