最近在学习Struts2,了解到过滤器和拦截器的不同,过滤器底层原理是基于回调方法,而拦截器是基于反射,然后递归
对于回调函数,这篇blog讲的很好https://blog.csdn.net/caihongdao123/article/details/51657840
感觉有个通俗的解释:
用客户端和服务端作比喻,比如客户端A和服务端B,
A向B发消息,发了之后,B处理消息要返回给A,但是需要经过一段时间,而A不想这样,A想发完继续干其他事情,B处理好消息发过来就行了,于是需要在A这端开一个新的线程,
在这个线程里A向B发消息,B收到消息,处理完后再返回给A,而A可以继续做其他事情.
用调用方法的角度讲:
在A中有方法sendmessage,调用B的process方法,传入的参数需要有两个,一个是要处理的消息,一个是A的引用(一般设置成A的接口,这样只要A实现了这个接口就都可以传入),要不然B处理完消息,不知道发给谁啊,对吧.处理完消息后,B肯定是调用A(此时这个A就是B接收的两个参数中A的引用)中的accept方法接收这个结果,于是A也得到的结果,这样就实现了异步回调了.这个accept方法就是回调方法.
,,