亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

老生常談java中cookie的使用

 更新時(shí)間:2016年12月10日 10:00:41   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇老生常談java中cookie的使用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

1 什么是cookie

瀏覽器與WEB服務(wù)器之間是使用HTTP協(xié)議進(jìn)行通信的,當(dāng)某個(gè)用戶(hù)發(fā)出頁(yè)面請(qǐng)求時(shí),WEB服務(wù)器只是簡(jiǎn)單的進(jìn)行響應(yīng),然后就關(guān)閉與該用戶(hù)的連接。因此當(dāng)一個(gè)請(qǐng)求發(fā)送到WEB服務(wù)器時(shí),無(wú)論其是否是第一次來(lái)訪(fǎng),服務(wù)器都會(huì)把它當(dāng)作第一次來(lái)對(duì)待,這樣的不好之處可想而知。為了彌補(bǔ)這個(gè)缺陷,Netscape開(kāi)發(fā)出了cookie這個(gè)有效的工具來(lái)保存某個(gè)用戶(hù)的識(shí)別信息,因此人們昵稱(chēng)為“小甜餅”。cookies是一種WEB服務(wù)器通過(guò)瀏覽器在訪(fǎng)問(wèn)者的硬盤(pán)上存儲(chǔ)信息的手段:Netscape Navigator使用一個(gè)名為cookies.txt本地文件保存從所有站點(diǎn)接收的Cookie信息;而IE瀏覽器把Cookie信息保存在類(lèi)似于C:\windows\cookies的目錄下。當(dāng)用戶(hù)再次訪(fǎng)問(wèn)某個(gè)站點(diǎn)時(shí),服務(wù)端將要求瀏覽器查找并返回先前發(fā)送的Cookie信息,來(lái)識(shí)別這個(gè)用戶(hù)。

2 cookie的四個(gè)屬性

max-age   指定Ccookie的生存周期(以秒為單位)!默認(rèn)情況下,Cookie的值只在瀏覽器的會(huì)話(huà)期間存在,當(dāng)用戶(hù)退出瀏覽器這些值就消失了!

path   指定與Cookie關(guān)聯(lián)在一起的網(wǎng)頁(yè).默認(rèn)情況下,cookie會(huì)和創(chuàng)建它的網(wǎng)頁(yè)以及與這個(gè)網(wǎng)頁(yè)處于同一個(gè)目錄下的網(wǎng)頁(yè)和處于該目錄下的子目錄關(guān)聯(lián)。

domain   設(shè)置訪(fǎng)問(wèn)域   舉個(gè)例子:位于order.example.com的服務(wù)器要讀取catalog.example.com設(shè)置的cookie.這里就要引入domain屬性,假定由位于catalog.example.com的頁(yè)面創(chuàng)  的cookie把自己的path屬性設(shè)置為"/",把domain屬性設(shè)置為".example.com",那么所有位于"catalog.example.com"的網(wǎng)頁(yè)和所有位于"orders.example.com"的網(wǎng)頁(yè)以及所有位于example.com域的其他服務(wù)器上得網(wǎng)頁(yè)都能夠訪(fǎng)問(wèn)這個(gè)cookie.如果沒(méi)有設(shè)置cookie的domain值,該屬性的默認(rèn)值就是創(chuàng)建cookie的網(wǎng)頁(yè)所在的  服務(wù)器的主機(jī)名。   注意:不能將一個(gè)cookie的域設(shè)置成服務(wù)器所在的域之外的域.

seure   指定在網(wǎng)絡(luò)上如何傳輸cookie的值

3 java Cookie操作

創(chuàng)建Cookie

// new一個(gè)Cookie對(duì)象,鍵值對(duì)為參數(shù) 
Cookie cookie = new Cookie("key", "cookie的value值"); 
   如果cookie的值中含有中文時(shí),需要對(duì)cookie進(jìn)行編碼,不然會(huì)產(chǎn)生亂碼,使用
      URLEncoder.encode("cookie的value值","utf-8");


