Java WEB 第8章 登錄功能實(shí)現(xiàn)-登錄成功跳轉(zhuǎn)主頁(yè)面

第8章 登錄功能實(shí)現(xiàn)-登錄成功跳轉(zhuǎn)主頁(yè)面

8.1 涉及的技術(shù)知識(shí)點(diǎn)

? ? ? 1)? ?Session會(huì)話 ?CookieJSTL標(biāo)簽

8.2 Cookie

? ? ? ?1)? HTTP是無(wú)狀態(tài)協(xié)議,服務(wù)器不能記錄瀏覽器的訪問(wèn)狀態(tài),也就是說(shuō)服務(wù)器不能區(qū)分中兩次請(qǐng)求是否由一個(gè)客戶端發(fā)出。這樣的設(shè)計(jì)嚴(yán)重阻礙的Web程序的設(shè)計(jì)。如:在我們進(jìn)行網(wǎng)購(gòu)時(shí),買了一條褲子,又買了一個(gè)手機(jī)。由于http協(xié)議是無(wú)狀態(tài)的,如果不通過(guò)其他手段,服務(wù)器是不能知道用戶到底買了什么。而Cookie就是解決方案之一。

? ? ? 2)? Cookie實(shí)際上就是服務(wù)器保存在瀏覽器上的一段信息。瀏覽器有了Cookie之后,每次向服務(wù)器發(fā)送請(qǐng)求時(shí)都會(huì)同時(shí)將該信息發(fā)送給服務(wù)器,服務(wù)器收到請(qǐng)求后,就可以根據(jù)該信息處理請(qǐng)求。

? ? ? ?3)? Cookie的用途

網(wǎng)上商城購(gòu)物車

用戶登錄狀態(tài)的保持

? ? ? ?4)? Cookie的限制性

  • Cookie最為請(qǐng)求或響應(yīng)報(bào)文發(fā)送,無(wú)形中增加了網(wǎng)絡(luò)流量。
  • Cookie是明文傳送的安全性差。
  • 各個(gè)瀏覽器對(duì)Cookie有限制,使用上有局限

? ? ? ? ?5)? Cookie的具體使用

    • 創(chuàng)建cookie
    • 讀取cookie

8.3 Session

? ? ? 1)? ?使用Cookie有一個(gè)非常大的局限,就是如果Cookie很多,則無(wú)形的增加了客戶端與服務(wù)端的數(shù)據(jù)傳輸量。而且由于瀏覽器對(duì)Cookie數(shù)量的限制,注定我們不能再Cookie中保存過(guò)多的信息,于是Session出現(xiàn)。

? ? ? 2)? Session的作用就是在服務(wù)器端保存一些用戶的數(shù)據(jù),然后傳遞給用戶一個(gè)名字為JSESSIONID的Cookie,這個(gè)JESSIONID對(duì)應(yīng)這個(gè)服務(wù)器中的一個(gè)Session對(duì)象,通過(guò)它就可以獲取到保存用戶信息的Session。

? ? ? 3)? Session的工作原理

  • Session的創(chuàng)建時(shí)機(jī)是在getSession()方法第一次被調(diào)用時(shí)。
  • Session被創(chuàng)建后,同時(shí)還會(huì)有一個(gè)名為JSESSIONID的Cookie被創(chuàng)建。
  • 這個(gè)Cookie的默認(rèn)時(shí)效就是當(dāng)前會(huì)話。
  • 簡(jiǎn)單來(lái)說(shuō),Session機(jī)制也是依賴于Cookie來(lái)實(shí)現(xiàn)的

? ? ? ?4)? Session的具體使用? ? ? ? 5)? Session的時(shí)效問(wèn)題

????Session默認(rèn)有效時(shí)間為30分鐘,可以在服務(wù)器的web.xml配置中修改.

8.4 URL重寫?

? ? ? ? ?1)? ?整個(gè)會(huì)話控制技術(shù)體系中,保持JSESSIONID的值主要通過(guò)Cookie實(shí)現(xiàn)。但Cookie在瀏覽器端可能會(huì)被禁用,所以我們還需要一些備用的技術(shù)手段,例如:URL重寫。

? ? ? ? ?2)? URL重寫其實(shí)就是將JSESSIONID的值以固定格式附著在URL地址后面,以實(shí)現(xiàn)保持JSESSIONID,進(jìn)而保持會(huì)話狀態(tài)。這個(gè)固定格式是:URL;jsessionid=xxxxxxxxx

? ? ? ? ?3)? 實(shí)現(xiàn)方式

8.5 具體功能展示