Spring拦截器与过滤器等总结

    对servlet、filter、listener、context-param都是配置在web.xml文件中,而aop、interceptor是配置在配置文件中,这样就是涉及到一个加载顺序的问题。1、对于配置在web.xml文件中的四个,context-param:它用于向Servelt-context提供键值对信息,即应用程序的上下文信息。Listener,filter等在初始化时会用到这些上下文信息。2、Context-param配置节点可以写在任意位置。3、因此真正的加载顺序:context-param----> listener---->filter---->servlet 

一、细节概念:

1、servlet: 流程是短的,url传来之后就对其进行处理,之后返回后转向到某一自己指定的页面。

2、Filter:流程是线性的,它就像是一个职责链,url传来之后进行预处理,然后传给下一个filter继续执行,而servlet处理之后,不会继续向下传递。

3、listener:如果说servlet与filter是查找url进行操作,则listener就是监听对象的动作进行触发操作,有点类似于数据库中的触发器,例如在session中创建和更改一些事情

4、interceptor:拦截器是动态拦截Action调用对象。它提供了一种机制使得开发者可以定义action之前或之后执行的代码。也可以在一个在action执行前阻止其执行。 

二、作用对象

1、针对URL:servlet、filter都是针对url进行的操作,这点我们可以从配置我从配置中就可以知道,因为这两个配置都需要配置url-pattern。

2、针对对象:listener是针对对象的操作,它是在某个对象发生、某些动作的时候执行,所以listener是提前封装好的对特定对象的操作,只需要声明名称和类的位置即可

3、针对action:interceptor是针对action对象进行操作,他在配置的时候需要和action一起配置才能启作用,当页面提交action时候,进行过滤操作 

三、作用范围

1、servlet:一般是针对特定的url进行操作,所以他需要在jsp中指定servlet的地址才能进行跳转过去执行 

2、filter:一般是对所有的url进行操作,它是对所有url进行的一个操作,所以filter是基于容器的操作,比如字符集过滤器等 

3、listener:一般是针对它所监听的对象进行的操作,但是项目已启动就进行监听,直到那个动作发生才执行操作,有点类似于“守株待兔”。 

4、interceptor:在action的方法执行之前后之后做一些处理,与过滤器filter比较类似,但是其有本质的区别:Filter的过滤范围比interceptor大,filter除了过滤请求外,通配符可以保护页面,图片,文件等等,而interceptor只能过滤自己配置好的请求。 

5、AOP:只能拦截spring管理bean的访问(业务层service) 

用法选择上的:根据作用对象、作用范围来考虑,选择使用那种结构!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伏特加的滋味

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值