您的位置:首页 > 编程语言 > Java开发

过滤器和拦截器

2016-05-18 22:55 225 查看
过滤器和拦截器的区别:

  ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。

  ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

  ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

  ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

  ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

  ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

chain.doFilter(request, response);这个方法的调用作为分水岭。事实上调用Servlet的doService()方法是在chain.doFilter(request, response);这个方法中进行的。

preHandle()这个方法是在过滤器的chain.doFilter(request, response)方法的前一步执行;

  postHandle()方法之后,在return ModelAndView之前进行,可以操控Controller的ModelAndView内容。

  afterCompletion()方法是在过滤器返回给前端前一步执行。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java