攔截器


SpringMVC攔截器(框架獨有)
SpringMVC攔截器類似於Servlet開發中的過濾器Filter,用於對處理器進行預處理和后處理,開發者可以自己定義一些攔截器來實現這些特定功能
過濾器和攔截器的區別:攔截器是AOP思想的具體應用
過濾器、攔截器、監聽器
過濾器(Filter)
當你有一堆東西的時候,你只希望選擇符合你要求的某一些東西。定義這些要求的工具,就是過濾器。
攔截器(Interceptor)
在一個流程正在進行的時候,你希望干預它的進展,甚至終止它進行,這是攔截器做的事情。
監聽器(Listener)
當一個事件發生的時候,你希望獲得這個事件發生的詳細信息,而並不想干預這個事件本身的進程,這就要用到監聽器。
代碼實現

  <mvc:interceptors>
         /  只過濾當前文件下的一個請求  /a
        /** 包括這個請求下所有請求   /a/b/c/d
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean class="com.ji.config.LoginInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
package com.ji.config;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor{
    //return true會執行下一個攔截器(放行)chain.doFilter(req,resp);
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println ("======================處理前=====================");
        return true;
    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println ("======================處理后=====================");
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println ("======================清理======================");
    }
}
/*
        ======================處理前=====================  //攔截器
        testController方法執行了
        ======================處理后=====================  //攔截日志
        ======================清理======================   //攔截日志
*/


免責聲明!

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



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