一、為什么要寫過濾器,過濾頁面?
本人做了一個網站,目前還在開發。做過濾器的目的就是為了要過濾一些頁面必需要用戶登錄之后才能看,主頁什么的可以隨便看,一旦涉及到要發布或評論什么信息,就必須要過濾用戶的請求了,看他是否登錄,沒登錄的話就讓他登錄之后進這些頁面。
寫過濾器的目的就是這么個目的。
二、廢話不少說,進入功能代碼階段。
原先設計的過濾器代碼:
創建兩個類:一個WebConfig.java,一個JzProjectGlobalFilter.java
Webconfig.java:這個類主要配置過濾器,或者說是創建過濾器對象,你有幾個過濾器就寫幾個方法,每個方法創建一個過濾器對象,如下:
JzProjectGlobalFilter.java:寫過濾器的內容。
我在此過濾器里面寫了一個List<String> list屬性,算是用來存放要過濾的請求的url。比如說我現在要過濾的頁面有:/taskAdd,/userInfo兩個頁面的url,用戶在請求這兩個url的時候必須要判斷session中是否有登錄用戶,沒有的話是不會給他訪問這兩個頁面的,直接跳轉到登錄頁面,讓用戶登錄才能訪問這兩個地址
JzProjectGlobalFilter.java類中過濾的內容代碼就簡單了:就是拿到當前請求的url去循環請求一下自己的list白名單中是否有此請求url,有的話判斷一下有沒有用戶登錄,沒有用戶登錄直接跳轉登錄頁面。如下:
。。。