Java WEB 第8章 登錄功能實現(xiàn)-登錄成功跳轉(zhuǎn)主頁面
第8章 登錄功能實現(xiàn)-登錄成功跳轉(zhuǎn)主頁面
8.1 涉及的技術(shù)知識點
? ? ? 1)? ?Session會話 ?CookieJSTL標(biāo)簽
8.2 Cookie
? ? ? ?1)? HTTP是無狀態(tài)協(xié)議,服務(wù)器不能記錄瀏覽器的訪問狀態(tài),也就是說服務(wù)器不能區(qū)分中兩次請求是否由一個客戶端發(fā)出。這樣的設(shè)計嚴(yán)重阻礙的Web程序的設(shè)計。如:在我們進(jìn)行網(wǎng)購時,買了一條褲子,又買了一個手機。由于http協(xié)議是無狀態(tài)的,如果不通過其他手段,服務(wù)器是不能知道用戶到底買了什么。而Cookie就是解決方案之一。
? ? ? 2)? Cookie實際上就是服務(wù)器保存在瀏覽器上的一段信息。瀏覽器有了Cookie之后,每次向服務(wù)器發(fā)送請求時都會同時將該信息發(fā)送給服務(wù)器,服務(wù)器收到請求后,就可以根據(jù)該信息處理請求。
? ? ? ?3)? Cookie的用途
網(wǎng)上商城購物車
用戶登錄狀態(tài)的保持
? ? ? ?4)? Cookie的限制性
- Cookie最為請求或響應(yīng)報文發(fā)送,無形中增加了網(wǎng)絡(luò)流量。
- Cookie是明文傳送的安全性差。
- 各個瀏覽器對Cookie有限制,使用上有局限
? ? ? ? ?5)? Cookie的具體使用
-
- 創(chuàng)建cookie
- 讀取cookie
- 創(chuàng)建cookie
8.3 Session
? ? ? 1)? ?使用Cookie有一個非常大的局限,就是如果Cookie很多,則無形的增加了客戶端與服務(wù)端的數(shù)據(jù)傳輸量。而且由于瀏覽器對Cookie數(shù)量的限制,注定我們不能再Cookie中保存過多的信息,于是Session出現(xiàn)。
? ? ? 2)? Session的作用就是在服務(wù)器端保存一些用戶的數(shù)據(jù),然后傳遞給用戶一個名字為JSESSIONID的Cookie,這個JESSIONID對應(yīng)這個服務(wù)器中的一個Session對象,通過它就可以獲取到保存用戶信息的Session。
? ? ? 3)? Session的工作原理
- Session的創(chuàng)建時機是在getSession()方法第一次被調(diào)用時。
- Session被創(chuàng)建后,同時還會有一個名為JSESSIONID的Cookie被創(chuàng)建。
- 這個Cookie的默認(rèn)時效就是當(dāng)前會話。
- 簡單來說,Session機制也是依賴于Cookie來實現(xiàn)的
? ? ? ?4)? Session的具體使用? ? ? ? 5)? Session的時效問題
????Session默認(rèn)有效時間為30分鐘,可以在服務(wù)器的web.xml配置中修改.
8.4 URL重寫?
? ? ? ? ?1)? ?整個會話控制技術(shù)體系中,保持JSESSIONID的值主要通過Cookie實現(xiàn)。但Cookie在瀏覽器端可能會被禁用,所以我們還需要一些備用的技術(shù)手段,例如:URL重寫。
? ? ? ? ?2)? URL重寫其實就是將JSESSIONID的值以固定格式附著在URL地址后面,以實現(xiàn)保持JSESSIONID,進(jìn)而保持會話狀態(tài)。這個固定格式是:URL;jsessionid=xxxxxxxxx
? ? ? ? ?3)? 實現(xiàn)方式
8.5 具體功能展示