servlet filter和springMVC拦截器的区别
1个回答
展开全部
servlet filter:
根据filter mapping配置的先后顺序、在Servlet规范中定义的,是Servlet容器支持的 、只能用于Web程序中、Filter在只在Servlet前后起作用。
springMVC拦截器:
按照配置的顺序,但是可以通过order控制顺序,Spring容器内的,是Spring框架支持的,既可以用于Web程序,也可以用于Application、Swing程序中,拦截器能够深入到方法前后、异常抛出前后等。
两者的本质区别:拦截器是基于java的反射机制的,而过滤器是基于函数回调。从灵活性上说拦截器功能更强大些,Filter能做的事情,他都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录不登录之类),太细的话,还是建议用interceptor。不过还是根据不同情况选择合适的。
根据filter mapping配置的先后顺序、在Servlet规范中定义的,是Servlet容器支持的 、只能用于Web程序中、Filter在只在Servlet前后起作用。
springMVC拦截器:
按照配置的顺序,但是可以通过order控制顺序,Spring容器内的,是Spring框架支持的,既可以用于Web程序,也可以用于Application、Swing程序中,拦截器能够深入到方法前后、异常抛出前后等。
两者的本质区别:拦截器是基于java的反射机制的,而过滤器是基于函数回调。从灵活性上说拦截器功能更强大些,Filter能做的事情,他都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录不登录之类),太细的话,还是建议用interceptor。不过还是根据不同情况选择合适的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询