本質(zhì)區(qū)別
過濾器和監(jiān)聽器是JavaWeb技術(shù)
攔截器是面向切面編程的技術(shù)
listener
通過listener可以監(jiān)聽web服務(wù)器中某一個執(zhí)行動作台诗,并根據(jù)其要求作出相應(yīng)的響應(yīng)。
JavaWeb提供的6個Listener
ServletContextListener——創(chuàng)建Web工程時觸發(fā)
HttpSessionListener——創(chuàng)建Session時候觸發(fā)
ServletRequestListener——創(chuàng)建Request觸發(fā)
ServletContextAttributeListener——Context屬性改變時觸發(fā)
HttpSessionAttributeListener——Session屬性改變觸發(fā)
ServletRequestAttributeListener——Request屬性改變觸發(fā)
Filter
filter是一個可以復(fù)用的代碼片段赐俗,可以用來轉(zhuǎn)換HTTP請求拉队、響應(yīng)和頭信息。
Filter接口執(zhí)行過濾方法doFilter有三個參數(shù):
Request——請求
Response——響應(yīng)
Chain——過濾器鏈阻逮,將請求和響應(yīng)傳遞給下一個過濾器
Interceptor
實現(xiàn)對請求的一些自動化操作粱快。
Spring MVC 攔截器的幾個方法
preHandle()——在執(zhí)行控制器前執(zhí)行
postHandle()——在渲染視圖之前執(zhí)行
afterCompletion()——在渲染視圖之后執(zhí)行