本教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9及更高版本中更新的语言特性的摘要,请参见Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或不建议使用的选项的信息,请参见JDK发行说明。
Java SE通过java.net.CookieHandler
类来实现HTTP状态管理。 CookieHandler
对象提供了一个回调机制,用于在HTTP协议处理程序中提供HTTP状态管理策略的实现。也就是说,使用HTTP作为协议的URL,例如new URL("http://example.com")
,将使用HTTP协议处理程序。如果设置了CookieHandler
对象,此协议处理程序将回调CookieHandler
对象以处理状态管理。
CookieHandler
类是一个抽象类,有两对相关的方法。第一对方法getDefault()
和setDefault(cookieHandler)
是静态方法,可以发现当前安装的处理程序并安装自己的处理程序。
没有安装默认处理程序,而且安装处理程序是在全系统范围内进行的。对于在安全环境中运行的应用程序,也就是安装了安全管理器的应用程序,必须具备特殊权限才能获取和设置处理程序。有关详细信息,请参见java.net.CookieHandler.getDefault
。
第二对相关方法put(uri, responseHeaders)
和get(uri, requestHeaders)
使您能够在响应/请求头中为指定URI设置和获取所有适用的cookie。这些方法是抽象的,CookieHandler
的具体实现必须提供实现。
Java Web Start和Java插件已安装默认的CookieHandler
。但是,如果您运行的是独立应用程序并希望启用HTTP状态管理,则必须设置一个全系统处理程序。本课程的下两页将向您展示如何设置。