SpringBoot 過濾器, 攔截器, 監聽器 對比及使用場景
阿新 • • 發佈:2019-03-21
1. 過濾器 (實現 javax.servlet.Filter 介面)
① 過濾器是在web應用啟動的時候初始化一次, 在web應用停止的時候銷燬.
② 可以對請求的URL進行過濾, 對敏感詞過濾,
③ 擋在攔截器的外層
④ Filter 是 Servlet 規範的一部分
2. 攔截器 (實現 org.springframework.web.servlet.HandlerInterceptor 介面)
① 不依賴Spring容器, 可以使用 Spring 容器管理的Bean
② 攔截器通過動態代理進行
③ 攔截器應用場景, 效能分析, 許可權檢查, 日誌記錄
3. 監聽器 (實現 javax.servlet.ServletRequestListener, javax.servlet.http.HttpSessionListener, javax.servlet.ServletContextListener 等等介面)
① 主要用來監聽物件的建立與銷燬的發生, 比如 session 的建立銷燬, request 的建立銷燬, ServletContext 建立銷燬