springboot之攔截器


本篇文章就來講講攔截器,springboot中攔截器的注冊還是比較方便的。大概下面兩個步驟:

1.實現HandlerInterceptor接口創建攔截器

2.實現WebMvcConfigurer接口配置攔截器

 

下面使用一個簡單的例子,來大概展示一下具體使用:

場景:兩個頁面,登錄頁面可以隨便訪問,但是首頁只有xiongda用戶輸入正確密碼才能訪問

第一步,創建攔截器

public class MyInterceptor implements HandlerInterceptor{

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        System.out.println("==========jin  ru pre  handle ====");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        System.out.println(username +","+password);
        
        if("xiongda".equals(username) && "123456".equals(password)) {
            return true;
        }else {
            return false;
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        System.out.println("================= jin ru  after ===============");
    }

}

第二步,配置攔截器

@Configuration
public class WebMvcConfig  implements WebMvcConfigurer{

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/static/login.html");
    }
    
    
}

接下來根據具體結果來講解:

上面兩張圖是訪問登錄頁面,登錄頁面在攔截器配置中配置的是排除路徑,可以看到即使放開了,還是會進入prehandle,但是不會執行任何操作

進入首頁的時候,會在prehandle中進行判斷,只有為true的時候才會執行后面的afterCompletion方法

 

注意點:
1.攔截器中方法的執行順序是 preHandle -> Controller -> postHandle -> afterCompletion
只有preHandle返回true,才會執行后面的方法

 


免責聲明!

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



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