更新時(shí)間:2024-02-26 來(lái)源:黑馬程序員 瀏覽量:
為了封裝Cookie信息,在Servlet API中提供了一個(gè)java.http.Cookie類,該類包含了生成Cookie信息和提取Cookie信息的各個(gè)屬性的方法。Cookie的構(gòu)造方法和常用方法具體如下。
1.構(gòu)造方法
Cookie類有且僅有一個(gè)構(gòu)造方法,具體語(yǔ)法格式如下:
public Cookie(java.lang.String name,java.lang.String value)
在Cookie的構(gòu)造方法中,參數(shù)name用于指定Cookie的名稱,value用于指定Cookie的值。需要注意的是,Cookie一旦創(chuàng)建,它的名稱就不能更改,Cookie的值可以為任意值,創(chuàng)建后允許被修改。
2.Cookie類的常用方法
通過(guò)Cookie的構(gòu)造方法創(chuàng)建Cookie后,便可調(diào)用該類的所有方法,表12-1列舉了Cookie的常用方法。
表12-1 Cookie類的常用方法
表12-1列舉了Cookie類的常用方法,下面將針對(duì)表中比較難以理解的方法進(jìn)行講解。
(1)setMaxAge(int expiry)和getmaxAge()方法
上面的這兩個(gè)方法用于設(shè)置和返回Cookie在瀏覽器上保持有效的秒數(shù)。如果設(shè)置的值為一個(gè)正整數(shù),瀏覽器會(huì)將Cookie信息保存在本地硬盤中。從當(dāng)前時(shí)間開始,在沒(méi)有超過(guò)指定的秒數(shù)之前,這個(gè)Cookie都保持有效,并且同一臺(tái)計(jì)算機(jī)上運(yùn)行的瀏覽器都可以使用這個(gè)Cookie信息;如果設(shè)置值為負(fù)整數(shù),瀏覽器會(huì)將Cookie信息保存在緩存中,當(dāng)瀏覽器關(guān)閉時(shí),Cookie信息會(huì)被刪除;如果設(shè)置值為0,則表示通知瀏覽器立即刪除這個(gè)Cookie信息。在默認(rèn)情況下,Max-Age屬性的值是-1。
(2)setPath(String uri)和getPath()方法
上述兩個(gè)方法是針對(duì)Cookie的path屬性的。如果創(chuàng)建的某個(gè)Cookie對(duì)象沒(méi)有設(shè)置path屬性,那么該Cookie只對(duì)當(dāng)前訪問(wèn)路徑所屬的目錄及其子目錄有效;如果想讓某個(gè)Cookie項(xiàng)對(duì)站點(diǎn)所有目錄下的訪問(wèn)路徑都有效,則應(yīng)調(diào)用Cookie對(duì)象的setPath()方法將其path屬性設(shè)置為/。
(3)setDomain(String pattern)和getDomain()方法
上述兩個(gè)方法是針對(duì)Cookie的domain屬性的。domain屬性用于指定瀏覽器訪問(wèn)的域。例如,百度的域?yàn)閎aidu.com。那么,當(dāng)設(shè)置domain屬性時(shí),其值必須以.開頭,如domain=.baidu.com。在默認(rèn)情況下,domain屬性的值為當(dāng)前主機(jī)名,瀏覽器在訪問(wèn)當(dāng)前主機(jī)下的資源時(shí),都會(huì)將Cookie信息回送給服務(wù)器。需要注意的是,domain屬性的值是不區(qū)分大小寫的。