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

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 具體功能展示