过滤器和拦截器之间的区别:

  1. 过滤器初始化在拦截器之前,在IOC容器bean节点初始化之后。
  2. 在一个请求生命周期中过滤器只被调用一次,拦截器可被调用多次。
  3. 过滤器在项目启动时初始化一次,拦截器是通过bean节点初始化在容器中。

创建项目对比拦截器与过滤器区别:

过滤器:

 1 /**
 2  * @filename MyFilter.Java
 3  * @desc 过滤器测试
 4  * @blog http://www.cnblogs.com/goodcheap
 5  * @author Chinda Wang
 6  * @create 2018-01-02 7:45
 7  * @version v1.0
 8  * @copyright Copyright © 2017 达华信息科技有限公司 版权所有
 9  * @modifyhistory 2018-01-02 7:45
10  * @modifyauthor Chinda Wang
11  * @modifydesc
12  */
13 package com.itdoc.filter;
14 
15 import com.itdoc.service.MyService;
16 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.stereotype.Component;
18 
19 import javax.servlet.*;
20 import java.io.IOException;
21 
22 
23 /**
24  * @desc 过滤器测试
25  * @author Chinda Wang
26  * @create 2018-01-02 7:45
27  */
28 @Component
29 public class MyFilter implements Filter {
30 
31     @Autowired
32     private MyService myService;
33 
34     /**
35      * Filter 初始化
36      * @param filterConfig
37      * @throws ServletException
38      */
39     @Override
40     public void init(FilterConfig filterConfig) throws ServletException {
41         System.out.println("初始化Filter!!!");
42         myService.getFilterInit();
43     }
44 
45     @Override
46     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
47         System.out.println("Filter doFilter方法!!!");
48         System.out.println("Filter调用chain.doFilter方法之前!!!");
49         myService.getFilterDoFilter("之前");
50         chain.doFilter(request, response);
51         myService.getFilterDoFilter("之后");
52         System.out.println("Filter调用chain.doFilter方法之后!!!");
53     }
54 
55     @Override
56     public void destroy() {
57         System.out.println("销毁Filter!!");
58         myService.getFilterDestroy();
59     }
60 }
过滤器

相关文章:

  • 2021-08-17
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-31
  • 2022-12-23
  • 2021-09-03
相关资源
相似解决方案