拦截器与过滤器的区别

过滤器(Filter)是Java EE中的组件,则任何一个Java的WEB项目都可以使用过滤器;而拦截器(Interceptor)是SpringMVC中的组件,仅当使用了SpringMVC框架才可以使用这个拦截器,并且,仅当被SpringMVC框架处理的请求才有可能被拦截器进行处理,假如将DispatcherServlet的路径映射为*.do,则只有以.do作为后缀的请求才可能被拦截器处理,其它请求是不会被拦截器处理的!

在实际使用时,过滤器的配置相对非常单一,例如:

<filter>
	<filter-name></filter-name>
	<filter-class></filter-class>
</filter>

<filter-mapping>
	<filter-name></filter-name>
	<url-pattern></url-pattern>
</filter-mapping>

在整个配置过程中,就只能配置1个映射的URL,尽管可以使用通配符,但是,可能配置的过滤范围不够精准,而拦截器的配置过程中,可以配置若干个拦截路径,也可以配置若干个例外,也可以使用通配符,配置非常灵活!

另外,过滤器是执行在所有Servlet之前的组件,而拦截器是执行在DispatcherServlet之后,在所有Controller之前的组件!

所以,一般情况下,会优先选取拦截器!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值