interceptor和filter的区别有哪些?极悦小编来告诉大家。
Filter在请求进入servlet容器执行service()方法之前就会经过filter过滤(上图步骤1),不像Intreceptor一样依赖于springmvc框架,只需要依赖于servlet,不像Intreceptor一样依赖于springmvc框架,只需要依赖于servlet。Filter启动是随WEB应用的启动而启动,只需要初始化一次,以后都可以进行拦截。
Filter有如下几个种类:
1.用户授权Filter:检查用户请求,根据请求过滤用户非法请求;
2.日志Filter:记录某些特殊的用户请求;
3.解码Filter:对非标准编码的请求解码。
1.使用范围不同,filter是servlet规范规定的,只能用于web程序中,而Interceptor既可以用于web程序中,也可以用于application、swing程序中
2.规范不同:filter是在servlet规范中定义的,servlet支持,而拦截器是spring容器内的,是spring框架支持的。感觉就是一个是javaweb级别的,一个是spring级别的
3.深度不同:filter只在servlet前后起作用,而interceptor能够深入到方法前后、异常抛出前后等。因此interceptor的使用具有更大的弹性。所以在spring框架中应该优先使用拦截器
4.使用的资源不同,interceptor可以使用spring中的任何资源、对象等,而filter不能
以上就是关于“一文告诉你interceptor和filter的区别”介绍,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下极悦的Filter过滤器,里面有更丰富的知识等着大家去学习,希望对大家能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习