cookie规范rfc2965为cookies版本1定义了一个新报头,set-cookie2。假如我们用新报头升级服务器,上面的代码将不能履行。上述代码也不能处理多重cookies。另外,版本1的cookie值可以是一个加引号的字符串,假如会话cookie的值是一个包含分号的加引号字符串,这也将引起上述代码不能履行。简而言之,上面的代码片断不是与cookie的版本使用孤立开来的。
上述代码对于只和一个特别的主机及路径影射交互的简单程序是适合的,但对于一个更庞大的应用程序,当涉及多重主机及路径时cookie管理将变得更复杂。开发者实现cookie规范中的所有算法、安全检查及平衡将证明是痛苦和徒然的。
进入jcookie
为了减轻这种情形,我开发了一个普通用途cookie库,命名为jcookie,用来实现cookie规范。这个库使客户端cookie操作所必需的额外代码和努力最小化并让开发者的精力集中在核心应用程序上。其他apis库也有(例如,apache的httpclient),但是他们使用了从内建本地的java.net apis移出的结构,因此需要一个新的学习过程。我的api是一个调用已存在的java.net对象的简单方法。
你也能使用现在发展的jcookie延伸版本,叫jcookiemicro,在j2me移动设备上创建一套令人激动的能与网络服务应用程序交互的客户系统。
现在我介绍jcookie api的主要行为,先从两个主要数据结构开始:
1. cookie类:此类的一个实例表明一个独立的cookie。它封装了rfc 2965定义的所有cookie属性并提供用getters和setters访问这些属性。
2. cookiejar类:此类的一个实例被作为一个cookie对象集的容器。它符合集合结构并提供操作cookie集合的方法。
api提供两个视野以同时满足开发者对于cookie透明操作的要求及开发者对于高级特性的要求。下面的图形说明了这些视野或层。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器