做項目時,我們經常需要驗證當前用戶是否有登錄,登錄後纔可以訪問其他頁面,而註冊和登錄頁面不需要驗證登錄,又因爲每個頁面(除了註冊和登錄)都需要驗證,故,我們可以在訪問頁面前攔截所有的請求,然後檢查是否登錄,具體實現方法:
1.新建filter文件夾
2.新建攔截器類LoginInterceptor 實現接口 HandlerInterceptor, 編寫註解:@Component,右擊Generate,選擇override Methods
3.編寫驗證用戶是否登錄
HttpSession session =request.getSession(); User user =(User)session.getAttribute("user"); if(user ==null){ request.getRequestDispatcher("/login").forward(request,response); return false; }else{ return true;//如果session有值,則說明該用戶已經登錄。 }
4.編寫註冊類,如下圖所示,用來註冊剛纔寫的攔截器,如下圖所示
registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/register","/login","/login/**","/css/**","/font/**","/img/**","/images/**","/js/**","/layui/**");