// 設(shè)置Cookie最大生存時(shí)間,以秒為單位,負(fù)數(shù)的話(huà)為瀏覽器進(jìn)程,關(guān)閉瀏覽器Cookie消失 
cookie.setMaxAge(*24*60*60); // 一天 
// 將Cookie添加到Response中,使之生效 
response.addCookie(cookie); //addCookie后,如果已經(jīng)存在相同名字的cookie,則最新的覆蓋舊的cookie

注意:在Struts中可以使用 ServletActionContext.getResponse()獲得respone對(duì)象

讀取cookie

讀取Cookie只能從request中獲取全部Cookie,然后循環(huán)迭代。

在Struts中可以使用 ServletActionContext.getRequest()獲得request對(duì)象

// 從request中獲取Cookie,拿到的是一個(gè)Cookie數(shù)組 
Cookie[] cookies = request.getCookies(); 
// 然后迭代之 
if (cookies != null && cookies.length > 0) { //如果沒(méi)有設(shè)置過(guò)Cookie會(huì)返回null 
  for (Cookie cookie : cookies) {...} 
}

刪除cookie

刪除Cookie的話(huà),只需要將Cookie的生存期設(shè)為0即可

Cookie[] cookies = request.getCookies(); 
if (cookies != null && cookies.length > 0) { 
  for (Cookie cookie : cookies) { 
    String name = cookie.getName(); 
    // 找到需要?jiǎng)h除的Cookie 
    if (name.compareTo("target-key") == 0) { 
      // 設(shè)置生存期為0 
      cookie.setMaxAge(0); 
      // 設(shè)回Response中生效 
      response.addCookie(cookie); 
    } 
  } 
} 

4 cookie的setPath方法使用:

正常的cookie只能在一個(gè)應(yīng)用中共享,即一個(gè)cookie只能由創(chuàng)建它的應(yīng)用獲得。

1.可在同一應(yīng)用服務(wù)器內(nèi)共享方法:設(shè)置cookie.setPath("/");

本機(jī)tomcat/webapp下面有兩個(gè)應(yīng)用:webapp_a和webapp_b,

1)原來(lái)在webapp_a下面設(shè)置的cookie,在webapp_b下面獲取不到,path默認(rèn)是產(chǎn)生cookie的應(yīng)用的路徑。

2)若在webapp_a下面設(shè)置cookie的時(shí)候,增加一條cookie.setPath("/");或者cookie.setPath("/webapp_b/");

就可以在webapp_b下面獲取到cas設(shè)置的cookie了。

3)此處的參數(shù),是相對(duì)于應(yīng)用服務(wù)器存放應(yīng)用的文件夾的根目錄而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夾下的所有應(yīng)用共享cookie,而cookie.setPath("/webapp_b/");

是指cas應(yīng)用設(shè)置的cookie只能在webapp_b應(yīng)用下的獲得,即便是產(chǎn)生這個(gè)cookie的webapp_a應(yīng)用也不可以。

4)設(shè)置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的時(shí)候,只有在webapp_b/jsp下面可以獲得cookie,在webapp_b下面但是在jsp文件夾外的都不能獲得cookie。

5)設(shè)置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,這樣就不可以在產(chǎn)生cookie的應(yīng)用webapp_a下面獲取cookie了

6)有多條cookie.setPath("XXX");語(yǔ)句的時(shí)候,起作用的以最后一條為準(zhǔn)。

5 cookie.setDomain方法設(shè)計(jì)跨域共享

A機(jī)所在的域:home.langchao.com,A有應(yīng)用webapp_a

B機(jī)所在的域:jszx.com,B有應(yīng)用webapp_b

1)在webapp_a下面設(shè)置cookie的時(shí)候,增加cookie.setDomain(".jszx.com");,這樣在webapp_b下面就可以取到cookie。

