首页 > 代码库 > Struts2之拦截器原理分析及使用-再中

Struts2之拦截器原理分析及使用-再中

一、学习案例:关于拦截器的了解,我们肯定不再单纯地编码。我会带大家通过研读源码了解拦截器的实现方式,以及学习struts2的编码方式。

 

二、案例分析:

a)MethodFilterInterceptor方法拦截器,如果没指定includeMethods,也没指定excludeMethods,则所有方法都会被拦截,即所有方法默认includeMethods

 

b)对于指定了includeMethods,而不在其中的方法则不会被拦截。

 

d)怎么拦截,拦截什么都是由MethodFilterInterceptorUtil.applyMethod(..., ..., ...)指定的。有兴趣的朋友可以分析下其实现逻辑。

 

c)ActionInvocation中有个addPreResultListener(PreResultListener listener)方法,其含义就是:在action执行之后,在结果渲染之前,在这两个时间点之间会接收通知,通知传入参数对象执行处理。此处使用了观察者模式,如果对观察者模式了解,那么源码就很容易看懂了,大家可以自行查阅,在此就不多讲了。

1、创建监听类使之实现PreResultListener接口,实现beforeResult(..., ...)方法,此处就是填写结果被渲染之前的处理逻辑。

2、在拦截器中通过invocation.addPreResultListener(new 监听类)添加此功能。

3、一般也没什么用,反正我是没用过。有兴趣的朋友自行了解。

 

 

 

 

三、经验之谈:

a)对于知识点的掌握不是背下了就OK了,背下的东西过一段时间肯定会模糊,以致忘记。我们必须要理解,如果实在看不懂那也别背,敲代码论证,或者百度案例调试,只有这样的进步才会促使我们技术的成长。

 

四、参考项目:因为我们主要是对源码分析,而项目只是让大家对流程了解和掌握。这一章,我们就不提供项目演示了,其实也没什么可演示的,大家多看看源码,分析下MethodFilterInterceptorUtilActionInvocation两个接口即可。

 

五、每日一乐:

火车站,我紧紧抓住她正要从我的口袋中抽离的手说:别走。

她的眼眶一点一点的湿润,颤抖着说:能不能放手,

能不能给我留下一点美好的回忆,毕竟这是我第一次当小偷。” 

 

 

最终解释权归爱尚合伙人(www.23hhr.com)所有,转载请注明出处。

Struts2之拦截器原理分析及使用-再中