Cookie概念
Cookie直譯為小甜甜,對(duì)于計(jì)算機(jī)而言cookie是保存在瀏覽側(cè)一小段數(shù)據(jù)。每種瀏覽器都有自己的cookie存儲(chǔ)空間,一般不能相互訪問。Cookie也是把雙刃劍,它帶來很便利的同時(shí)也帶來了安全隱患。瀏覽器可禁用cookie,或設(shè)定安全級(jí)別。一般不要禁用cookie,采用瀏覽器的默認(rèn)級(jí)別就可以。
應(yīng)用范圍
Cookie應(yīng)用在需要頻繁操作、記錄瀏覽歷史的場(chǎng)景。比如一些不涉及金錢的網(wǎng)站,可以保存用戶與密碼以保證在一段時(shí)間內(nèi)不再進(jìn)行操作,給用戶更好的使用體驗(yàn)。早期電商平臺(tái)的購(gòu)物車功能,也采用cookie實(shí)現(xiàn)。某些特定技術(shù)也要依賴cookie,如禁用cookie會(huì)導(dǎo)致會(huì)話跟蹤失效。
Cookie種類
Cookie分成二類,一種是窗口級(jí)還一種為指定時(shí)間級(jí)。所謂窗口級(jí)是指瀏覽器關(guān)閉后失效,指定時(shí)長(zhǎng)級(jí)在到達(dá)指定的時(shí)間后自動(dòng)失效。會(huì)話跟蹤技術(shù)中的sessionId就是采用的窗口級(jí)cookie,“二周自動(dòng)登陸”功能就要使用指定時(shí)長(zhǎng)級(jí)cookie。
儲(chǔ)存格式
Cookie采用Map的方式保存,每個(gè)name對(duì)應(yīng)一個(gè)value。Key與value的值一般為英文或數(shù)字且name不能重復(fù),和Java中的Map結(jié)構(gòu)一致。
操作cookie
可以用JS在瀏覽器(客戶端)中直接操作cookie,但實(shí)際應(yīng)用中使用JQuery插件更為方便。今天小傅老師要跟講的是利用Servlet指示瀏覽器操作cookie。
Cookie類
使用javax.servlet.http.Cookie類操作cookie非常方便。
常用方法
取得cookie
瀏覽器向某個(gè)站點(diǎn)下的servlet發(fā)送請(qǐng)求時(shí),瀏覽器會(huì)自動(dòng)之前以保存的本站點(diǎn)相應(yīng)cookie發(fā)送給servlet。我們借且于HttpServletRequest接口中的getCookies()就可以取得,返回的是一個(gè)Cookie數(shù)組。
設(shè)定cookie
構(gòu)造cookie實(shí)例后把它加入到HttpServletResponse對(duì)象,瀏覽器收到應(yīng)答根據(jù)cookie的種類保存cookie。
1)窗口級(jí)cookie
2)指定時(shí)長(zhǎng)cookie
編輯cookie
當(dāng)設(shè)定以有name的cookie時(shí)value會(huì)給覆蓋,以最后一次為準(zhǔn)。刪除cookie操作,只要將其有效時(shí)長(zhǎng)設(shè)定為0就可以了。