Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
HTTP 状态管理在 Java SE 中通过 java.net.CookieHandler
类实现。CookieHandler
对象提供了一种回调机制,用于在 HTTP 协议处理程序中提供 HTTP 状态管理策略实现。也就是说,使用 HTTP 作为协议的 URL,例如 new URL("http://example.com")
将使用 HTTP 协议处理程序。此协议处理程序回调 CookieHandler
对象(如果已设置)以处理状态管理。
CookieHandler
类是一个抽象类,它有两对相关的方法。第一对 getDefault()
和 setDefault(cookieHandler)
是静态方法,使你能够发现已安装的当前处理程序和安装自己的处理程序。
没有安装默认处理程序,安装处理程序是在系统范围内完成的。对于在安全环境中运行的应用程序,即安装了安全管理器的应用程序,你必须具有获取和设置处理程序的特殊权限。有关更多信息,请参阅 java.net.CookieHandler.getDefault
。
第二对相关方法 put(uri, responseHeaders)
和 get(uri, requestHeaders)
,使你能够在响应/请求头中为指定的 URI,分别将所有适用的 cookie 设置到缓存,及从 cookie 缓存中获取 cookie。这些方法是抽象的,CookieHandler
的具体实现必须提供实现。
Java Web Start 和 Java Plug-in 安装了默认的 CookieHandler
。但是,如果你正在运行独立应用程序并且想要启用 HTTP 状态管理,则必须设置系统范围的处理程序。本课程接下来的两页将向你展示如何操作。