時間:2017年2月18日星期六
說明:本文部份內容均來自慕課網。@慕課網:http://www.imooc.com
教學示例源碼:暫無。
我的學習源碼:https://github.com/zccodere/s...java
課程內容git
瞭解攔截器 掌握SpringMVC攔截器的原理和使用 掌握SpringMVC攔截器的使用場景 SpringMVC攔截器的對比和總結
什麼是攔截器?github
攔截器是指經過統一攔截從瀏覽器發往服務器的請求來完成功能的加強。 使用場景:解決請求的共性問題(如:亂碼問題、權限驗證問題等)。
攔截器的基本工做原理瀏覽器
SpringMVC能夠經過配置過濾器類解決亂碼問題。 攔截器的工做原理和過濾器很是類似。
攔截器的實現服務器
一、編寫攔截器類實現HandlerInterceptor接口 二、將攔截器註冊進SpringMVC框架中 三、配置攔截器的攔截規則
攔截器的方法介紹框架
一、preHandle方法,在請求被處理以前進行調用 二、postHandle方法,在請求被處理以後進行調用 三、afterCompletion方法,在請求結束以後才進行調用
在一個應用中如何配置多個攔截器?函數
攔截器的其餘實現方式post
攔截器的類還能夠經過實現WebRequestInterceptor接口來編寫 向SpringMVC框架註冊的寫法不變 弊端:preHandle方法沒有返回值,不能終止請求。
攔截器的使用場景學習
使用原則:處理全部請求的共同問題 一、解決亂碼問題 二、解決權限驗證問題
攔截器和過濾器的區別spa
攔截器是基於java的反射機制的,而過濾器是基於函數回調。 攔截器不依賴與servlet容器,過濾器依賴與servlet容器。 攔截器只能對action請求起做用,而過濾器則能夠對幾乎全部的請求起做用。 攔截器能夠訪問action上下文、值棧裏的對象,而過濾器不能訪問。 在action的生命週期中,攔截器能夠屢次被調用,而過濾器只能在容器初始化時被調用一次。 攔截器能夠獲取IOC容器中的各個bean,而過濾器就不行,這點很重要,在攔截器裏注入一個service,能夠調用業務邏輯。
總結
一、攔截器能夠處理Web應用中請求的一些通用性問題。 二、共性問題在攔截器中處理,能夠減小重複代碼,便於維護。