過濾器、攔截器應用場景、區別和使用


應用場景

過濾器的應用:字符編碼轉換,敏感詞過濾、登陸權限驗證、資源訪問權限等
攔截器的應用:AOP、需要有一些業務邏輯(需要注入Bean等)

區別

  1. 過濾器配置再web.xml中、攔截器配置springmvc的配置文件中(即在DispatcherServlet的contextConfigLocation屬性指定文件所在位置,默認加載的是:/WEB-INF/servlet名稱-servlet.xml(springmvc-servlet.xml))
  2. 過濾器基於函數回調、攔截器基於反射
  3. 過濾器幾乎對所有請求起作用,攔截器只對目標執行方法(action方法)起作用
  4. 過濾器:對請求進行預處理、再交給Servlet處理並且生成響應,最后Filter再對服務器響應進行后處理
    攔截器:可以再方法執行前調用(preHandle)、方法執行后(postHandle)、視圖頁面渲染后(afterCompletion)

執行流程

過濾器初始化-》(客戶端請求過來)dofilter處理請求-》到達dispatchServlet,在目標方法執行前preHandle-》(放行,返回true)執行目標方法-》(正常返回,異常則不執行)postHandle-》(無論目標方法是否執行或者執行是否出現異常,都會執行)afterCompletion-》dofilter處理響應-》客戶端加載頁面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM