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