攔截器-監聽器-過濾器的區別

Servlet:處理Request請求和Response響應

過濾器

過濾器(Filter):對Request請求起到過濾的作⽤,作⽤在Servlet之前,如果配置爲/*可以對所
有的資源訪問(servlet、 js/css靜態資源等)進⾏過濾處理

監聽器

監聽器(Listener):實現了javax.servlet.ServletContextListener 接⼝的服務器端組件,它隨Web應⽤的啓動⽽啓動,只初始化⼀次,然後會⼀直運⾏監視,隨Web應⽤的停⽌⽽銷燬

作⽤⼀: 做⼀些初始化⼯作, web應⽤中spring容器啓動ContextLoaderListener
作⽤⼆: 監聽web中的特定事件,⽐如HttpSession,ServletRequest的創建和銷燬;變量的創建、
銷燬和修改等。可以在某些動作前後增加處理,實現監控,⽐如統計在線⼈數,利⽤HttpSessionLisener等。

攔截器

攔截器(Interceptor):是SpringMVC、 Struts等表現層框架⾃⼰的,不會攔截jsp/html/css/image的訪問等,只會攔截訪問的控制器⽅法(Handler)。

從配置的⻆度也能夠總結髮現: serlvet、 filter、 listener是配置在web.xml中的,⽽interceptor是配置在表現層框架⾃⼰的配置⽂件中的
在Handler業務邏輯執⾏之前攔截⼀次
在Handler邏輯執⾏完畢但未跳轉⻚⾯之前攔截⼀次
在跳轉⻚⾯之後攔截⼀次

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章