基礎知識了解:
cookie、session和過濾器通常都是用在web應用中,cookie和session用來儲存一定的資料,過濾器filter則是在浏覽器送出請求之後,而背景執行特定的請求之前發生一定的作用。之是以把這三個放一起,是因為有很多時候都會是把他們結合在一起使用,例如有些登陸程式。
cookie是浏覽器的機制,session是伺服器的機制,但是實際上cookie也是由伺服器生成的,之後傳回給浏覽器的,并不是浏覽器本身生成。當浏覽器發送某個請求時,如果擁有有效的cookie則會把這個cookie帶在一起。
之所有會有cookie的使用,是因為http協定原本是無狀态協定,也就是說通過http協定本身,伺服器不能判斷浏覽器是否之前通路過。
filter和servlet的寫法相似,編寫相關代碼的時候需要實作filter接口并重寫相關的方法,通常更改較多的是dofilter方法。filter代碼寫好以後如果需要發生效用,需要像配置servlet一樣在web.xml中 進行一定的配置。
以下是一個簡單的結合cookie、session、servlet和filter的登陸示例代碼:
定義一個使用者實體類,充當資料庫資料,這裡使用單例模式,保證隻存在一個執行個體對象:
使用者登陸輸入資訊index.jsp界面,在form表單的action中使用jsp的特性獲得項目路徑:
對應的背景servlet:
上邊登陸後跳轉的請求:
項目web.xml配置:
java過濾器代碼: