JAVA WEB中的Servlet過濾器
阿新 • • 發佈:2019-01-28
固定 功能 9.png tomcat 否則 登陸 項目源碼 等於 null
********************************************
實現一個Servlet過濾器,可以對用戶登錄情況進行控制。要求如下:
1)訪問路徑是admin下的資源,需要登錄,如果用戶沒有登錄,自動轉向用戶登錄頁面。用戶登錄成功後,再次訪問admin下的資源不需要登錄。
2)訪問其他路徑下的資源,不需要登錄,可直接訪問。
3)必須使用Servlet過濾器實現該功能。
工具:eclipse、tomcat
過程如下:
一、制作登錄界面,其中包含用戶名以及密碼的驗證(實驗內容),另外加了一個驗證是否是因為訪問受限資源而跳轉到登陸界面(flag),只能將獲得path通過form表單的post方式發送出去,不能在Java代碼中直接將path放入request請求,這樣即使放入成功,在servlet中也獲取不到,因為下面還有form表單的提交,兩個request不在一個作用域中,因此,我將獲取的path信息放入一個input標簽中,並使之隱藏,這樣既可以成功發送,又不影響原界面的美觀。
***********************************************
********************************************
二、 制作訪問路徑過濾器
(1) 將請求轉換為http請求
(2) 判斷獲得用戶名是否為空(是否已經登陸)
(3) 獲得當前請求的訪問路徑(用於登陸後跳轉至原界面而不是一個固定的界面)
(4) 如果用戶名不為空,說明已經登陸則可以直接訪問
(5) 如果用戶名為空,說明用戶還未登陸,如果url也不為空,記錄將要訪問的url中的最後/和訪問的文件名放入request中,並且令flag等於1(說明是重定向至登錄界面,而不是直接訪問登錄界面)將所有請求重定向至登錄界面。
********************************************
三、在web.xml中配置相應屬性,用於過濾器過濾admin路徑下的所有資源
********************************************
四、配置四個界面,基本不做任何處理,放一段文字即可,然後配置統一的css屬性,改變其背景顏色,並令其居中顯示,四個文件以及css配置如下:(兩個界面放置在admin目錄下,一個another.jsp界面放在admin外面,不需要登陸即可訪問,fail.jsp是用戶登錄失敗的界面,下面僅以介紹success1.jsp為例)
********************************************
********************************************
五、編寫success1.jsp界面,在session中獲取登陸的用戶名並且展示在界面上
********************************************
六、編寫LoginServlet類,用於用戶登陸之後進行驗證等操作
(1) 將字符轉碼
(2) 獲取請求的用戶名密碼以及訪問路徑
(3) 判斷用戶名及密碼是否正確
(4) 如果正確,設置session有效值為30分鐘,把用戶名放入session中
(5) 判斷訪問路徑是否為空,以及是否為null字符串(經過index.jsp界面的轉換,可能將null轉換為String類型)
(6) 判斷訪問路徑是否為登錄界面,如果不是,就跳轉到用戶請求的界面,否則登陸成功後就跳轉到固定的admin目錄下面success1.jsp界面。
(7) 如果用戶名或密碼錯誤就跳轉到失敗界面。
****************************************
項目源碼下載地址:
點此下載
JAVA WEB中的Servlet過濾器