首页 > 代码库 > 关于过滤器,拦截器,监听器的区别

关于过滤器,拦截器,监听器的区别

过滤器(Filter):
当你有一堆东西的时候,你只希望选择符合你要求的某一些东西。定义这些要求的工具,就是过滤器。
过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),
或者在传入servlet或者 struts的action前统一设置字符集,
或者去除掉一些非法字符(聊天室经常用到的,一些骂人的话)。。。

拦截器(Interceptor):
在一个流程正在进行的时候,你希望干预它的进展,甚至终止它进行,这是拦截器做的事情。
进行权限验证,或者是来判断用户是否登陆,日志记录,或者限制时间点访问。
我自己用过拦截器,是用户每次登录时,都能记录一个登录时间。 (这点用拦截器明显合适,用过滤器明显不合适,因为没有过滤任何东西)

监听器(Listener):
当一个事件发生的时候,你希望获得这个事件发生的详细信息,而并不想干预这个事件本身的进程,这就要用到监听器。
没找到网上的,我写给你 当你要触发一个事件,但这件事既不是过滤,又不是拦截,那很可能就是监听! 联想到Windows编程里的,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。监听器的概念类似于这些。

关于过滤器,拦截器,监听器的区别