11月12日(servlet filter 和 struts2的 interceptor)

今天学习了interceptor的用法。感觉很filter和类似。不知道他们之间的区别,于是上网搜索。找到了下面的答案

首先从表现形式上来说,两者确实很相似,同样可以在你写的jspservlet代码的前后加入其它的动作,但是两者是有本质区别的。

1、  filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于java本身的反射机制,如果对这种形式不了解,可以去看看java是如何实现动态代理的,这是aop的基础。这是两者最本质的区别。

2、  filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptorservlet容器无关。

ps.这种动态代理action的方法实在是太优雅了。action和interceptor的耦合完全放在了配置文件中。热插拔啊~~~!!!

posted on 2013-11-12 16:34  叶龙  阅读(107)  评论(0编辑  收藏  举报