5.3.2 Cookie类

优质
小牛编辑
132浏览
2023-12-01

在Servlet API中,使用java.servlet.http.Cookie类来封装一个Cookie信息,在HttpServletResponse接口中定义了addCookie和getCookies方法可以用来处理Cookie信息。其中addCookie方法用来向浏览器传送Cookie信息,也就是添加Set-Cookie字段。getCookies方法返回一个Cookie数组,这个数组中保存了浏览器发送给Web服务器的所有Cookie信息。

在Cookie类中定义了生成和提取Cookie信息的方法,这些方法如下:

1. 构造方法

Cookie类只有一个构造方法,它的定义如下:

public Cookie(String name, String value)

其中name表示Cookie的名称(在name参数中不能包含任何空格字符、逗号(,)、分号(;),并且不能以“$”字符开头),value表示Cookie的值。

2. getName方法

该方法用于返回Cookie的名称。

3. setValue和getValue方法

这两个方法分别用于设置和返回Cookie的值。

4. setMaxAge和getMaxAge方法

这两个方法分别用于设置和返回Cookie在客户机的有效时间(以秒为单位)。如果有效时间为0,则表示当Cookie信息发送到客户端浏览器时立即被删除。如果设置为负数,则表示浏览器并不会把这个Cookie保存在硬盘上,这种Cookie被称为临时Cookie(保存在硬盘上的Cookie也被称为永久Cookie)。它们只存在于当前浏览器的进程中,当浏览器关闭后,Cookie自动失效。对于IE浏览器来说,不同的浏览器窗口不能共享临时Cookie,但按Ctrl+N键或使用JavaScript的windows.open语句打开的窗口由于和它们父窗口属于同一个浏览器进程,因此,它们可以共享临时Cookie。而在FireFox中,所有的进程和标签页都可以共享临时Cookie。

5. setPath和getPath方法  

这两个方法分别用于设置和返回当前Cookie的有效Web路径。如果在创建某个Cookie时未设置它的path属性,那么该Cookie只对当前访问的Servlet所在的Web路径及其子路径有效。如果要想使Cookie对整个Web站点中的所有可访问的路径都有效,需要将path属性设置为“/”。

6. setDomain和getDomain方法 

这两个方法分别用于设置和返回当前Cookie的有效域。

7. setComment和getComment方法

这两个方法分别用于设置和返回当前Cookie的注释部分。

8. setVersion与getVersion方法

这两个方法分别用于设置和返回当前Cookie的协议版本。

9. setSecure和getSecure方法

这两个方法分别用于设置和返回当前Cookie是否只能使用安全的协议传送。