最近比较忙,很少有时间上来更新东西,这段时间项目里有遇到个拦截器和过滤器,对他们的概念和区别不是很清晰,这里稍微做个总结。
先分别说下他们的概念。
拦截器:顾名思义,拦截<==>打劫, 想象一下,你放学后蹦蹦跳跳的走在回家的路上,首先你的目的是回家,这相当于一个逻辑。
按照以往,你只要走回去就ok了,但是现在貌似天气不好,下雷了,没办法,你需要去躲雨,然后再执行回家的动作。这一个下雨的过程便叫做拦截。
(某个方法在被访问之前和访问之后做的一些操作就是拦截)。
关于拦截器的配置,可以去网上搜搜,一抓一大把的。
过滤器:选美,长得难看的或者不喜欢的都可以拖出去砍了。过滤器就是在你访问servlet的时候对request、response中的一些参数进行设定和限制,比如过滤叼一些非法的url访问。
说下他们的区别(貌似这在java开发笔试和面试中可能会出现):
1、本质上,拦截器是基于java的反射机制,而过滤器是基于函数的回调。
2、过滤器依赖于servlet容器,而拦截器不依赖。
3、在整个项目运行中,过滤器只启动一次,跟着web项目启动时候调用,而拦截器在action周期内可以被调用很多次。
4、拦截器只针对action起作用,而过滤器对所有的请求都起作用。
5、拦截器可以访问action中的上下文,值栈中的对象,而过滤起不能。
好了,暂时就这些了。。。。学习愉快!!!
关键词:java
文章来自IT部落格,http://www.itbuluoge.com,版权所有,转载请注明出处!