2)輸入url訪(fǎng)問(wèn)webapp_b的時(shí)候,必須輸入域名才能解析。比如說(shuō)在A機(jī)器輸入:http://lc-bsp.jszx.com:8080/webapp_b,可以獲取webapp_a在客戶(hù)端設(shè)置的cookie,而B(niǎo)機(jī)器訪(fǎng)問(wèn)本機(jī)的應(yīng)用,輸入:http://localhost:8080/webapp_b則不可以獲得cookie。

3)設(shè)置了cookie.setDomain(".jszx.com");,還可以在默認(rèn)的home.langchao.com下面共享

以上這篇老生常談java中cookie的使用就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java  Lock接口詳解及實(shí)例代碼

    java Lock接口詳解及實(shí)例代碼

    這篇文章主要介紹了java Lock接口詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • java監(jiān)聽(tīng)器的實(shí)現(xiàn)和原理詳解

    java監(jiān)聽(tīng)器的實(shí)現(xiàn)和原理詳解

    這篇文章主要給大家介紹了關(guān)于java監(jiān)聽(tīng)器實(shí)現(xiàn)和原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java基礎(chǔ)知識(shí)精通數(shù)組的使用

    Java基礎(chǔ)知識(shí)精通數(shù)組的使用

    數(shù)組對(duì)于每一門(mén)編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java?語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類(lèi)型元素
    2022-04-04
  • SpringBoot、Java 使用 Jsoup 解析 HTML 頁(yè)面的詳細(xì)步驟

    SpringBoot、Java 使用 Jsoup 解析 HTML 頁(yè)面

    這篇文章主要介紹了SpringBoot、Java 使用 Jsoup 解析 HTML 頁(yè)面的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • springboot接收J(rèn)SON實(shí)現(xiàn)示例解析

    springboot接收J(rèn)SON實(shí)現(xiàn)示例解析

    這篇文章主要為大家介紹了springboot如何接收J(rèn)SON的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java與MySQL時(shí)間不一致問(wèn)題解決

    Java與MySQL時(shí)間不一致問(wèn)題解決

    本文主要介紹了Java與MySQL時(shí)間不一致問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 淺談MySQL中是如何實(shí)現(xiàn)事務(wù)提交和回滾的

    淺談MySQL中是如何實(shí)現(xiàn)事務(wù)提交和回滾的

    本文主要介紹了MySQL中是如何實(shí)現(xiàn)事務(wù)提交和回滾的,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java異常類(lèi)型及處理詳情

    Java異常類(lèi)型及處理詳情

    這篇文章主要介紹了Java異常類(lèi)型及處理, 異常指的是程序在執(zhí)行過(guò)程中,出現(xiàn)了非正常情況,導(dǎo)致了java的jvm停止。感興趣的小伙伴就和小編一起來(lái)學(xué)習(xí)下面文章的具體內(nèi)容吧
    2021-09-09
  • java多次嵌套循環(huán)查詢(xún)數(shù)據(jù)庫(kù)導(dǎo)致代碼中數(shù)據(jù)處理慢的解決

    java多次嵌套循環(huán)查詢(xún)數(shù)據(jù)庫(kù)導(dǎo)致代碼中數(shù)據(jù)處理慢的解決

    這篇文章主要介紹了java多次嵌套循環(huán)查詢(xún)數(shù)據(jù)庫(kù)導(dǎo)致代碼中數(shù)據(jù)處理慢的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java中的Hashtable源碼詳細(xì)解析

    Java中的Hashtable源碼詳細(xì)解析

    這篇文章主要介紹了Java中的Hashtable源碼詳細(xì)解析,Hashtable 的函數(shù)都是同步的,這意味著它是線(xiàn)程安全的,它的key、value都不可以為null,此外,Hashtable中的映射不是有序的,需要的朋友可以參考下
    2023-11-11

最新評(píng)論